52 lines
2.7 KiB
Markdown
52 lines
2.7 KiB
Markdown
# 8.9 — `X-Service: memory` adapter, extended resources (GREEN)
|
|
|
|
Phase: 8 — ServiceAdapter CRD rollout
|
|
Stage: BLOCKED — do not start until the upstream note below is resolved
|
|
Depends on: 8.8 (core `memory` adapter live)
|
|
|
|
Design contract: `~/workplace/Poimen/memory/DESIGN.md` "Distributed API Layer"
|
|
section. Covers `GET /memory/projects/{id}/notes`, `POST /memory/context`, and the
|
|
optional `POST /memory/nodes/by-git`/`by-commit`/`by-author` git-aware lookups.
|
|
|
|
**Upstream status, checked against that repo's own task board, not assumed:**
|
|
- `notes` is listed in the M3.5 task table but **not** in the confirmed-tested set
|
|
(`query`, `projects`, `projects/{id}/status`, `ingest`, `skills`, `skills/{name}`)
|
|
- `context` depends on M3.7.7 (signature extraction) and M3.7.8 (symptom vector) —
|
|
neither is built per that repo's phase ordering
|
|
- git-aware lookups (M3.5.9) are explicitly marked optional in that repo's own board
|
|
|
|
**Before writing any CR entry here: re-check `~/workplace/Poimen/memory/memory-tasks/INDEX.md`
|
|
for current status of M3.5.6, M3.7.*, and M3.5.9.** If they are still not shipped,
|
|
stop and report that instead of building a gateway route with nothing live to call —
|
|
per this repo's own zero-context-agent rule, a route to a 404 is not verifiable and
|
|
this task cannot be completed honestly.
|
|
|
|
- [ ] Confirm `notes`, `context`, and `nodes/by-*` are live upstream (curl the
|
|
Service directly from inside the cluster, not through the gateway, to check)
|
|
- [ ] `responseSchema` for `context` is defined **from the real response**, not from
|
|
`DESIGN.md`'s prose description (that doc itself says the exact bundle shape
|
|
isn't pinned down — "the bundle is a composition" with no worked JSON example)
|
|
- [ ] Extend `k8s/serviceadapter-memory.yaml` (from 8.8) with these three resources,
|
|
same `memory:read` capability as `query`/`skill`/`project`
|
|
- [ ] git-aware resources only added if M3.5.9 is confirmed shipped — otherwise
|
|
ticket this as follow-up and leave this task's remaining boxes unchecked
|
|
|
|
## Verify
|
|
|
|
```bash
|
|
# from inside the cluster, upstream directly — confirms it exists before routing to it
|
|
kubectl -n poimen exec deploy/poimen-memory -- curl -s localhost:8080/memory/context \
|
|
-X POST -d '{"tool":"kubectl"}'
|
|
# expected: 200 with a real body, not 404 — if 404, stop, this task is blocked
|
|
|
|
curl -s -H 'Authorization: Bearer <jwt-with-memory:read>' \
|
|
https://api.riotpiao.com/ -H 'X-Service: memory' -H 'X-Resource: notes' \
|
|
-G --data-urlencode 'project=poimen'
|
|
# expected: 200, array of L1/L2 note objects
|
|
|
|
curl -s -X POST -H 'Authorization: Bearer <jwt-with-memory:read>' \
|
|
https://api.riotpiao.com/ -H 'X-Service: memory' -H 'X-Resource: context' \
|
|
-d '{"tool":"kubectl"}'
|
|
# expected: 200, bundled context response
|
|
```
|