docs(13-02): checkpoint resolved — operator approved, plan complete 3/3
Positive path confirmed by the operator on real hardware. Machine half independently re-probed by the orchestrator rather than taken from the executor's report. Openrouter status-code finding accepted as a deviation with the reasoning recorded; explicit 404 scheduled in 13-09. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
de058bace7
commit
15e44a02dc
+42
@@ -223,3 +223,45 @@ Type "approved" with a disposition on the openrouter finding, or describe what s
|
||||
- FOUND commit `b28cc3ee` (Task 2)
|
||||
- `cargo build --release --package archipelago` exited 0 (this session, 29m20s, only pre-existing unrelated warnings)
|
||||
- Real-node verification: `bash tests/production-quality/aiui-proxy-closed.sh 192.168.63.169 archipelago` ran (exit 1 — one honest finding, not a script bug; see Checkpoint)
|
||||
|
||||
---
|
||||
|
||||
## Checkpoint RESOLVED — operator approval 2026-08-03
|
||||
|
||||
Task 3's `gate="blocking"` human-verify checkpoint is **satisfied**. Plan 13-02 is COMPLETE (3/3).
|
||||
|
||||
**Human half — approved by the operator.** The positive path was confirmed on real hardware:
|
||||
a logged-in operator's embedded AIUI chat still works after the change. This is the half no
|
||||
agent could verify, and the one the plan's D-17 truth depends on ("a logged-in operator's
|
||||
currently-deployed AIUI build keeps working through the migration window").
|
||||
|
||||
**Machine half — independently re-verified by the orchestrator**, not accepted on the
|
||||
executor's report alone. Probed from a non-loopback address against archy-x250-dev3:
|
||||
|
||||
| Probe | Expected | Observed |
|
||||
|---|---|---|
|
||||
| `POST /aiui/api/claude/v1/messages` (no session) | 401 | **401** |
|
||||
| `GET /aiui/api/ollama/api/tags` (no session) | 401 | **401** |
|
||||
| port 3142 listening | 0 | **0** |
|
||||
| `claude-api-proxy` systemd unit | gone | **gone** |
|
||||
| `secrets/claude-api-proxy.env` (second ledger) | absent | **absent** |
|
||||
|
||||
**Openrouter finding — ACCEPTED as a deviation, disposition by the orchestrator.**
|
||||
`/aiui/api/openrouter/` returns 200 (GET) / 405 (POST) rather than the plan's literal 404.
|
||||
Verified this is the SPA catch-all (`location / { try_files ... /index.html; }`) and not a
|
||||
surviving relay: a deliberately made-up path returns byte-identical HTML, the only
|
||||
`openrouter.ai` string on the node is inside the executor's own
|
||||
`sites-available/archipelago.pre-13-02.bak` (nginx loads `sites-enabled/`, so it is not
|
||||
served), and both live occurrences in the active config are comments recording the deletion.
|
||||
**The security property the plan set out to achieve holds — no code path reaches openrouter.ai.**
|
||||
Only the status code differs. An explicit `return 404` was NOT bolted on here to make the
|
||||
number match; it is scheduled in 13-09, which already owns this nginx config.
|
||||
|
||||
**Node caveat, not a defect:** archy-x250-dev3 has never had `secrets/claude-api-key`
|
||||
configured, so an authenticated call there returns 503 with the plain-language
|
||||
"not configured" message rather than reaching Anthropic. The 401-vs-503 distinction is
|
||||
exactly what this plan wanted: unauthenticated callers are refused *before* any key lookup.
|
||||
|
||||
**Deliberate deviation on target:** verified on archy-x250-dev3, not archi-dev-box. The local
|
||||
box was running an OTA release test, and deploying to it from this sibling worktree would have
|
||||
tripped the uncovered `rsync --delete` hazard (widening that guard is 13-09 Task 3).
|
||||
|
||||
Reference in New Issue
Block a user