Commit Graph

573 Commits

Author SHA1 Message Date
JonCSykes
a765d342e0 Merge remote-tracking branch 'origin/feature/upload-company-logo' into feature/upload-company-logo
# Conflicts:
#	pnpm-lock.yaml
#	server/package.json
2026-03-07 13:36:41 -05:00
Jon Sykes
a5fda1546b Merge branch 'master' into feature/upload-company-logo 2026-03-07 13:34:57 -05:00
JonCSykes
4dffdc4de2 Merge master into feature/upload-company-logo 2026-03-07 12:58:02 -05:00
Dotta
671a8ae554 Merge pull request #221 from richardanaya/rename-invoke-to-run-heartbeat
Rename Invoke button to Run Heartbeat for UX consistency
2026-03-07 10:17:04 -06:00
Richard Anaya
638f2303bb Rename Invoke button to Run Heartbeat for clarity 2026-03-07 08:12:37 -08:00
Dotta
63afce3692 Merge pull request #151 from eltociear/add-license
Add License
2026-03-07 09:50:28 -06:00
Dotta
e07646bade Merge pull request #218 from richardanaya/fix-recommended-pill
fixing overhanging recommended text in onboarding
2026-03-07 09:49:20 -06:00
Richard Anaya
ddb7101fa5 fixing overhanging recommended text in onboarding 2026-03-07 07:47:24 -08:00
Dotta
3f42357e5f Merge pull request #196 from hougangdev/fix/inbox-badge-missing-approvals
fix(sidebar-badges): include approvals in inbox badge count
2026-03-07 09:46:03 -06:00
Dotta
3b08d4d582 Merge pull request #217 from aaaaron/CONTRIBUTING
Add CONTRIBUTING.md guide
2026-03-07 09:39:51 -06:00
Aaron
049f768bc7 Add Contributing guide 2026-03-07 15:38:56 +00:00
Dotta
19c295ec03 Merge pull request #183 from richardanaya/master
Adding support for pi-local
2026-03-07 09:31:35 -06:00
Richard Anaya
a6b5f12daf feat(pi-local): fix bugs, add RPC mode, improve cost tracking and output handling
Major improvements to the Pi local adapter:

Bug Fixes (Greptile-identified):
- Fix string interpolation in models.ts error message (was showing literal ${detail})
- Fix tool matching in parse.ts to use toolCallId instead of toolName for correct
  multi-call handling and result assignment
- Fix dead code in execute.ts by tracking instructionsReadFailed flag

Feature Improvements:
- Switch from print mode (-p) to RPC mode (--mode rpc) to prevent agent from
  exiting prematurely and ensure proper lifecycle completion
- Add stdin command sending via JSON-RPC format for prompt delivery
- Add line buffering in execute.ts to handle partial JSON chunks correctly
- Filter RPC protocol messages (response, extension_ui_request, etc.) from transcript

Cost Tracking:
- Extract cost and usage data from turn_end assistant messages
- Support both Pi format (input/output/cacheRead/cost.total) and generic format
- Add tests for cost extraction and accumulation across multiple turns

