feat(workspace): default-aggregation for task/state/memory
Some checks failed
CI / Lint (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled

ships v0.5.0 phase 2.

api: three new aggregator endpoints for the per-mesh subsystems
that didn't have one yet.
- GET /v1/me/tasks — open + claimed by default; ?status=all
  surfaces completed (30d window). sorted open > claimed > done.
- GET /v1/me/state — every (key, value) row across the user's
  meshes, sorted by recency. ?key=foo filters to one key.
- GET /v1/me/memory?q=... — ilike on content + tags, no q
  returns the last 30 days. excludes forgotten rows.

cli (1.16.0): task list, state list, recall now route through
the matching aggregator when --mesh is omitted. --mesh foo
still scopes to one mesh (existing behavior preserved).

with this, every per-mesh read verb in the cli either has a
cross-mesh aggregator or doesn't need one. v0.5.0 substrate is
complete.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alejandro Gutiérrez
2026-05-03 10:17:41 +01:00
parent 5ceb311d74
commit f679b49b6c
5 changed files with 544 additions and 11 deletions

View File

@@ -289,13 +289,15 @@ level, or wire claudemesh to messaging surfaces beyond Claude Code.
now route through `/v1/me/topics` and `/v1/me/notifications`
instead of prompting. `--mesh foo` keeps the per-mesh
behavior. *Shipped 2026-05-03 in CLI v1.15.0.*
- **v0.5.0 phase 2+ — default-aggregation for `task list`,
`state list`, `memory recall`** — needs `/v1/me/tasks`,
`/v1/me/state`, `/v1/me/memory` aggregator endpoints first.
Each subsystem's per-mesh keying scheme decides whether
aggregation is straight union (state) or needs ranking
(memory recall — vector similarity across meshes is non-
trivial).
- **v0.5.0 phase 2 — default-aggregation for `task list`,
`state list`, `memory recall`** — three new aggregator
endpoints land: `/v1/me/tasks` (open + claimed by default,
`?status=all|open|claimed|completed`), `/v1/me/state`
(every key/value across meshes, `?key=foo` filters), and
`/v1/me/memory?q=` (ILIKE on content + tags, no-query
default returns last 30d). CLI: omitting `--mesh` on each
verb routes through the matching aggregator. *Shipped
2026-05-03 in CLI v1.16.0.*
- **v0.3.2 — multi-session DM routing + broadcast self-loopback** —
fixes two production bugs: (1) replies via `claudemesh send
<from_id>` rejected with "no connected peer" when the sender's