moving
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled

This commit is contained in:
Oleg Maslov
2026-09-02 10:10:29 +02:00
commit 0c3e2ead3b
3841 changed files with 970576 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
# PR3.5 — Live route verification against a FRESH sidecar (2026-06-16)
**Why this exists:** the S3 handoff shipped PR3.5 but flagged one open item — the running
`:3333` dev sidecar was started 2026-06-12 (4 days pre-PR3.5), so `tsx` never loaded the
new routes. The committed UI smoke (`smoke-pr35-20260616/`) therefore ran the Memory-Trust
front door against a **stale** backend. This pass restarts the sidecar from the PR3.5 tree
and exercises the three new routes end-to-end (HTTP + FE), closing that gap.
**Verdict: PASS.** All three PR3.5 backend routes work live; the FE wires to them with **0
console errors/warnings**.
---
## Environment (verified, not assumed)
| Thing | State |
|---|---|
| Branch | `feature/warm-hive-pr3` @ `199bdbab` |
| Sidecar | fresh start from this tree — `WAGGLE_SKIP_LITELLM=1 tsx packages/server/src/local/start.ts` on `:3333`; `/health``database.healthy:true`, personal mind frameCount 3 |
| New-route presence proof | `GET /api/memory/999999/trace` (no auth) → **401 MISSING_TOKEN** (route exists) — NOT a Fastify "route not found" 404, i.e. the live sidecar has the PR3.5 code |
| Vite | running `:8080`, **serves this tree** (its served `MemoryTrustManage.tsx` module contains `ConfidenceRing` + `/confirm`) and proxies `/api` → my fresh `:3333` |
| Auth | bearer from `GET /api/auth/session-token` (loopback, no Origin needed) |
---
## 1A — `GET /api/workspaces/:id/context` projects `frame.source` ✅
The provenance ⬡ pill on the Workspace "What Waggle knows" rows is fed by the `source`
column the SELECTs now carry (workspaces.ts:394 / :411).
| Workspace | recentMemories | sources observed |
|---|---|---|
| `writer-demo-anya` | 8 | **`user_stated` AND `tool_verified`** (multi-source — proves not hardcoded) |
| `default-workspace` | 1 | `user_stated` |
| `new-hive` | 0 | (honest empty) |
`recentDecisions[].source` projected too. Writer-demo frames 14/15 carry `agent_inferred`
(the backend-review H-1 honesty fix — agent writes are no longer silently `user_stated`).
## 1.5 — `POST /api/memory/:id/confirm` + `GET /api/memory/:id/trace` ✅
**confirm** (HTTP + audit-trail proof):
- `POST /api/memory/47/confirm``status: active`, id 47. (404 on `999999`.)
- End-to-end write proof in `~/.waggle/audit.db`:
`event_type=memory_write ws=personal 2026-06-16 15:43:56 in={"frameId":47,"action":"confirm"} out={...,"status":"active"}`
→ route → `setMetadata``emitAuditEvent` → DB. Workspace-mind path also exercised
(writer-demo-anya frame 12, `mind:workspace`).
- The drawer for M-47 shows `updated 6/16/2026, 5:43:56 PM` — the exact `updatedAt` my
confirm stamped (live persistence proof).
**trace** (all three paths):
- `GET /api/memory/47/trace``{"trace":null}` (honest — manual frame, no `trace_id`).
- `GET /api/memory/999999/trace` → 404 `Memory not found`.
- `GET /api/memory/abc/trace` → 400 `Invalid memory id`.
- Populated `{trace:{...}}` requires a chat-written frame carrying `metadata.trace_id`
(pattern-write-back path) — none in the dev data; unit-covered (memory-center 25/25).
## UI smoke — Memory-Trust front door vs the FRESH sidecar ✅
`http://localhost:8080/memory`**Trust tab is the default Memory view**.
- **Manage** (`01-manage-fresh-sidecar.png`): honest stat bar — `3` memories · **`—`**
high-confidence (gated, not faked) · `0` stale · `0` awaiting confirm. 3 rows with the
live 3-segment provenance line `⬡ M-47 · source: you · ● fresh`; M-1 shows real freshness
`● aging — added 9w ago`. "Forgotten" filter honestly disabled (hard-delete, no recovery).
- **Detail drawer**: `source: user_stated`, `updated …5:43:56 PM` (my confirm write).
- **"Why is this here?"** → FE fired `GET /api/memory/47/trace?mind=personal`**200**
Why view rendered the no-fabrication empty state: *"No trace is linked to M-47. This
memory was added manually, imported, or written before traces were linked…"*
(`02-why-trace-null-fresh-sidecar.png`).
- All FE→backend calls 200 (`/api/memory?mind=personal&limit=500`, `/api/memory/stats?scope=all-minds`,
`/api/workspaces`, `/api/memory/47/trace`). **Console: 0 errors, 0 warnings** (whole session).
---
## Notes
- Audit log shows a **prior** live-verify ran at 15:18 (throwaway frames, since cleaned up)
— consistent with concurrent activity earlier in the day; this pass independently
reproduces PASS on a freshly-restarted sidecar.
- No code changed in this pass — verification only. Evidence is uncommitted (founder's call).
## Next (ship)
1. Mark **PR #17** ready. It's stacked on **PR #16** → merge/rebase **#16 → main first**,
then **rebase #17 onto main**.
2. Optionally commit this evidence dir alongside the prior `smoke-pr35-20260616/`.