6d3961a9a4
feat(02-01): update AGENT_ROLE_LABELS.ceo to Project Manager
...
- Changed ceo: "CEO" to ceo: "Project Manager" in shared constants
- Added [nexus] comment for rebase visibility
- Satisfies TERM-05
2026-04-04 03:55:41 +00:00
c7e0037545
feat(01-foundation-01): scaffold branding package with VOCAB constant and tests
...
- Create packages/branding/ workspace package (@paperclipai/branding)
- Add VOCAB constant with 8 Nexus display strings (company, companies, ceo, board, hire, fire, appName, tagline)
- Export VocabKey type for type-safe string lookups
- Add vitest config and 9 passing unit tests covering all VOCAB values
- Update pnpm-lock.yaml to link new workspace package
2026-04-04 03:55:41 +00:00
dotta
37b6ad42ea
Add versioned telemetry events
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-03 09:25:00 -05:00
dotta
a80edfd6d9
fix(inbox): prefer canonical last activity
2026-04-03 07:24:33 -05:00
dotta
fb3b57ab1f
merge master into pap-1078-qol-fixes
...
Resolve the keyboard shortcut conflicts after [#2539 ](https://github.com/paperclipai/paperclip/pull/2539 ) and [#2540 ](https://github.com/paperclipai/paperclip/pull/2540 ), keep the release package rewrite working with cliVersion, and stabilize the provisioning timeout in the full suite.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 13:14:20 -05:00
Dotta
ca8d35fd99
Merge pull request #2540 from paperclipai/pap-1078-inbox-operator-polish
...
feat(inbox): add operator search and keyboard controls
2026-04-02 13:02:33 -05:00
dotta
ad1ef6a8c6
fix(ui): address final Greptile follow-up
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 12:21:35 -05:00
dotta
833842b391
fix(inbox): address Greptile review findings
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 12:16:34 -05:00
dotta
fd6cfc7149
fix(routines): address Greptile review findings
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 12:09:02 -05:00
dotta
bd6d07d0b4
fix(ui): polish issue detail timelines and attachments
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 11:51:40 -05:00
dotta
3ab7d52f00
feat(inbox): add operator search and keyboard controls
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 11:45:15 -05:00
dotta
909e8cd4c8
feat(routines): add workspace-aware routine runs
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 11:38:57 -05:00
dotta
29d0e82dce
fix: make feedback migration replay-safe after rebase
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 10:54:56 -05:00
dotta
af844b778e
Add plugin telemetry bridge capability
...
Expose telemetry.track through the plugin SDK and server host bridge, forward plugin-prefixed events into the shared telemetry client, and demonstrate the capability in the kitchen sink example.\n\nCo-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 10:47:29 -05:00
dotta
53dbcd185e
fix: align telemetry client payload and dimensions with backend schema
...
Restructure the TelemetryClient to send the correct backend envelope
format ({app, schemaVersion, installId, events: [{name, occurredAt, dimensions}]})
instead of the old per-event format. Update all event dimension names
to match the backend registry (agent_role, adapter_type, error_code, etc.).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 10:47:29 -05:00
dotta
f16de6026d
fix: add periodic flush and graceful shutdown for server-side telemetry
...
The TelemetryClient only flushed at 50 events, so the server silently
lost all queued telemetry on restart. Add startPeriodicFlush/stop methods
to TelemetryClient, wire up 60s periodic flush in server initTelemetry,
and flush on SIGTERM/SIGINT before exit.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 10:47:29 -05:00
dotta
34044cdfce
feat: implement app-side telemetry sender
...
Add the shared telemetry sender, wire the CLI/server emit points,
and cover the config and completion behavior with tests.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 10:47:29 -05:00
dotta
c0d0d03bce
Add feedback voting and thumbs capture flow
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 09:11:49 -05:00
Dotta
6c2c63e0f1
Merge pull request #2328 from bittoby/fix/project-slug-collision
...
Fix: project slug collisions for non-English names (#2318 )
2026-04-01 09:34:23 -05:00
bittoby
6aa3ead238
fix: add gemini_local to AGENT_ADAPTER_TYPES validation enum
2026-04-01 14:07:47 +00:00
bittoby
99296f95db
fix: append short UUID suffix to project slugs when non-ASCII characters are stripped to prevent slug collisions
2026-03-31 16:35:30 +00:00
dotta
90889c12d8
fix(db): make document revision migration replay-safe
2026-03-31 08:09:00 -05:00
dotta
41f261eaf5
Merge public-gh/master into PAP-881-document-revisions-bulid-it
2026-03-31 07:31:17 -05:00
Dotta
19aaa54ae4
Merge branch 'master' into add-gpt-5-4-xhigh-effort
2026-03-31 06:19:26 -05:00
Dotta
98337f5b03
Merge pull request #2203 from paperclipai/pap-1007-workspace-followups
...
fix: preserve workspace continuity across follow-up issues
2026-03-30 15:24:47 -05:00
Dotta
ccb5cce4ac
Merge pull request #2204 from paperclipai/pap-1007-operator-polish
...
fix: apply operator polish across comments, invites, routines, and health
2026-03-30 14:48:24 -05:00
Dotta
5575399af1
Merge pull request #2048 from remdev/fix/codex-rpc-client-spawn-error
...
fix(codex) rpc client spawn error
2026-03-30 14:24:33 -05:00
dotta
a3e125f796
Clarify Claude transcript event categories
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-30 14:13:52 -05:00
dotta
ec1210caaa
Preserve workspaces for follow-up issues
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-30 14:10:36 -05:00
dotta
4d61dbfd34
Merge public-gh/master into pap-979-runtime-workspaces
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-30 08:35:30 -05:00
dotta
92ebad3d42
Address runtime workspace review feedback
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-30 06:48:45 -05:00
dotta
4226e15128
Add issue comment interrupt support
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:57:34 -05:00
dotta
ce4536d1fa
Add agent Mine inbox API surface
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:57:34 -05:00
dotta
b3d61a7561
Clarify manual workspace runtime behavior
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:55:45 -05:00
dotta
1f1fe9c989
Add workspace runtime controls
...
Expose project and execution workspace runtime defaults, control endpoints, startup recovery, and operator UI for start/stop/restart flows.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:55:26 -05:00
dotta
f1ad07616c
Add execution workspace close readiness and UI
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:55:26 -05:00
dotta
cadfcd1bc6
Log resolved adapter command in run metadata
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:55:26 -05:00
dotta
c114ff4dc6
Improve execution workspace detail editing
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:55:21 -05:00
Mikhail Batukhtin
dc3aa8f31f
test(codex-local): isolate quota spawn test from host CODEX_HOME
...
After the mocked RPC spawn fails, getQuotaWindows() still calls
readCodexToken(). Use an empty mkdtemp directory for CODEX_HOME for the
duration of the test so we never read ~/.codex/auth.json or call WHAM.
2026-03-29 15:15:37 +03:00
Mikhail Batukhtin
c98af52590
test(codex-local): regression for CodexRpcClient spawn ENOENT
...
Add a Vitest case that mocks `node:child_process.spawn` so the child
emits `error` (ENOENT) after the constructor attaches listeners.
`getQuotaWindows()` must resolve with `ok: false` instead of leaving an
unhandled `error` event on the process.
Register `packages/adapters/codex-local` in the root Vitest workspace.
Document in DEVELOPING.md that a missing `codex` binary should not take
down the API server during quota polling.
2026-03-29 14:43:51 +03:00
Mikhail Batukhtin
01fb97e8da
fix(codex-local): handle spawn error event in CodexRpcClient
...
When the `codex` binary is absent from PATH, Node.js emits an `error`
event on the ChildProcess. Because `CodexRpcClient` only subscribed to
`exit` and `data` events, the `error` event was unhandled — causing
Node to throw it as an uncaught exception and crash the server.
Add an `error` handler in the constructor that rejects all pending RPC
requests and clears the queue. This makes a missing `codex` binary a
recoverable condition: `fetchCodexRpcQuota()` rejects, `getQuotaWindows()`
catches the error and returns `{ ok: false }`, and the server stays up.
The fix mirrors the existing pattern in `runChildProcess`
(packages/adapter-utils/src/server-utils.ts) which already handles
`ENOENT` the same way for the main task execution path.
2026-03-29 14:20:55 +03:00
HenkDz
1583a2d65a
feat(hermes): upgrade hermes-paperclip-adapter + UI adapter + skills + detectModel
...
Upgrades hermes-paperclip-adapter from 0.1.1 to ^0.2.0 and wires in all new
capabilities introduced in v0.2.0:
Server
- Upgrade hermes-paperclip-adapter 0.1.1 -> ^0.2.0 (pending PR#10 merge)
- Wire listSkills + syncSkills from hermes-paperclip-adapter/server
- Add detectModel to hermesLocalAdapter (reads ~/.hermes/config.yaml)
- Add detectAdapterModel() function + /adapters/:type/detect-model route
- Export detectAdapterModel from server/src/adapters/index.ts
Types
- Add optional detectModel? to ServerAdapterModule in adapter-utils
UI
- Add hermes-paperclip-adapter ^0.2.0 to ui/package.json (for /ui exports)
- New ui/src/adapters/hermes-local/ — config fields + UI adapter module
- Register hermesLocalUIAdapter in UI adapter registry
- New HermesIcon (caduceus SVG) for adapter pickers
- AgentConfigForm: detect-model button, creatable model input, preserve
adapter-agnostic fields (env, promptTemplate) when switching adapter type
- NewAgentDialog + OnboardingWizard: add Hermes to adapter picker
- Agents, OrgChart, InviteLanding, NewAgent, agent-config-primitives: add
hermes_local label + enable in adapter sets
- AgentDetail: smarter run summary excerpt extraction
- RunTranscriptView: improved Hermes stdout rendering
NOTE: requires hermes-paperclip-adapter@0.2.0 on npm.
Blocked on NousResearch/hermes-paperclip-adapter#10 merging.
2026-03-28 01:34:48 +01:00
dotta
995f5b0b66
Add the inbox mine tab and archive flow
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-26 16:09:43 -05:00
dotta
76a692c260
Improve embedded Postgres bootstrap errors
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-26 12:35:19 -05:00
Dotta
b944293eda
Merge pull request #1829 from paperclipai/pr/pap-891-worktree-reliability
...
fix(worktree): harden provisioned worktree isolation and test fallback behavior
2026-03-26 12:01:47 -05:00
dotta
3c1ebed539
test(worktree): address embedded postgres helper review feedback
...
- probe host support on every platform instead of special-casing darwin
- re-export the db package helper from server and cli tests
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-26 11:56:05 -05:00
dotta
c916626cef
test: skip embedded postgres suites when initdb is unavailable
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-26 11:12:39 -05:00
dotta
ed62d58cb2
Fix headless OpenCode permission prompts
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-26 11:12:35 -05:00
dotta
b0b9809732
Add issue document revision restore flow
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-26 08:24:57 -05:00
Dotta
66aa65f8f7
Merge pull request #1787 from HenkDz/fix/pi-adapter-models-stderr
...
fix(pi-local): parse models from stderr
2026-03-26 07:04:38 -05:00