Repository navigation
T139 — The hostname proxy's failure cause prints once at activate and on the HOSTNAME PROXY row - #2968
Conversation
min session activate no longer prints a warning beside its names: line, which already carries the cause. min ls prints the daemon's cause on its HOSTNAME PROXY row on stdout, not on stderr (NET-020).
listener_failure_reported_with_remedy now asserts the row on stdout, no stderr line from min ls, and one cause at activate.
…me-proxy-s-failure-cause-prints-once-a
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
|
Reviewed: 1 finding, none blocking at Address the comments on the diff. Clobber: none seen. |
There was a problem hiding this comment.
arch-review: CONDITIONS · 2 conditions · the full ruling
The product change conforms to NET-020 and §7.1 line 254. The cause prints once at activate, on the names: line, and on the min ls HOSTNAME PROXY row. scripts/session-e2e.sh still matches the removed warning: text in eight places. Beat A now fails, and five gates never match, so a held :7654 passes as healthy. Make the edits in C1 and C2.
Outside the diff
scripts/session-e2e.sh:21742: C2 · This gate and the gates at 11296, 22224, 22757 and 26320 match the removed text. They never match now, so a held 127.0.0.1:7654 does not fail the run. MatchHOSTNAME PROXY: the hostname proxy is not servinghere.
Ruled at 5050901 against gominimal/arch@7a86ec7bb3c0 by claude-opus-5-5.
|
Round 1 of 10 on the runtime's review findings: the coder changed nothing. Revise round 1. The one review thread is judged invalid, so this round adds no commit. The three test lines pass at branch head 5050901. Review threads the coder judged:
|
|
/revise Round 2 has read Revising since 00:41Z with no commit, so this replaces it. Deliver arch C1 and C2 in |
…me-proxy-s-failure-cause-prints-once-a
Beat A of the NET-020 proof now reads the cause once on the activate names: line and on the min ls HOSTNAME PROXY row, with no stderr line from ls. The bind-taken gates and the recovery poll match the cause text instead of the removed stderr warning.
…me-proxy-s-failure-cause-prints-once-a
There was a problem hiding this comment.
minimal-review — approval withheld
Verdict COMMENT — APPROVE withheld: 2 unresolved threads — minimal-foundry[bot] crates/minimal/src/cmd/list.rs:1190, minimal-arch[bot] crates/minimal/src/cmd/list.rs:1000. No findings.
Panel: 3 of 3 personas ran (correctness, security, supply-chain).
There was a problem hiding this comment.
arch-review: PASS · the full ruling
The change conforms to §7.1 line 254 and to NET-020. Activate prints the hostname proxy's cause once, on its names: line, on every branch. min ls prints the cause on its HOSTNAME PROXY row, and --json keeps it in the document. The new commit updates the e2e checks to match the row and the names: line. I did not run the e2e, so the kvm lane is the proof of that leg.
Ruled at 862d2ca against gominimal/arch@7a86ec7bb3c0 by claude-opus-5-5.
|
Round 2 of 10 on a /revise note, pushed as
Verify Review threads the coder judged:
On a native Linux host whose hostname proxy port is held, Notes from the agent: Revise round 2: this round changed only scripts/session-e2e.sh (arch C1 and C2). C1: beat A now requires the cause on the activate |
|
/revise The |
Restores the check that reads recover_activate_err, which fixes SC2034.
…me-proxy-s-failure-cause-prints-once-a
There was a problem hiding this comment.
arch-review: PASS · the full ruling
This head conforms to §7.1 line 254 and NET-020. The compare adds one check to the e2e beat A. That check fails the proof when activate prints the old stderr warning beside its names: line. The check makes the proof stricter and changes no product code. The merge from main is clean and brings only #2985. The PASS on 862d2cae stands.
Ruled at 14296f9 against gominimal/arch@7a86ec7bb3c0 by claude-opus-5-5.
|
Round 3 of 10 on a /revise note, pushed as
Verify On a native Linux host whose hostname proxy port is held, Notes from the agent: Revise round 3: beat A in scripts/session-e2e.sh has a check again that reads recover_activate_err. The check fails when that stderr contains |
|
Round 4 of 10 on a failed check suite: the coder changed nothing. Revise round 4. I made no code change. The e2e failure ended with exit code 100. scripts/session-e2e.sh exits 1 through fail(), so it did not produce that code. The excerpt lines with ::error:: are echoed workflow script text (the port-reap and install-action steps), not errors that ran. Beat A, the only beat this diff changes, is skipped on the macOS VM lane ("beats A/B/D SKIPPED on this lane"). The other bind-taken gates match 'the hostname proxy is not serving', which the proxy-down line (resolver::proxy_down_line) also prints. So the failure does not trace to this diff. A re-run of the e2e lane is the next step. ci-macos-success is the lane aggregator and fails because e2e failed. The macOS e2e log itself was not available to me. Review threads the coder judged:
|
There was a problem hiding this comment.
Reviewed 14296f93 against T139's plan block. The cause now prints once on the names: line at activate and on the HOSTNAME PROXY row in min ls, and --json keeps the field. The e2e gates now match the new text, so a held port fails them again. --raw no longer prints the cause: the arch review noted that as allowed, because NET-020 names only the human row. Arch-review passes on this head.
|
/revise This PR conflicts with |
|
/revise The last round's push was refused because this PR was in the merge queue. It is out of the queue now. Merge |
…me-proxy-s-failure-cause-prints-once-a # Conflicts: # crates/minimal/src/tests.rs
There was a problem hiding this comment.
arch-review: PASS · the full ruling
The PASS on 14296f9 stands for this head. The compare is one merge of main. The merge resolution adds only one blank line in tests.rs. Main does not change the cause output in create.rs or list.rs. The e2e probes from main still match the cause on the stdout row. NET-020 conforms to §7.1 line 254.
Ruled at 5e51a4a against gominimal/arch@7a86ec7bb3c0 by claude-opus-5-5.
|
Round 6 of 10 on a /revise note, pushed as Resolved conflicts in:
Verify On a native Linux host whose hostname proxy port is held, Notes from the agent: This round merges origin/main only. The one conflict was in crates/minimal/src/tests.rs. Both sides were appended tests at the same point, so the resolution keeps the HEAD tests (NET-020 proxy row and activate) and the origin/main BoxCommandRun end-to-end test, each closed in its own fn. The merge commit brings in the other files from origin/main, and this round changes nothing else. cargo clippy -p minimal --all-targets passes. |
There was a problem hiding this comment.
Re-reviewed at 5e51a4ab, which merges main to resolve the conflict in crates/minimal/src/tests.rs. The PR's files are unchanged from the head I reviewed, and every lane and arch-review pass here.
T139 — The hostname proxy's failure cause prints once at activate and on the HOSTNAME PROXY row
slice: S23
kind: task
covers: NET-020
size: M
est: 60 code, 230 tests
executor: agent
difficulty: routine
model: standard
diagnostics: what a person reads is the cause, said once per surface:
min session activateprints it only on itsnames:line, and on a native daemonmin lsprintsHOSTNAME PROXY: the hostname proxy is not serving: <reason>. Minimal retries on its own. Runmin lsagain to check.on stdout and nothing on stderr, pinned by ls_native_routing_cause_on_proxy_rowobservability: the daemon's existing warn line for the failed bind still names the port and the cause, and the CLI's debug log records which surface printed the cause
layers:
- activate:
- crates/minimal/src/cmd/boxes/create.rs: drops the stderr warning at activate, since the
names:line already carries the cause in place of its resolution clause, so the cause prints oncetest: cargo nextest run -p minimal activate_prints_routing_cause_once
- lis 8000 t:
- crates/minimal/src/cmd/list.rs: on a native daemon whose reply carries the routing cause,
min lsprints it on the HOSTNAME PROXY row asHOSTNAME PROXY: the hostname proxy is not serving: <reason>. Minimal retries on its own. Runmin lsagain to check., and no longer on stderr;hostname_routing_warningandwarn_if_hostname_routing_downgo when nothing calls them- crates/minimal/src/tests.rs: pins the native row, the absence of a stderr line, and the one cause line at activate
test: cargo nextest run -p minimal ls_native_routing_cause_on_proxy_row
- cli:
- crates/minimal/tests/cli.rs:
listener_failure_reported_with_remedyasserts the cause on the HOSTNAME PROXY row and once at activatetest: cargo nextest run -p minimal listener_failure_reported_with_remedy
produces: none
consumes: none
proof: On a native Linux host whose hostname proxy port is held,
min session activatenames the cause once andmin lsnames it on its HOSTNAME PROXY row.Proof
On a native Linux host whose hostname proxy port is held,
min session activateprints the cause once, on itsnames:line, with no separate warning line.min lsprintsHOSTNAME PROXY: the hostname proxy is not serving: <reason>. Minimal retries on its own. Runmin lsagain to check.on stdout and nothing about it on stderr.Notes from the agent: hostname_routing_warning and warn_if_hostname_routing_down are removed. The new pure function hostname_routing_cause_row gives the row text. The row prints only when no proxy-down sibling from the status reply names a cause of its own, so each VM prints one cause. The multi-VM listing also lost its
VM <vm>: warning: ...stderr line, because it used the removed function. It now prints the same cause on that VM's HOSTNAME PROXY row, with the VM column. A tracing::debug! line at each surface records which surface printed the cause. In tests/cli.rs I also updated ls_warning_clears_on_recovery, because it asserted the old stderr warning. It passes (cargo nextest run -p minimal ls_warning_clears_on_recovery, exit 0). Follow-up outside the layers: scripts/session-e2e.sh still matches the old textwarning: the hostname proxy is not serving(lines near 11208, 11225, 11238, 11296, 21742, 22224, 22757, 26320). Those e2e checks need to match the HOSTNAME PROXY row on min ls stdout, or the names: line at activate. I did not change that script and did not run the e2e. cargo clippy -p minimal --all-targets is clean.Tests
cargo nextest run -p minimal activate_prints_routing_cause_oncecargo nextest run -p minimal ls_native_routing_cause_on_proxy_rowcargo nextest run -p minimal listener_failure_reported_with_remedyVerify
min task run agent-verifyexited 100 under rustc 1.99.0, which the repository does not pin (1.99.1 in rust-toolchain.toml); the PR is not a draft on that alone — CI, which honours the pin, is the gate.Base
The base branch moved while the coder worked; it was merged in before the tests ran.
Closes #2942