Nexus Dev
dc6316cf28
feat(24-00): shared types, validators, and Wave 0 test stubs for phase 24
...
- Add ChatMessageSearchResult, ChatMessageSearchResponse to shared types
- Add ChatBookmark, ChatBookmarkWithMessage, ChatBookmarkListResponse, ChatBookmarkToggleResponse
- Add parentConversationId + branchFromMessageId to ChatConversation and ChatConversationListItem
- Add searchMessagesSchema + branchConversationSchema to validators
- Re-export all new types and validators from shared/src/index.ts
- Add Wave 0 it.todo stubs: searchMessages, toggleBookmark, branchConversation, exportConversation
- Add Wave 0 it.todo stubs for 4 new route groups in chat-routes.test.ts
2026-04-04 03:55:48 +00:00
Nexus Dev
5671b24210
feat(23-00): DB migration and shared types for message_type
...
- Add message_type text column to chat_messages Drizzle schema
- Create SQL migration 0049_add_message_type.sql
- Update _journal.json with entries for idx 47, 48, 49
- Add messageType field to ChatMessage interface
- Add messageType to createMessageSchema (optional)
- Add handoffSchema and Handoff type to validators/chat.ts
- Re-export handoffSchema and Handoff from shared/src/index.ts
2026-04-04 03:55:47 +00:00
Nexus Dev
954e7819c6
feat(22-05): virtualize ChatMessageList and add chat API edit/truncate methods
...
- Rewrite ChatMessageList with @tanstack/react-virtual useVirtualizer (estimateSize: 80, overscan: 5)
- Dynamic height measurement via measureElement ref
- Streaming message appended as synthetic __streaming__ entry
- virtualizer.measure() called on streamingContent change (Pitfall 3)
- Jump-to-bottom button when scrolled >200px from bottom
- 3 Skeleton loading placeholders
- Add editMessage, truncateMessagesAfter, deleteMessage to chatApi
- Add postMessageAndStream and savePartialMessage (were missing from prior plan)
- Fix duplicate ChatConversation type exports in packages/shared/src/index.ts (Rule 1 - Bug)
2026-04-04 03:55:47 +00:00
Nexus Dev
c7887c73ca
feat(22-02): ChatAgentSelector component with agent dropdown and role colors
...
- Create ChatAgentSelector with Popover+Command dropdown
- Show active agent icon, name, and ChevronDown indicator
- 'Select agent' placeholder when no agent selected
- 'No agents configured' empty state via CommandEmpty
- Agent list shows icon, name, and role label per item
- Selection calls onAgentChange and PATCHes conversation via chatApi
- Role-specific colors from agentRoleColors applied to agent icons
- Loading state shows Skeleton placeholder
- Create chat.ts API client with updateConversation supporting agentId
- Create shared types/chat.ts with ChatMessage, ChatConversation types
- Create ChatCodeBlock prerequisite from phase-21 base
- TypeScript compiles clean
2026-04-04 03:55:47 +00:00
Nexus Dev
645535195b
feat(22-00): DB migration, shared types, react-virtual, agent-role-colors, CSS animation
...
- Add updatedAt column to chat_messages schema (nullable)
- Create migration 0048_add_chat_messages_updated_at.sql
- Add updatedAt: string | null to ChatMessage shared type
- Install @tanstack/react-virtual in ui workspace
- Create agent-role-colors.ts with 11 distinct themed roles (THEME-03)
- Add agent-role-colors.test.ts (4 tests all passing)
- Add cursor-blink CSS animation with prefers-reduced-motion guard
2026-04-04 03:55:47 +00:00
Nexus Dev
c268f2d03e
feat(21-05): create chat API client and TanStack Query hooks
...
- Add ui/src/api/chat.ts with chatApi (7 methods: list/create/get/update/delete conversations + list/post messages)
- Add ui/src/hooks/useChatConversations.ts with useInfiniteQuery + placeholderData + CRUD mutations
- Add ui/src/hooks/useChatMessages.ts with useInfiniteQuery + sendMutation + flattened/reversed messages array
- Fix [Rule 3 - Blocking]: export ChatConversation, ChatMessage, ChatConversationListResponse, ChatMessageListResponse from packages/shared/src/index.ts (types existed in types/chat.ts but were not re-exported at package root)
2026-04-04 03:55:47 +00:00
Nexus Dev
528ad001b5
feat(21-03): add chatRoutes, mount in app.ts, export chat schemas from shared
...
- chatRoutes factory with 7 REST endpoints for conversations and messages
- All routes gated by assertBoard; company-scoped routes also use assertCompanyAccess
- Mounted as api.use(chatRoutes(db)) after activityRoutes in app.ts
- Export createConversationSchema/updateConversationSchema/createMessageSchema
from @paperclipai/shared (were missing from main package index)
- 11 vitest route tests passing
2026-04-04 03:55:47 +00:00
Nexus Dev
a818abb004
feat(21-01): add shared chat types and Zod validators
...
- Create ChatConversation, ChatConversationListItem, ChatMessage, and list response types
- Create createConversationSchema, updateConversationSchema, createMessageSchema validators
- Re-export from @paperclipai/shared barrel files (types/index.ts, validators/index.ts)
2026-04-04 03:55:47 +00:00
ab2e1d1ce3
[nexus] feat(20-01): add gemini_local to AGENT_ADAPTER_TYPES constant
...
- Add gemini_local to AGENT_ADAPTER_TYPES array after hermes_local
- Closes TypeScript gap where gemini_local was valid in UI adapter registry but missing from AgentAdapterType union type
- TypeScript compiles cleanly for @paperclipai/shared and @paperclipai/ui
2026-04-04 03:55:42 +00:00
57aa96c237
feat(08-01): add Generalist agent template bundle and wire role mapping
...
- Create server/src/onboarding-assets/general/ with 4 files (AGENTS.md, SOUL.md, HEARTBEAT.md, TOOLS.md)
- Add general role to DEFAULT_AGENT_BUNDLE_FILES with full 4-file bundle
- Add resolveDefaultAgentInstructionsBundleRole branch for general role
- Rename AGENT_ROLE_LABELS general from 'General' to 'Generalist'
2026-04-04 03:55:42 +00:00
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
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
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
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
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
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
41f261eaf5
Merge public-gh/master into PAP-881-document-revisions-bulid-it
2026-03-31 07:31:17 -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
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
c114ff4dc6
Improve execution workspace detail editing
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 10:55:21 -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
eeb7e1a91a
Merge pull request #1655 from paperclipai/pr/pap-795-company-portability
...
feat(portability): improve company import and export flow
2026-03-23 19:45:05 -05:00
Dotta
f2637e6972
Merge pull request #1654 from paperclipai/pr/pap-795-agent-runtime
...
fix(runtime): improve agent recovery and heartbeat operations
2026-03-23 19:44:51 -05:00
dotta
c8f8f6752f
fix: address latest Greptile runtime review
2026-03-23 19:43:50 -05:00
dotta
159c5b4360
Preserve sidebar order in company portability
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-23 16:57:59 -05:00
dotta
2e76a2a554
Add routine support to recurring task portability
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-23 16:57:38 -05:00
dotta
8232456ce8
Fix markdown mention chips
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-23 16:57:27 -05:00
dotta
37c2c4acc4
Add browser-based board CLI auth flow
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-23 08:46:05 -05:00
dotta
be911754c5
Default comment reopen to checked
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 17:01:52 -05:00
dotta
e3c92a20f1
Merge remote-tracking branch 'public-gh/master' into paperclip-routines
...
* public-gh/master: (46 commits)
chore(lockfile): refresh pnpm-lock.yaml (#1377 )
fix: manage codex home per company by default
Ensure agent home directories exist before use
Handle directory entries in imported zip archives
Fix portability import and org chart test blockers
Fix PR verify failures after merge
fix: address greptile follow-up feedback
Address remaining Greptile portability feedback
docs: clarify quickstart npx usage
Add guarded dev restart handling
Fix PAP-576 settings toggles and transcript default
Add username log censor setting
fix: use standard toggle component for permission controls
fix: add missing setPrincipalPermission mock in portability tests
fix: use fixed 1280x640 dimensions for org chart export image
Adjust default CEO onboarding task copy
fix: link Agent Company to agentcompanies.io in export README
fix: strip agents and projects sections from COMPANY.md export body
fix: default company export page to README.md instead of first file
Add default agent instructions bundle
...
# Conflicts:
# packages/adapters/pi-local/src/server/execute.ts
# packages/db/src/migrations/meta/0039_snapshot.json
# packages/db/src/migrations/meta/_journal.json
# server/src/__tests__/agent-permissions-routes.test.ts
# server/src/__tests__/agent-skills-routes.test.ts
# server/src/services/company-portability.ts
# skills/paperclip/references/company-skills.md
# ui/src/api/agents.ts
2026-03-20 15:04:55 -05:00
dotta
5140d7b0c4
Merge remote-tracking branch 'public-gh/master' into paperclip-company-import-export
...
* public-gh/master:
fix: address greptile follow-up feedback
docs: clarify quickstart npx usage
Add guarded dev restart handling
Fix PAP-576 settings toggles and transcript default
Add username log censor setting
fix: use standard toggle component for permission controls
# Conflicts:
# server/src/routes/agents.ts
# ui/src/pages/AgentDetail.tsx
2026-03-20 13:28:05 -05:00
dotta
8fc399f511
Add guarded dev restart handling
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 08:50:00 -05:00
dotta
39878fcdfe
Add username log censor setting
...
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 08:50:00 -05:00
dotta
2a33acce3a
Remove api trigger kind and mark webhook as coming soon
...
Drop "api" from the trigger kind dropdown and disable the "webhook"
option with a "COMING SOON" label until it's ready.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-20 06:54:03 -05:00
dotta
d07d86f778
Merge public-gh/master into paperclip-company-import-export
2026-03-20 06:25:24 -05:00