Skip to content

test: RC4 five-host Relay stability and real-ACK validation #164

Closed

Description

@abruption

Goal and release boundary

Prepare a new v1.0.0-rc.3 campaign for #161 and #163 after an exact candidate is reviewed. This issue is a test plan, not permission to merge draft PR #162, publish RC3, replace KR production services, alter Cloudflare/OCI/Caddy policy, or start a live run. RC2's four-hour run ended near minute 172 without a terminal complete record and had public Relay failures; it is not a passed release soak.

Candidate preflight

Live matrix after separate rollout approval

  • Exact RC3 on Mac mini, MacBook, quintet-desktop native Windows plus WSL receiver, KR and US; verify local discovery/MCP and direct/SSH routes separately from public Relay.
  • Forced public Relay probe-only routes in both Mac directions, US→Mac, Mac→Windows/WSL, and server-originated paths. Record stage, failure category, timing, diagnostic UUID/CF-Ray where available, receiver room/close event and origin TCP metadata; do not infer consumption from 200/101, attach or queued.
  • Randomize/alternate probe order and direction so US-first and warmed-receiver advantages cannot masquerade as PoP effects. Keep one request per bounded window and do not replay ambiguous sends.
  • Fresh unique actual-message ACK tokens at T0, T2 and T4 in dedicated live Claude/Codex/Antigravity targets where supported, including Windows native targets. An incoming prompt or permission wait is receipt, not an ACK; exact user/live-TUI response is required.
  • A single uninterrupted four-hour run: every-minute public and KR-local health/resource samples; every-five-minute direct and Relay routes; one controlled Relay restart at T2 with recovery target <=60 s. Record all failures, changes and UTC/KST boundaries rather than silently resetting the clock.
  • A coordinator/process-lifetime guard must produce a terminal complete only after elapsed >=14,400 s and the T4 network checkpoint is submitted. Unexpected exit produces an explicit incomplete/aborted result; it never opens completion-gated follow-ups.

Pass / fail

Pass requires no unexplained Relay failures, no duplicate native effects, exact required ACKs, intact auth/replay state, recovery after the planned restart, and independently checked terminal evidence for the full four hours. If any route fails or evidence is incomplete, keep #161 and stable v1.0.0 blocked, file/deduplicate a finding, and plan another explicit candidate/run. A normal single CF/direct comparison or a successful retry is insufficient proof of long-term stability.

Optional direct-origin-vs-CF A/B or the previously prepared 15-minute receiver wrapper requires a separate bounded approval and current safety checks; the aborted RC2 run did not satisfy the wrapper's original completion gate.

Independent review additions (2026-09-23)

For an RC3 candidate to distinguish receiver-room absence from attach-after-stall, the preflight and live harness should include:

  • Client diagnostic history per attempt, not just the final attempt: allowlisted stage, reason, elapsed milliseconds and WebSocket close code where available. Keep retry-success routes in a separate degraded count; they do not pass the clean stability gate.
  • Receiver metadata-only lifecycle: room open/admission/WSS elapsed, room close reason and age, attach receipt, peer-TLS outcome/elapsed, reconnect gap. Separate expected idle expiry from genuine failures rather than hiding both under a one-per-minute reconnect warning.
  • Relay metadata-only attach/room closure: receiver WebSocket age, last-pong age if observable, and room-end reason counters. Correlate clocks and diagnostic IDs without recording identities, payloads, credentials or raw exception text.
  • A fixture that injects >10 s admission delay and a stalled receiver leg, then observes a subsequent client/retry. Assert first and second attempt diagnostics remain distinct and that the test's invoke deadline exceeds the candidate's worst-case setup+retry bound. The old 35 s harness deadline may collapse useful diagnostics into an outer timeout.
  • T2 planned-restart recovery must be measured per affected route; the RC2 run did not recover the US→mini route inside 69 s. Make the soak runner independent of the interactive coordinator process and require a durable terminal complete/aborted record.
  • If doing an optional receiver-leg direct-origin-vs-CF A/B, instrument the above first and get separate approval for host/IP /32, duration, network exception and rollback.

These are acceptance and design inputs, not authorization to deploy instrumentation or to publish RC3. The cause of #161 remains unproven.

