From 8261fefd8fd57b4b723b741fbce2f57b49f13fea Mon Sep 17 00:00:00 2001 From: "glm-5.3-flash" Date: Sun, 30 Aug 2026 22:12:40 +0000 Subject: [PATCH] chore(tasks): mark js01, con18-wss, fwd17-19, con18b completed --- tasks/adapters/review-002-con18-wss-sweep-exit.md | 8 ++++++-- tasks/adapters/review-002-fwd17-19-contract-decisions.md | 8 ++++++-- tasks/adapters/review-002-js01-placeholder-check.md | 8 ++++++-- tasks/websocket/review-002-con18b-ws-polish.md | 8 ++++++-- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/tasks/adapters/review-002-con18-wss-sweep-exit.md b/tasks/adapters/review-002-con18-wss-sweep-exit.md index 9d7dc19..098dedc 100644 --- a/tasks/adapters/review-002-con18-wss-sweep-exit.md +++ b/tasks/adapters/review-002-con18-wss-sweep-exit.md @@ -1,7 +1,7 @@ --- id: review-002-con18-wss-sweep-exit name: Dead-connection fast-fail + bounded from_wss sweep exit (CON-18) -status: pending +status: completed depends_on: [] scope: narrow risk: low @@ -56,4 +56,8 @@ plus a sweep-generation counter (exit after N idle sweeps post-EOF). The alkcall-side CF-001 note matters: if/when the dead-mux write mapping changes, the fail-fast class here should match. Keep the WS-02 losslessness invariant intact — fast-fail is an *additional* -resolution path, not a replacement for the watch signal. \ No newline at end of file +resolution path, not a replacement for the watch signal. + +## Summary + +50ms drain interval + monitor return after 8 consecutive empty post-EOF drains (~400ms grace); post-EOF registrations fail fast with retryable CONNECTION_CLOSED; fixed a busy-spin in the old select's eof branch. ADR-070 updated. No public API change. diff --git a/tasks/adapters/review-002-fwd17-19-contract-decisions.md b/tasks/adapters/review-002-fwd17-19-contract-decisions.md index 2f40f78..1f93ad8 100644 --- a/tasks/adapters/review-002-fwd17-19-contract-decisions.md +++ b/tasks/adapters/review-002-fwd17-19-contract-decisions.md @@ -1,7 +1,7 @@ --- id: review-002-fwd17-19-contract-decisions name: Forwarding contract decisions — non-JSON SSE payloads, double-routed placeholders, percent preservation (FWD-17/18/19 decide+document or fix) -status: pending +status: completed depends_on: [review-002-fwd15-stream-timeout] scope: narrow risk: low @@ -65,4 +65,8 @@ Deliberately a decide-first task: none of the three is a crash or leak; each is a contract the code half-implies. Keep the decisions small and documented rather than building speculative machinery (e.g. no new envelope schema unless (b) is actually chosen). Coordinate with -review-002-fwd13-dot-segments (same helpers, different concerns). \ No newline at end of file +review-002-fwd13-dot-segments (same helpers, different concerns). + +## Summary + +FWD-17: non-JSON SSE payloads surface as {data, event} wrapper (event: captured, WHATWG last-wins, leak fixed). FWD-18: structural placeholder values are INVALID_INPUT (no JSON splicing into paths). FWD-19: % in values always encoded, template text preserves pre-encoded % (ADR-066 trust boundary). ADR-066 records all three; SseEvent gained an event field (crate-internal). diff --git a/tasks/adapters/review-002-js01-placeholder-check.md b/tasks/adapters/review-002-js01-placeholder-check.md index 18fd42c..4d1570f 100644 --- a/tasks/adapters/review-002-js01-placeholder-check.md +++ b/tasks/adapters/review-002-js01-placeholder-check.md @@ -1,7 +1,7 @@ --- id: review-002-js01-placeholder-check name: Fix placeholder check skipped when input_schema has no properties (JS-01) -status: pending +status: completed depends_on: [] scope: single risk: low @@ -53,4 +53,8 @@ declared properties, any placeholder is unbound. The existing test One-line fix + one test. Explicitly approved to fold into any commit that is already touching from_jsonschema.rs (e.g. the wire-tests task) if a session prefers — but if touched standalone, keep it its own -commit per the small-units convention. \ No newline at end of file +commit per the small-units convention. + +## Summary + +Removed the properties.is_empty() early return in spec_name_references_undeclared - placeholder templates with a properties-less input_schema now fail construction (matches from_openapi unbound_placeholders). Both acceptance branches tested. diff --git a/tasks/websocket/review-002-con18b-ws-polish.md b/tasks/websocket/review-002-con18b-ws-polish.md index 4214ab7..24c9d68 100644 --- a/tasks/websocket/review-002-con18b-ws-polish.md +++ b/tasks/websocket/review-002-con18b-ws-polish.md @@ -1,7 +1,7 @@ --- id: review-002-con18b-ws-polish name: WS small fixes — pre-send cap check, close reasons, custom-route knobs, axum-flavor tests (WS-14/15/17/18/19) -status: pending +status: completed depends_on: [review-002-ws13-idle-progress] scope: moderate risk: low @@ -70,4 +70,8 @@ per finding with its own commit, in the order above (WS-14 is the only behavior-correctness one; WS-18 is the only new mechanism). If WS-13 (chief-risk task) changed the read-loop shape, rebase-verify the cap accounting comments before this task's slices — they cite -pre/post-extend order explicitly. \ No newline at end of file +pre/post-extend order explicitly. + +## Summary + +WS-14 pre-send cap check in poll_write; WS-15 per-cause close reasons (close_reason module, absorbs the text-message reason bug); WS-18 60s write-progress timeout (close-less teardown on clogged socket); WS-17 WsTimeouts request extension (replaces-state precedence); WS-19 axum-flavor tests. One commit per item.