Skip to content
Merged
Show file tree
Hide file tree
Changes from 142 commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
3e5a20f
docs(spec): tapd daemon and web UI design for surfacing agent comms
ggonzalez94 Apr 14, 2026
a72464f
docs(plan): tapd phase 1 daemon implementation plan
ggonzalez94 Apr 14, 2026
9a0f2a2
feat(tapd): scaffold packages/tapd workspace
ggonzalez94 Apr 14, 2026
162b05b
refactor(core): move event-classifier from openclaw-plugin into core
ggonzalez94 Apr 14, 2026
5b72e8c
feat(core): add typed TapEvent discriminated union
ggonzalez94 Apr 14, 2026
b5d56e1
feat(tapd): add in-memory event bus with bounded ring buffer
ggonzalez94 Apr 14, 2026
48ffac7
feat(tapd): add bearer auth token generation and persistence
ggonzalez94 Apr 14, 2026
82cd422
test(tapd): add loopback transport helper
ggonzalez94 Apr 14, 2026
3c4b441
feat(tapd): add config resolution from env and options
ggonzalez94 Apr 14, 2026
287a8ce
feat(tapd): add runtime wrapper bridging emitEvent to event bus
ggonzalez94 Apr 14, 2026
1a118d9
feat(tapd): add HTTP server with router, auth, and dual unix/tcp bind
ggonzalez94 Apr 14, 2026
a4f5685
feat(tapd): add GET /api/identity route
ggonzalez94 Apr 14, 2026
2086bdb
feat(tapd): add GET /api/contacts and /api/contacts/:id routes
ggonzalez94 Apr 14, 2026
750342f
feat(core): add lastReadAt field and markRead method to conversation …
ggonzalez94 Apr 14, 2026
f354947
feat(tapd): add conversations routes (list, get, mark-read)
ggonzalez94 Apr 14, 2026
b3ccd01
feat(tapd): add pending routes (list, approve, deny)
ggonzalez94 Apr 14, 2026
118e723
feat(tapd): add SSE event stream handler with Last-Event-ID replay
ggonzalez94 Apr 14, 2026
66b6b4d
feat(tapd): add notification queue and drain route
ggonzalez94 Apr 14, 2026
2c3c82e
feat(tapd): add daemon control routes (health, sync, shutdown)
ggonzalez94 Apr 14, 2026
fb16c4f
feat(tapd): add Daemon class wiring runtime, http, and event bus
ggonzalez94 Apr 14, 2026
c51951c
feat(tapd): add bin entrypoint and public exports
ggonzalez94 Apr 14, 2026
d568708
test(tapd): add end-to-end HTTP integration test
ggonzalez94 Apr 14, 2026
1764f19
test(tapd): add SSE replay integration test
ggonzalez94 Apr 14, 2026
95c2a46
docs(plan): tapd phase 2 web UI implementation plan
ggonzalez94 Apr 14, 2026
10d8159
feat(ui): scaffold packages/ui Next.js workspace with static export
ggonzalez94 Apr 14, 2026
2ef8d6b
feat(ui): add typed shapes mirroring tapd HTTP API
ggonzalez94 Apr 14, 2026
98cde3b
feat(ui): add bearer token bootstrap from URL hash
ggonzalez94 Apr 14, 2026
7a3fc6d
feat(ui): add typed REST client for tapd
ggonzalez94 Apr 14, 2026
70b6923
fix(tapd): accept ?token and ?lastEventId query params for browser SSE
ggonzalez94 Apr 14, 2026
ea9f1d7
feat(ui): add SSE event stream client with reconnect
ggonzalez94 Apr 14, 2026
9688094
feat(ui): add address/chain/time formatters
ggonzalez94 Apr 14, 2026
c39c19f
feat(ui): add hand-written shadcn-style primitives
ggonzalez94 Apr 14, 2026
5184240
feat(ui): add sidebar components (identity, DMs, channels preview)
ggonzalez94 Apr 14, 2026
d77fb77
feat(ui): add chat thread components (bubbles, action cards, composer…
ggonzalez94 Apr 14, 2026
75a84b6
feat(ui): wire main page with SWR fetching and SSE subscription
ggonzalez94 Apr 14, 2026
089360f
feat(tapd): serve packages/ui static export from the daemon
ggonzalez94 Apr 14, 2026
2312cda
test(ui): add Playwright golden-path test against in-process tapd
ggonzalez94 Apr 14, 2026
46bd2f9
chore(ui): biome cleanup, extract Dashboard and PendingActionCards
ggonzalez94 Apr 14, 2026
dd0875c
docs(plan): tapd phase 3 CLI thin-client implementation plan
ggonzalez94 Apr 14, 2026
8d40af3
feat(tapd): add POST /api/messages route
ggonzalez94 Apr 14, 2026
d5fe089
feat(tapd): add POST /api/connect route
ggonzalez94 Apr 14, 2026
8619161
feat(tapd): add POST /api/funds-requests and /api/transfers routes
ggonzalez94 Apr 14, 2026
6b34df5
feat(tapd): add meetings routes (request, respond, cancel)
ggonzalez94 Apr 14, 2026
49d6c56
feat(tapd): add grants and contact-revoke routes
ggonzalez94 Apr 14, 2026
6210f58
feat(cli): add typed tapd HTTP client with discovery
ggonzalez94 Apr 14, 2026
d378896
style(tapd): biome import order fixups
ggonzalez94 Apr 14, 2026
3d6d2ad
feat(cli): add tap daemon start|stop|status|restart|logs commands
ggonzalez94 Apr 14, 2026
8cf62ff
feat(cli): add tap ui command
ggonzalez94 Apr 14, 2026
04a8da1
refactor(cli): make tap message send a tapd HTTP client
ggonzalez94 Apr 14, 2026
21ca0fc
refactor(cli): make tap connect a tapd HTTP client
ggonzalez94 Apr 14, 2026
bbcb0bd
refactor(cli): make tap transfer and request-funds tapd HTTP clients
ggonzalez94 Apr 14, 2026
cc15170
refactor(cli): make meeting commands tapd HTTP clients
ggonzalez94 Apr 14, 2026
fac1fc7
refactor(cli): make tap permissions update a tapd HTTP client
ggonzalez94 Apr 14, 2026
f59a824
refactor(cli): tap message listen now tails tapd's SSE event stream
ggonzalez94 Apr 14, 2026
1926a22
refactor(cli): tap message sync calls /daemon/sync; add in-process ta…
ggonzalez94 Apr 14, 2026
d752ff7
refactor(cli): route contacts remove and permissions revoke through tapd
ggonzalez94 Apr 14, 2026
dea7626
test(cli): run e2e scenarios through an in-process tapd
ggonzalez94 Apr 14, 2026
80b6d2c
refactor(cli): document that createCliRuntime is now test-only
ggonzalez94 Apr 14, 2026
d8cc6b7
docs(plan): tapd phase 4 hermes migration plan
ggonzalez94 Apr 14, 2026
758f50c
feat(tapd): add POST /api/invites route
ggonzalez94 Apr 14, 2026
026a138
feat(cli): add createInvite to tapd client
ggonzalez94 Apr 14, 2026
4dd72b6
refactor(hermes-plugin): use HTTP over Unix socket against tapd
ggonzalez94 Apr 14, 2026
b8823fe
refactor(hermes-hook): start tapd instead of the legacy hermes daemon
ggonzalez94 Apr 14, 2026
9084938
refactor(cli): tap hermes status|sync|restart forward to tap daemon e…
ggonzalez94 Apr 14, 2026
05e4b13
refactor(cli): delete standalone hermes daemon (now uses tapd)
ggonzalez94 Apr 14, 2026
639df9c
refactor(cli): simplify hermes install — no daemon state to register
ggonzalez94 Apr 14, 2026
f1fb738
docs(plan): tapd phase 5 openclaw plugin refactor plan
ggonzalez94 Apr 14, 2026
e5ad4c5
feat(openclaw-plugin): add HTTP-over-Unix-socket client for tapd
ggonzalez94 Apr 14, 2026
b041455
feat(openclaw-plugin): add notifications drain + format helper
ggonzalez94 Apr 14, 2026
6977786
feat(openclaw-plugin): add SSE escalation watcher that wakes the agent
ggonzalez94 Apr 14, 2026
127baf9
refactor(openclaw-plugin): rewire plugin.ts and tool.ts to talk to tapd
ggonzalez94 Apr 14, 2026
83d4aba
refactor(openclaw-plugin): delete registry, queue, classifier, main-s…
ggonzalez94 Apr 14, 2026
d156083
test(openclaw-plugin): replace registry/queue tests with thin-plugin …
ggonzalez94 Apr 14, 2026
f775449
chore(openclaw-plugin): final phase 5 cleanup
ggonzalez94 Apr 14, 2026
5475023
docs(plan): tapd v2 sqlite conversation store implementation plan
ggonzalez94 Apr 14, 2026
8abad4a
feat(core): add better-sqlite3 dependency
ggonzalez94 Apr 14, 2026
a1adc70
feat(core): add sqlite schema runner for conversation store
ggonzalez94 Apr 14, 2026
b356090
feat(core): add SqliteConversationLogger implementing IConversationLo…
ggonzalez94 Apr 14, 2026
bda057b
feat(core): add file-to-sqlite conversation log migration
ggonzalez94 Apr 14, 2026
11e03c4
feat(core): default-context uses SqliteConversationLogger and migrate…
ggonzalez94 Apr 14, 2026
5d52740
feat(cli): conversation commands use SqliteConversationLogger with on…
ggonzalez94 Apr 14, 2026
2b60346
test(tapd): verify SqliteConversationLogger backing for /api/conversa…
ggonzalez94 Apr 14, 2026
71f441a
docs(agents): document SQLite conversation store and apply biome form…
ggonzalez94 Apr 14, 2026
4c8ca0e
docs(review): codex adversarial review findings for all six phases
ggonzalez94 Apr 14, 2026
f7bfea0
fix(core,tapd): move chain map to core, build signer per-request chain
ggonzalez94 Apr 14, 2026
1d56705
feat(core): add typed TapEvent emission at state transitions
ggonzalez94 Apr 14, 2026
b20744a
refactor(tapd): replace event translator with typed-event forwarder
ggonzalez94 Apr 14, 2026
b374dae
feat(tapd): classify typed events into notification queue
ggonzalez94 Apr 14, 2026
2afa2e6
test(tapd): integration test for drain-after-action-pending
ggonzalez94 Apr 14, 2026
f3a39b5
refactor(core): move buildSlots helper out of CLI into core/scheduling
ggonzalez94 Apr 14, 2026
4c37a4a
feat(tapd): /api/meetings accepts flat shape and builds proposal cent…
ggonzalez94 Apr 14, 2026
e522ecf
feat(tapd): /api/messages forwards autoGenerated flag
ggonzalez94 Apr 14, 2026
a66e424
fix(openclaw-plugin): request_meeting sends flat shape to tapd
ggonzalez94 Apr 14, 2026
2bf361a
fix(hermes-plugin): request_meeting sends flat shape to tapd
ggonzalez94 Apr 14, 2026
679b012
test(tapd): client compatibility tests for Hermes and OpenClaw bodies
ggonzalez94 Apr 14, 2026
f1422c2
fix(tapd): make Daemon.start() transactional on partial-failure unwind
ggonzalez94 Apr 14, 2026
cae2c70
fix(cli): tapd-spawn start/stop verify child process liveness
ggonzalez94 Apr 14, 2026
297c424
fix(core): sqlite migration fails closed on partial errors
ggonzalez94 Apr 14, 2026
40c1188
fix(core): sqlite migration preserves canonical conversation metadata
ggonzalez94 Apr 14, 2026
d2d9503
fix(cli): contacts remove fails closed when tapd is not running (F3.1)
ggonzalez94 Apr 14, 2026
f00a58a
fix(openclaw-plugin): socket discovery honors TAP_DATA_DIR env var (F…
ggonzalez94 Apr 14, 2026
2791bb1
fix(hermes-plugin): resolve target identity from hermes config (F4.1)
ggonzalez94 Apr 14, 2026
044ac40
fix(core,tapd,ui): pending match scopes by (peerAgentId, peerChain) (…
ggonzalez94 Apr 14, 2026
0643fde
fix(ui): derive pending card kind from details.type, not item.kind (F…
ggonzalez94 Apr 14, 2026
f8b4a6f
feat(ui): central 401 handling with recoverable re-auth screen (F2.2)
ggonzalez94 Apr 14, 2026
c987f2e
fix(hermes-plugin): drain notifications from every configured identity
ggonzalez94 Apr 14, 2026
f40c643
fix(core): sqlite migration tracks per-file completion to prevent ret…
ggonzalez94 Apr 14, 2026
10c8db8
refactor(core,openclaw-plugin): consolidate event emission and dedupe…
ggonzalez94 Apr 14, 2026
9052f00
fix(ui): 401 handling covers SSE, markRead, approve, deny
ggonzalez94 Apr 14, 2026
827b7f7
gnhf #2: Simplified service.ts by -40 lines: extracted actionKindFrom…
ggonzalez94 Apr 14, 2026
3f3e8e1
fix(core): restore as unknown as Record double-casts for scheduling/t…
ggonzalez94 Apr 14, 2026
7e82271
gnhf #3: Extracted 3 helpers across 3 files to eliminate repeated pat…
ggonzalez94 Apr 14, 2026
81c4ee3
gnhf #4: Replaced 7 inline patterns with the existing helper across…
ggonzalez94 Apr 14, 2026
65eef25
fix(core): atomic importLog closes sqlite migration same-file partial…
ggonzalez94 Apr 14, 2026
e183d52
gnhf #5: Simplified 4 files by -46 net lines: extracted factory in n…
ggonzalez94 Apr 14, 2026
084db4a
fix(core): importLog skips metadata UPDATE on existing conversation rows
ggonzalez94 Apr 14, 2026
946a948
gnhf #6: Extracted asRecord() and requireParam() validation helpers i…
ggonzalez94 Apr 14, 2026
1ffd3d0
fix(core): monotonic merge for importLog metadata on existing rows
ggonzalez94 Apr 14, 2026
a6bb7bd
gnhf #7: Extracted releaseResources() in daemon.ts to deduplicate sto…
ggonzalez94 Apr 14, 2026
5a7fa86
fix(core): importLog merge compares timestamps as instants, not lexic…
ggonzalez94 Apr 14, 2026
43e57ca
gnhf #9: Extracted 3 private emit helpers (emitActionRequested, emitA…
ggonzalez94 Apr 14, 2026
5c22480
fix(core): canonicalize timestamps on every write to make lexical ORD…
ggonzalez94 Apr 14, 2026
741c6b4
gnhf #10: Extracted body-building helper in the Hermes Python client…
ggonzalez94 Apr 14, 2026
9f7c362
fix(core): strict calendar validation + backfill pre-canonical sqlite…
ggonzalez94 Apr 14, 2026
b80967c
fix(core): batch+resume sqlite backfill and validate humanApprovalAt …
ggonzalez94 Apr 14, 2026
7f1f72c
gnhf #12: Replaced 4 verbose inline error-code checks and the local …
ggonzalez94 Apr 14, 2026
6922492
gnhf #13: Simplified 3 files with targeted cleanups: replaced two 8-l…
ggonzalez94 Apr 14, 2026
419700a
gnhf #14: Added isNonEmptyString() and isOptionalString() validation …
ggonzalez94 Apr 14, 2026
46cac8e
gnhf #15: Extracted isOptionalReasonBody validator to validation.ts, …
ggonzalez94 Apr 14, 2026
4aa444f
gnhf #16: Consolidated 7 duplicate tapd well-known file name constant…
ggonzalez94 Apr 14, 2026
0f9a21c
gnhf #17: Extracted 3 private emit helpers (emitConnectionRequested, …
ggonzalez94 Apr 14, 2026
b0536bb
gnhf #18: Replaced 3 remaining hardcoded tapd well-known file name st…
ggonzalez94 Apr 14, 2026
6149b11
fix(ci): build tapd before CLI typecheck, fix spell-check typos
ggonzalez94 Apr 21, 2026
8108dbe
Merge remote-tracking branch 'origin/main' into gnhf/simplify-the-cha…
ggonzalez94 Apr 21, 2026
3c96d1f
fix(cli): resolve merge — port status.ts hermes import to config.ts
ggonzalez94 Apr 21, 2026
a31139b
fix(plugin,cli): address review — escalation watcher independence + h…
ggonzalez94 Apr 21, 2026
834ab46
fix(cli): address review — kill orphan tapd child when startup times out
ggonzalez94 Apr 21, 2026
3727c77
fix(plugin,cli): address review — restart action fails loudly instead…
ggonzalez94 Apr 21, 2026
a0455e2
fix(openclaw-plugin): address review — update tool.test for new resta…
ggonzalez94 Apr 21, 2026
9ecfe5e
fix: address review — lint, token leak, watcher restart, queue cap
ggonzalez94 Apr 21, 2026
ec7c53a
fix: address review — resolve_pending validation, spawn error handler…
ggonzalez94 Apr 21, 2026
e771f97
fix(tapd): address review — validation throws HttpError(400) for 4xx …
ggonzalez94 Apr 21, 2026
0764116
fix(tapd): address review — HttpError for remaining client-input paths
ggonzalez94 Apr 21, 2026
8dc474a
fix(tapd,cli): finalize review batch — socket auth, meetings flat bod…
ggonzalez94 Apr 21, 2026
6ab94ee
fix(tapd): address review — scope ?token= query auth to the SSE route…
ggonzalez94 Apr 21, 2026
d7ff06e
fix(cli): address review — wait briefly for spawn error before claimi…
ggonzalez94 Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ packages/openclaw-plugin/skills/
packages/cli/skills/
.next/
out/
.superpowers/
.superset/
__pycache__/
3 changes: 2 additions & 1 deletion Agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,8 @@ File: `packages/sdk/src/orchestrator.ts`
├── apps/ # app-scoped state
│ ├── transfer/state.json
│ └── scheduling/state.json
├── conversations/<id>.json # Per-peer message transcripts
├── conversations.db # SQLite store for conversation logs (v2, replaces conversations/*.json)
├── conversations.bak/ # Pre-migration JSON backups (safe to delete after a release)
└── xmtp/<inboxId>.db3 # XMTP client DB (encrypted)
```
- Resolution order: `--data-dir` flag > `TAP_DATA_DIR` env > `~/.trustedagents`
Expand Down
383 changes: 374 additions & 9 deletions bun.lock

Large diffs are not rendered by default.

Loading