From 15e44a02dc0cec9f6bbf56617f244c5f12675b30 Mon Sep 17 00:00:00 2001 From: archipelago Date: Mon, 3 Aug 2026 19:03:13 -0400 Subject: [PATCH] =?UTF-8?q?docs(13-02):=20checkpoint=20resolved=20?= =?UTF-8?q?=E2=80=94=20operator=20approved,=20plan=20complete=203/3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .../13-02-SUMMARY.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/.planning/phases/13-aiui-functional-conversational-node-control-and-content-surf/13-02-SUMMARY.md b/.planning/phases/13-aiui-functional-conversational-node-control-and-content-surf/13-02-SUMMARY.md index 7a84a20d..289b27cb 100644 --- a/.planning/phases/13-aiui-functional-conversational-node-control-and-content-surf/13-02-SUMMARY.md +++ b/.planning/phases/13-aiui-functional-conversational-node-control-and-content-surf/13-02-SUMMARY.md @@ -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).