All tests pass (12/12), typecheck clean, server builds successfully.
2026-03-07 07:23:44 -08:00
Dotta
fd0799fd71 Merge pull request #78 from MumuTW/fix/dashboard-spa-refresh-500
fix: resolve 500 error on SPA route refresh (#48)
2026-03-07 09:05:19 -06:00
hougangdev
36e4e67025 fix(sidebar-badges): include approvals in inbox badge count
When a company has "require board approval for new agents" enabled,
hiring an agent creates a pending approval that requires the user
(as a board member) to approve before the agent can start working.
However, the sidebar inbox badge did not include pending approvals
in its count, so there was no visual indicator that action was needed.
Users had no way of knowing an approval was waiting unless they
happened to open the Inbox page manually.

The root cause: the sidebar-badges service correctly included
approvals in the inbox total, but the route handler overwrites
badges.inbox to add alertsCount and staleIssueCount — and in
doing so dropped badges.approvals from the sum.

Add badges.approvals to the inbox count recalculation so that
pending and revision-requested approvals surface in the sidebar
notification badge alongside failed runs, alerts, stale work,
and join requests.

Affected files:
- server/src/routes/sidebar-badges.ts
2026-03-07 17:38:07 +08:00
JonCSykes
f44efce265 Add @types/node as a devDependency in cursor-local package 2026-03-06 23:15:45 -05:00
JonCSykes
6f16fc0a93 Merge remote-tracking branch 'origin/master' into feature/upload-company-logo 2026-03-06 22:55:25 -05:00
Richard Anaya
6077ae6064 feat: add Pi adapter support to constants and onboarding UI 2026-03-06 18:47:44 -08:00
Richard Anaya
eb7f690ceb Adding support for pi-local 2026-03-06 18:29:38 -08:00
Dotta
ffc59f5b08 Merge pull request #159 from Logesh-waran2003/logesh/fix-backlog-issue-wake
fix(issues): skip agent wakeup when issue status is backlog
2026-03-06 16:57:17 -06:00
Dotta
f5f8c4a883 Merge branch 'master' of github.com-dotta:paperclipai/paperclip
* 'master' of github.com-dotta:paperclipai/paperclip:
  skip agent self-wake on comment and closed-issue wake without reopen
2026-03-06 16:52:11 -06:00
Dotta
e693e3d466 feat(release): auto-create GitHub Release on publish
Add create_github_release helper to release script that creates a
GitHub Release via gh CLI after tagging, using release notes from
releases/vX.Y.Z.md if available or auto-generated notes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:50:25 -06:00
Dotta
e4928f3a10 feat(openclaw): support x-openclaw-token header alongside legacy x-openclaw-auth
Accept x-openclaw-token as the preferred auth header for OpenClaw
invite/join flows, falling back to x-openclaw-auth for backwards
compatibility. Update diagnostics messages accordingly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:50:20 -06:00
Dotta
514dc43923 feat(openclaw): support /hooks/agent endpoint and multi-endpoint detection
Add OpenClawEndpointKind type to distinguish between /hooks/wake,
/hooks/agent, open_responses, and generic endpoints. Build appropriate
payloads per endpoint kind with optional sessionKey inclusion.
Refactor webhook execution to use endpoint-aware payload construction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:50:15 -06:00
JonCSykes
4599fc5a8d Merge remote-tracking branch 'origin/master' into feature/upload-company-logo 2026-03-06 17:21:06 -05:00
JonCSykes
a4702e48f9 Add sanitization for SVG uploads and enhance security headers for asset responses
- Introduced SVG sanitization using `dompurify` to prevent malicious content.
- Updated tests to validate SVG sanitization with various scenarios.
- Enhanced response headers for assets, adding CSP and nosniff for SVGs.
- Adjusted UI to better clarify supported file types for logo uploads.
- Updated dependencies to include `jsdom` and `dompurify`.
2026-03-06 17:18:43 -05:00
Dotta
b539462319 Revert "openclaw: force webhook transport to use hooks/wake"
This reverts commit aa7e069044.
2026-03-06 16:18:26 -06:00
Dotta
aa7e069044 openclaw: force webhook transport to use hooks/wake 2026-03-06 16:11:11 -06:00
Dotta
3b0ff94e3f Merge pull request #154 from cschneid/fix/no-self-wake-on-comment
skip agent self-wake on comment and closed-issue wake without reopen
2026-03-06 16:05:28 -06:00
Dotta
5ab1c18530 fix openclaw webhook payload for /v1/responses 2026-03-06 15:50:08 -06:00
Dotta
36013c35d9 dev: make pnpm dev watch workspace package changes 2026-03-06 15:48:35 -06:00
JonCSykes
1448b55ca4 Improve error handling in CompanySettings for mutation failure messages. 2026-03-06 16:47:04 -05:00
JonCSykes
b19d0b6f3b Add support for company logos, including schema adjustments, validation, assets handling, and UI display enhancements. 2026-03-06 16:39:35 -05:00
Dotta
b155415d7d Reintroduce OpenClaw webhook transport alongside SSE 2026-03-06 15:15:24 -06:00
Logesh
d7f68ec1c9 fix(issues): skip agent wakeup when issue status is backlog
Agents were being woken immediately when an issue was created or
reassigned with status "backlog", defeating the purpose of backlog
as "not ready to work on yet" (issue #96).

Added `&& issue.status !== "backlog"` guard to both the CREATE and
PATCH wakeup paths, mirroring the existing done/cancelled suppression
pattern already present in the file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 02:40:53 +05:30
Dotta
af09510f6a fix openclaw openresponses terminal event detection 2026-03-06 14:56:40 -06:00
Dotta
a2bdfb0dd3 stream live run detail output via websocket 2026-03-06 14:39:49 -06:00
Dotta
67247b5d6a feat(ui): hide sensitive OpenClaw fields behind password toggle with eye icon
Webhook auth header and gateway auth token fields now render as password
inputs by default, with an eye/eye-off toggle icon on the left to reveal
the value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:36:02 -06:00
Dotta
5f2dfcb94e fix(ui): prevent long issue titles from overflowing timestamp in inbox
Add min-w-0 to the flex container so truncate works correctly on titles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:30:02 -06:00
Dotta
67491483b7 feat(ui): show toast notification for new join requests
When a join request arrives via WebSocket live event, display a toast
prompting the user to review it in the inbox.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:28:25 -06:00
Dotta
54a4f784a4 fix(ui): clickable unread dot in inbox with fade-out, remove empty circle for read issues
In the My Recent Issues section, the blue unread dot is now a button that
marks the issue as read on click with a smooth opacity fade-out. Already-read
issues show empty space instead of a hollow circle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:27:12 -06:00
Dotta
5aecb148a2 Clarify missing companyId error for malformed issues path 2026-03-06 14:25:34 -06:00
Dotta
f49a003bd9 fix: improve invite onboarding text and callback reachability prompt
Add skill URL note to onboarding text document and strengthen callback
reachability test language in company settings invite snippet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:16:39 -06:00
Dotta
feb384acca feat(ui): coalesce streaming deltas and deduplicate live feed items
Merge consecutive assistant/thinking deltas into a single feed entry
instead of creating one per chunk. Add dedupeKey to FeedItem, increase
streaming text cap to 4000 chars, and bump seen-keys limit to 6000.
Applied consistently to both ActiveAgentsPanel and LiveRunWidget.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:16:34 -06:00
Dotta
c9718dc27a Merge remote-tracking branch 'public-gh/master'
* public-gh/master:
  fix(auth): apply effective trusted origins and honor allowed hostnames in public mode
  fix(onboard): preserve env-derived secrets defaults and report ignored exposure env in local_trusted mode
  fix: parseBooleanFromEnv silently treats common truthy values as false
  set `PAPERCLIP_PUBLIC_URL` in compose files
  centralize URLs into single canonical URL var
2026-03-06 14:15:55 -06:00
Dotta
0b42045053 Auto-deduplicate agent shortname on join request approval
When approving an agent join request with a shortname already in use,
append a numeric suffix (e.g. "openclaw-2") instead of returning an error.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:54:58 -06:00
Dotta
d8f7c6bf81 Brighten destructive/error red in dark mode for readability
The dark-mode --destructive color was too dim (lightness 0.396) to read
against dark backgrounds. Bumped to 0.637 lightness with higher chroma
so error text is clearly visible. Set --destructive-foreground to white
for contrast on destructive button backgrounds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 13:53:08 -06:00
Dotta
c8bd578415 fix run detail live log polling when log ref is delayed 2026-03-06 13:24:20 -06:00
Chris Schneider
5dfd9a2429 skip agent self-wake on comment and closed-issue wake without reopen 2026-03-06 19:21:08 +00:00
Dotta
0324259da3 Handle single-key wrapped OpenClaw auth headers 2026-03-06 12:49:41 -06:00