Commit Graph

878 Commits

Author SHA1 Message Date
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-claude-local@0.3.0 @paperclipai/adapter-cursor-local@0.3.0 @paperclipai/adapter-codex-local@0.3.0 @paperclipai/adapter-opencode-local@0.3.0 @paperclipai/adapter-openclaw-gateway@0.3.0 @paperclipai/adapter-utils@0.3.0 @paperclipai/adapter-pi-local@0.3.0 @paperclipai/db@0.3.0 @paperclipai/server@0.3.0 @paperclipai/shared@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
adamrobbie
8a7b7a2383 docs: remove obsolete TODO for CONTRIBUTING.md 2026-03-09 16:58:57 -04:00
Dotta
64f5c3f837 Fix authenticated smoke bootstrap flow @paperclipai/adapter-codex-local@0.3.0-canary.3 @paperclipai/adapter-claude-local@0.3.0-canary.3 @paperclipai/adapter-openclaw-gateway@0.3.0-canary.3 @paperclipai/adapter-cursor-local@0.3.0-canary.3 @paperclipai/db@0.3.0-canary.3 @paperclipai/adapter-opencode-local@0.3.0-canary.3 @paperclipai/adapter-utils@0.3.0-canary.3 @paperclipai/adapter-pi-local@0.3.0-canary.3 @paperclipai/shared@0.3.0-canary.3 @paperclipai/server@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-claude-local@0.3.0-canary.2 @paperclipai/adapter-codex-local@0.3.0-canary.2 @paperclipai/adapter-cursor-local@0.3.0-canary.2 @paperclipai/adapter-opencode-local@0.3.0-canary.2 @paperclipai/adapter-openclaw-gateway@0.3.0-canary.2 @paperclipai/adapter-pi-local@0.3.0-canary.2 @paperclipai/adapter-utils@0.3.0-canary.2 @paperclipai/db@0.3.0-canary.2 @paperclipai/shared@0.3.0-canary.2 @paperclipai/server@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-codex-local@0.3.0-canary.1 @paperclipai/adapter-claude-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-opencode-local@0.3.0-canary.1 @paperclipai/adapter-pi-local@0.3.0-canary.1 @paperclipai/db@0.3.0-canary.1 @paperclipai/adapter-utils@0.3.0-canary.1 @paperclipai/shared@0.3.0-canary.1 @paperclipai/server@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-openclaw-gateway@0.3.0-canary.0 @paperclipai/adapter-opencode-local@0.3.0-canary.0 @paperclipai/adapter-utils@0.3.0-canary.0 @paperclipai/db@0.3.0-canary.0 @paperclipai/adapter-pi-local@0.3.0-canary.0 @paperclipai/shared@0.3.0-canary.0 @paperclipai/server@0.3.0-canary.0 paperclipai@0.3.0-canary.0 2026-03-09 10:23:04 -05:00
Dotta
f5bf743745 fix: support older git in release cleanup 2026-03-09 10:11:46 -05:00
Dotta
0a8b96cdb3 http clone 2026-03-09 10:03:45 -05:00
Dotta
a47ea343ba feat: add committed-ref onboarding smoke script 2026-03-09 09:59:43 -05:00
Dotta
0781b7a15c v0.3.0.md release changelog 2026-03-09 09:53:35 -05:00
Dotta
30ee59c324 chore: simplify release preflight workflow 2026-03-09 09:37:18 -05:00
Dotta
aa2b11d528 feat: extend release preflight smoke options 2026-03-09 09:21:56 -05:00
Dotta
e1ddcbb71f fix: disable git pagers in release preflight 2026-03-09 09:13:49 -05:00
Dotta
df94c98494 chore: add release preflight workflow 2026-03-09 09:06:45 -05:00
Dotta
a7cfd9f24b chore: formalize release workflow 2026-03-09 08:49:42 -05:00
Dotta
e48beafc90 Merge pull request #415 from paperclipai/chore/refresh-lockfile
chore(lockfile): refresh pnpm-lock.yaml
2026-03-09 08:27:43 -05:00
lockfile-bot
e6e41dba9d chore(lockfile): refresh pnpm-lock.yaml 2026-03-09 13:27:18 +00:00