Activity

  1. added this to the v1.0.0-rc.3 milestone on Sep 23, 2026
  2. changed the title [-]test: prepare RC3 five-host Relay stability and real-ACK validation[/-] [+]test: RC4 five-host Relay stability and real-ACK validation[/+] on Sep 23, 2026
  3. abruption commented on Sep 23, 2026

    @abruption
    OwnerAuthor

    RC4 scope amendment (2026-09-23): RC3 was only partially published on PyPI (wheel accepted, sdist upload failed), and no RC3 fleet rollout or four-hour campaign began. The user selected a reviewed RC4 fix-forward. The original RC3 body remains as the historical plan; every reference to the test candidate in its execution and pass/fail criteria now means the exact, fully published v1.0.0-rc.4 artifact, not the incomplete RC3.

    Before any rollout, require a successful publish workflow and independent matching wheel+sdist PyPI hashes, fresh installs, installed-version evidence on all five hosts, backups and rollback. During the independent four-hour campaign, keep at least five minutes between probes to each receiver, enable sanitized diagnostic events, sample receiverRoleBusy/clientRoleBusy each minute, obtain independent actual ACKs at T0/T2h/T4h, and measure the single T2h Relay restart recovery against the 60-second target. A queued submission, retry-only success, missing terminal complete record or unexplained failure is not a pass. #161 and #163 remain open pending evidence.

  4. abruption commented on Sep 23, 2026

    @abruption
    OwnerAuthor

    RC4 five-host campaign started 2026-09-23 18:22:27 KST (09:22:27 UTC) from the exact fully published 1.0.0rc4 build. Independent LaunchAgent PID 16069 writes durable minute-by-minute evidence; KR Relay/Control health and all three waiting receivers were checked before T0. T0 public/KR health and the first direct/Relay probe set succeeded; T5 direct/Relay probes also succeeded. T0 actual ACKs were independently observed on Mac mini Claude and MacBook Claude and confirmed by the user for all three Windows paths. Two Codex-target submissions (US→mini and mini→MacBook) returned native_outcome_unknown after Relay attach, and request-ID reconciliation still reports unknown. No retry was sent. Those outcomes are failures/missing ACK evidence for the clean release gate; the remaining four-hour run continues to collect diagnostics and the planned T2 recovery/T4 checkpoint. No stable promotion or issue closure is implied.

  5. abruption commented on Sep 24, 2026

    @abruption
    OwnerAuthor

    RC4 rerun acceptance decision (2026-09-24 KST; user explicitly accepted this operational exception):

    • Exact candidate: v1.0.0-rc.4, commit 60f7f8b. Independent rerun rc4-rerun-02 recorded terminal complete after 14,436.65 s with operationalPass=true and failures=[]. Health 241/241, direct/Relay probes 147/147, and submissions 21/21 succeeded. Three waiting rooms were present throughout; T120 planned Relay restart recovered them in 3.182 s.
    • Actual checkpoint ACK evidence remains 20/21: T0 7/7, T120 6/7, T240 7/7. The original T120 Windows native Claude message was submitted, but its CMD TUI exited and actual consumption is unconfirmed. Do not count it as an ACK or change the original campaign tally.
    • A separate user-authorized new one-shot check of the same RC4 Windows native Claude path used marker RC4-T120-RECHECK-win-native-claude-239f6095. A dry-run uniquely resolved the new claude-cmd PID 23824, the request was sent once with no retry, and the user supplied a separate exact TUI ACK line. This validates the path, not the original T120 message.
    • The user explicitly accepts the one missing original T120 ACK as an operational exception caused by the TUI exit, with the new path check as supporting evidence for test: RC4 five-host Relay stability and real-ACK validation #164/release evaluation. This is not evidence of a session-peer defect, nor proof that the original message was consumed. T0/T120 screenshots and T240/recheck user text are preserved with hashes in the coordinator's restricted rc4-rerun-02 evidence folder.
    • bug: public Relay intermittently loses authenticated routes during RC2 multi-host validation #161's CF-to-KR stall location/root cause remains unproven. Stable v1.0.0 is not published or authorized by this comment; documentation, version/release PR, issue/milestone, main CI, artifact, and final publish gates remain.

    Please keep these distinctions in any #164 closure or v1.0.0 release notes.

  6. abruption commented on Sep 24, 2026

    @abruption
    OwnerAuthor

    Final rc4-rerun-02 evidence: uninterrupted complete at 14,436.65 s; public health 241/241, probes 147/147, submissions 21/21, planned T120 restart recovery 3.182 s, operationalPass=true and failures=[]. Exact ACKs were 20/21, not 21/21: original T120 Windows native Claude ACK is unconfirmed because its TUI closed. A separate new one-shot same-path check returned an exact ACK and the user explicitly accepted the operational exception in the prior comment; it does not replace the original T120 result. The stable release notes preserve this limit. Closing the bounded five-host campaign gate, not claiming #161 root cause solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions