Commit Graph

736 Commits

Author SHA1 Message Date
Dotta
31561724f7 Merge pull request #491 from lazmo88/fix/parentid-filter-issues-list
fix: wire parentId query filter into issues list endpoint
2026-03-10 13:07:20 -05:00
Dotta
c363428966 Merge pull request #517 from paperclipai/feature/worktree-seed-secrets-key
Copy seeded secrets key into worktree instances
2026-03-10 12:59:54 -05:00
Dotta
f783f66866 Merge pull request #495 from subhendukundu/feat/configurable-attachment-types
feat: make attachment content types configurable via env var
2026-03-10 12:58:15 -05:00
Dotta
deec68ab16 Copy seeded secrets key into worktree instances 2026-03-10 12:57:53 -05:00
Dotta
6733a6cd7e Merge pull request #502 from davidahmann/codex/issue-499-approval-idempotency
Make approval resolution retries idempotent
2026-03-10 12:56:30 -05:00
David Ahmann
9c68c1b80b server: make approval retries idempotent (#499) 2026-03-10 12:00:29 -04:00
Dotta
7934952a77 Merge pull request #496 from paperclipai/feature/worktree-development-tools
feat(cli): add isolated worktree-local Paperclip instance tools
2026-03-10 10:56:36 -05:00
Dotta
d9574fea71 Fix doctor summary after repairs 2026-03-10 10:13:05 -05:00
Dotta
83738b45cd Fix worktree minimal clone startup 2026-03-10 10:13:05 -05:00
Dotta
4a67db6a4d Add minimal worktree seed mode 2026-03-10 10:13:05 -05:00
Dotta
0704854926 Add worktree init CLI for isolated development instances 2026-03-10 10:13:05 -05:00
Subhendu Kundu
1959badde7 fix: address review feedback — stale error message and * wildcard
- assets.ts: change "Image exceeds" to "File exceeds" in size-limit error
- attachment-types.ts: handle plain "*" as allow-all wildcard pattern
- Add test for "*" wildcard (12 tests total)
2026-03-10 20:01:08 +05:30
Subhendu Kundu
3ff07c23d2 Update server/src/routes/assets.ts
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-10 19:54:42 +05:30
Subhendu Kundu
dec02225f1 feat: make attachment content types configurable via env var
Add PAPERCLIP_ALLOWED_ATTACHMENT_TYPES env var to configure allowed
MIME types for issue attachments and asset uploads. Supports exact
types (application/pdf) and wildcard patterns (image/*, text/*).

Falls back to the existing image-only defaults when the env var is
unset, preserving backward compatibility.

- Extract shared module `attachment-types.ts` with `isAllowedContentType()`
  and `matchesContentType()` (pure, testable)
- Update `routes/issues.ts` and `routes/assets.ts` to use shared module
- Add unit tests for parsing and wildcard matching

Closes #487
2026-03-10 19:40:22 +05:30
Claude
f6f5fee200 fix: wire parentId query filter into issues list endpoint
The parentId parameter on GET /api/companies/:companyId/issues was
silently ignored — the filter was never extracted from the query string,
never passed to the service layer, and the IssueFilters type did not
include it. All other filters (status, assigneeAgentId, projectId, etc.)
worked correctly.

This caused subtask lookups to return every issue in the company instead
of only children of the specified parent.

Changes:
- Add parentId to IssueFilters interface
- Add eq(issues.parentId, filters.parentId) condition in list()
- Extract parentId from req.query in the route handler

Fixes: LAS-101
2026-03-10 15:54:31 +02:00
Dotta
49b9511889 Merge pull request #485 from jknair/fix/strip-claudecode-env-from-child-processes
fix(adapter-utils): strip Claude Code env vars from child processes
2026-03-10 07:25:30 -05:00
Dotta
1a53567cb6 Apply suggestions from code review
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-10 07:24:48 -05:00
Jayakrishnan
9248881d42 fix(adapter-utils): strip Claude Code env vars from child processes
When the Paperclip server is started from within a Claude Code session
(e.g. `npx paperclipai run` in a Claude Code terminal), the `CLAUDECODE`
and related env vars (`CLAUDE_CODE_ENTRYPOINT`, `CLAUDE_CODE_SESSION`,
`CLAUDE_CODE_PARENT_SESSION`) leak into `process.env`. Since
`runChildProcess()` spreads `process.env` into the child environment,
every spawned `claude` CLI process inherits these vars and immediately
exits with: "Claude Code cannot be launched inside another Claude Code
session."

This is particularly disruptive for the `claude-local` adapter, where
every agent run spawns a `claude` child process. A single contaminated
server start (or cron job that inherits the env) silently breaks all
agent executions until the server is restarted in a clean environment.

The fix deletes the four known Claude Code nesting-guard env vars from
the merged environment before passing it to `spawn()`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:01:46 +00:00
Dotta
ef978dd601 Merge pull request #446 from paperclipai/codex/pr-report-skill
feat: add pr-report skill
2026-03-09 17:05:35 -05:00
Dotta
fbf9d5714f feat: add pr-report skill 2026-03-09 17:01:45 -05:00
Dotta
8ac064499f Merge pull request #445 from paperclipai/release/0.3.0
Release/0.3.0
2026-03-09 16:45:02 -05:00
Dotta
cbbf695c35 release files 2026-03-09 16:43:53 -05:00
Dotta
7e8908afa2 chore: release v0.3.0 v0.3.0 2026-03-09 16:31:12 -05:00
Dotta
58d4d04e99 Merge pull request #444 from paperclipai/release/0.3.0
Release/0.3.0
2026-03-09 16:20:22 -05:00
Dotta
c672b71f7f Refresh bootstrap gate while setup is pending @paperclipai/adapter-codex-local@0.3.0 @paperclipai/adapter-cursor-local@0.3.0 @paperclipai/adapter-claude-local@0.3.0 @paperclipai/adapter-openclaw-gateway@0.3.0 @paperclipai/adapter-opencode-local@0.3.0 @paperclipai/adapter-pi-local@0.3.0 @paperclipai/db@0.3.0 @paperclipai/adapter-utils@0.3.0 @paperclipai/shared@0.3.0 @paperclipai/server@0.3.0 paperclipai@0.3.0 2026-03-09 16:13:15 -05:00
Dotta
01c5a6f198 Unblock canary onboard smoke bootstrap 2026-03-09 16:06:16 -05:00
Dotta
64f5c3f837 Fix authenticated smoke bootstrap flow @paperclipai/adapter-claude-local@0.3.0-canary.3 @paperclipai/adapter-codex-local@0.3.0-canary.3 @paperclipai/adapter-cursor-local@0.3.0-canary.3 @paperclipai/adapter-opencode-local@0.3.0-canary.3 @paperclipai/db@0.3.0-canary.3 @paperclipai/adapter-openclaw-gateway@0.3.0-canary.3 @paperclipai/adapter-pi-local@0.3.0-canary.3 @paperclipai/adapter-utils@0.3.0-canary.3 @paperclipai/server@0.3.0-canary.3 @paperclipai/shared@0.3.0-canary.3 paperclipai@0.3.0-canary.3 2026-03-09 15:30:08 -05:00
Dotta
c62266aa6a tweaks to docker smoke @paperclipai/adapter-codex-local@0.3.0-canary.2 @paperclipai/adapter-claude-local@0.3.0-canary.2 @paperclipai/adapter-openclaw-gateway@0.3.0-canary.2 @paperclipai/adapter-opencode-local@0.3.0-canary.2 @paperclipai/adapter-cursor-local@0.3.0-canary.2 @paperclipai/adapter-utils@0.3.0-canary.2 @paperclipai/db@0.3.0-canary.2 @paperclipai/adapter-pi-local@0.3.0-canary.2 @paperclipai/server@0.3.0-canary.2 @paperclipai/shared@0.3.0-canary.2 paperclipai@0.3.0-canary.2 2026-03-09 14:41:00 -05:00
Dotta
5dd1e6335a Fix root TypeScript solution config @paperclipai/adapter-claude-local@0.3.0-canary.1 @paperclipai/adapter-codex-local@0.3.0-canary.1 @paperclipai/adapter-opencode-local@0.3.0-canary.1 @paperclipai/adapter-cursor-local@0.3.0-canary.1 @paperclipai/adapter-openclaw-gateway@0.3.0-canary.1 @paperclipai/adapter-utils@0.3.0-canary.1 @paperclipai/db@0.3.0-canary.1 @paperclipai/adapter-pi-local@0.3.0-canary.1 @paperclipai/server@0.3.0-canary.1 @paperclipai/shared@0.3.0-canary.1 paperclipai@0.3.0-canary.1 2026-03-09 14:09:30 -05:00
Dotta
469bfe3953 chore: add release train workflow 2026-03-09 13:55:30 -05:00
Dotta
d20341c797 Merge pull request #413 from online5880/fix/windows-command-compat
fix: support Windows command wrappers for local adapters
2026-03-09 12:50:20 -05:00
online5880
756ddb6cf7 fix: remove lockfile changes from PR 2026-03-10 02:34:52 +09:00
Dotta
200dd66f63 Merge pull request #400 from AiMagic5000/fix/docker-non-root-node-user
fix(docker): run production server as non-root node user
2026-03-09 12:18:20 -05:00
Dotta
9859bac440 Merge pull request #423 from RememberV/fix/onboarding-navigates-to-dashboard
fix: navigate to dashboard after onboarding, not first issue
2026-03-09 12:14:58 -05:00
online5880
8d6b20b47b Merge branch 'master' into fix/windows-command-compat 2026-03-10 02:05:41 +09:00
online5880
a418106005 fix: restore cross-env in server dev watch 2026-03-10 01:43:45 +09:00
Dotta
84ef17bf85 Merge pull request #424 from paperclipai/chore/refresh-lockfile
chore(lockfile): refresh pnpm-lock.yaml
2026-03-09 11:43:44 -05:00
lockfile-bot
23dec980e2 chore(lockfile): refresh pnpm-lock.yaml 2026-03-09 16:41:30 +00:00
Dotta
03c37f8dea Merge pull request #427 from paperclipai/dotta-releases
Dotta releases
2026-03-09 11:41:11 -05:00
Dotta
8360b2e3e3 fix: complete authenticated onboarding startup 2026-03-09 11:26:58 -05:00
Dotta
d9ba4790e9 Merge branch 'master' into fix/windows-command-compat 2026-03-09 11:25:18 -05:00
Dotta
3ec96fdb73 fix: complete authenticated docker onboard smoke 2026-03-09 11:12:34 -05:00
Dotta
eecb780dd7 Merge pull request #420 from paperclipai/dotta-releases
Dotta releases
2026-03-09 11:04:16 -05:00
Dotta
632079ae3b chore: require frozen lockfile for releases 2026-03-09 10:43:04 -05:00
Dotta
7d8d6a5caf chore: remove lockfile changes from release branch 2026-03-09 10:38:18 -05:00
Dotta
948080fee9 Revert "chore: restore pnpm-lock.yaml from master"
This reverts commit 8d53800c19.
2026-03-09 10:37:38 -05:00
RememberV
af0e05f38c fix: onboarding wizard navigates to dashboard instead of first issue
After onboarding, the wizard navigated to the newly created issue
(e.g. /JAR/issues/JAR-1). useCompanyPageMemory then saved this path,
causing every subsequent company switch to land on that stale issue
instead of the dashboard.

Remove the issue-specific navigation branch so handleLaunch always
falls through to the dashboard route.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:35:40 +00:00
Dotta
8d53800c19 chore: restore pnpm-lock.yaml from master 2026-03-09 10:35:32 -05:00
Dotta
422f57b160 chore: use public-gh for manual release flow 2026-03-09 10:33:56 -05:00
Dotta
31c947bf7f fix: publish canaries in changesets pre mode @paperclipai/adapter-codex-local@0.3.0-canary.0 @paperclipai/adapter-cursor-local@0.3.0-canary.0 @paperclipai/adapter-claude-local@0.3.0-canary.0 @paperclipai/adapter-opencode-local@0.3.0-canary.0 @paperclipai/adapter-openclaw-gateway@0.3.0-canary.0 @paperclipai/adapter-pi-local@0.3.0-canary.0 @paperclipai/adapter-utils@0.3.0-canary.0 @paperclipai/db@0.3.0-canary.0 @paperclipai/server@0.3.0-canary.0 @paperclipai/shared@0.3.0-canary.0 paperclipai@0.3.0-canary.0 2026-03-09 10:23:04 -05:00