← Priority list
Blocked

Approve correcting two existing UrlResolver relay test contracts

Decide whether to correct the direct-only and zero-reconnect assertions that contradict the draft recovery contract. Matched XML proves the existing failures are branch-induced; the prepared test-only checkpoint passes21/21 first attempts. The original draft stays unmerged and red until these contract corrections and final CI are handled.

Owner approval is required before correcting two existing test assertions that contradict the intended relay recovery and typed no-admission contracts.

Handoff document

Markdown

Handoff: approve correcting two existing relay recovery test contracts

Written 2026-10-19. RE-VERIFY: Read the current head and description of https://github.com/CodexCoder21Organization/UrlResolver/pull/1314 and the owner's latest answer before acting. This is a decision snapshot, not permission to merge, publish or deploy.

Design decisions in force

The owner requested: “Leave it as a draft.” “Never raise timeouts, reduce iteration counts, weaken or delete assertions, or disable tests.” “Do NOT mark ready, merge, enqueue, publish or deploy. Do not re-run CI blindly.”

The read global test instruction in ~/.claude/CLAUDE.md:407 requires explicit approval before changing a genuinely wrong existing test contract. The question was sent during r59 and has not been answered.

Decision needed

Approve correcting these two existing assertions to match the draft's documented behavior, preserving complete error text, exact dispatch/reconnect counts, and the independent reader/close-future assertions:

  1. testPersistentConnectionReconnectFailsWhenNoAlternativePeers supplies a circuit-only route but expects generic persistent reconnect to be direct-only. RelayConfig(enableRelay=false) disables acting as a relay, not outbound fallback. The draft intentionally recovers its original provider through that supplied route; the test should expect the actual relay no-target error with zero additional provider executions.
  2. testServerCloseCompletionIsNotCallerBarrier receives typed whole-frame zero-byte evidence (StreamClosedBeforeWriteException) but expects an ambiguous result and zero reconnects. The draft intentionally permits replay in this case. Keep the held-reader/close-completion checks, and prove exactly one replacement execution/reconnect rather than asserting the old request result.

Recommendation: approve those contract corrections. Keeping the old expectations would require changing the documented public behavior and re-scoping the work; it is not a reason to quietly alter assertions.

Verified context

The draft is OPEN at1168eddb5806770178cf95307b80918730fddc92 and stays draft. The original3 failing cases are branch-induced: matched local XML first0/3 on PR versus3/3 on main046396a677e14cf950dc7c3d102cbc2c187b75a1; PR raw0/9, mainraw3/3. One of those3 is a repaired stale fixture. The other2 are the contracts above.

The prepared test-only checkpoint https://github.com/CodexCoder21Organization/UrlResolver/commit/accbd77853bdd09be17d6d3f7ac1b86164f44dd2 passed21/21 first local attempts, zero retries. Every new test has a failing main-runtime or review-fix-reverted control. It is on https://github.com/CodexCoder21Organization/UrlResolver/tree/fix/r59-verified-test-guards and has not been applied to the PR branch. Full failure records, runner XML and reviews are on https://github.com/CodexCoder21Organization/UrlResolver/tree/notes/r59-relay-verification/investigations/r59 . No source/pin change, production action, publication, merge or queue entry was made.

No code was created by this decision record, so no separate work branch is needed. Once the owner answers, record the exact answer and complete this decision record; resume the main verification handoff and preserve its no-merge/no-publication limits.

No status reports yet.

Add dependency

Complete this handoff

Moves it out of every priority list and into ArchiveArea.