[J96] Restore green Rust test row on dev #307

Closed
opened 2026-11-02 07:26:00 +00:00 by kayg · 26 comments
Owner

J96 urgent integration fix: scripts/verify fast has Rust test failures on dev after the merge at b0e79b31e.

Plan

  1. Reproduce hostname_migration_upgrades_release6…, enrollment_http_is_bound_single_use…, and already_added_breakit on the unmodified origin/dev, keeping the full output for each.
  2. Bisect today's merge commits for each failure and record the first introducing merge with evidence.
  3. Fix the root cause. Update assertions only where they encode the pre-#291 unbound invitation behavior; retain host-key binding and single-use security assertions.
  4. Run scripts/verify fast on a VM and attach the verbatim result to the finish comment.

Estimate: 4 hours, including reproductions, bisect, fix, and final gate.

J96 urgent integration fix: `scripts/verify fast` has Rust test failures on `dev` after the merge at `b0e79b31e`. ## Plan 1. Reproduce `hostname_migration_upgrades_release6…`, `enrollment_http_is_bound_single_use…`, and `already_added_breakit` on the unmodified `origin/dev`, keeping the full output for each. 2. Bisect today's merge commits for each failure and record the first introducing merge with evidence. 3. Fix the root cause. Update assertions only where they encode the pre-#291 unbound invitation behavior; retain host-key binding and single-use security assertions. 4. Run `scripts/verify fast` on a VM and attach the verbatim result to the finish comment. Estimate: 4 hours, including reproductions, bisect, fix, and final gate.
Author
Owner

Started J96. Branch: fix-dev-red. Base: origin/dev at be20430b2e0dc4f591aa98a036f1066cf5dd5f55 (merge docs-human-j91, #302). I am reproducing before changing code. The plan and 4-hour estimate are in the issue body.

Started J96. Branch: `fix-dev-red`. Base: `origin/dev` at `be20430b2e0dc4f591aa98a036f1066cf5dd5f55` (merge docs-human-j91, #302). I am reproducing before changing code. The plan and 4-hour estimate are in the issue body.
Author
Owner

Finding: on unmodified origin/dev at be20430b2e0dc4f591aa98a036f1066cf5dd5f55, the three filtered reproductions all passed individually (exit 0): migration, bound enrollment, and the already_added_breakit module. Full command logs are saved under /home/claude/.cache/codex-scratch/j96/repro/ on compute01. I am now running the full Rust workspace test row to check for order or parallelism interaction.

Finding: on unmodified `origin/dev` at `be20430b2e0dc4f591aa98a036f1066cf5dd5f55`, the three filtered reproductions all passed individually (exit 0): migration, bound enrollment, and the `already_added_breakit` module. Full command logs are saved under `/home/claude/.cache/codex-scratch/j96/repro/` on compute01. I am now running the full Rust workspace test row to check for order or parallelism interaction.
Author
Owner

Finding: the full cargo test --workspace --locked --jobs 4 row on unmodified be20430b2e0dc4f591aa98a036f1066cf5dd5f55 exited 101. The requested three tests did not fail in the workspace run; instead, infraternal-plugin-release failed latest::tests::startup_reclaims_only_owned_inactive_private_metadata at latest_tests.rs:41 and latest::tests::cancellation_joins_verification at latest_tests.rs:155, both Option::unwrap() on None. The complete row log is saved at /home/claude/.cache/codex-scratch/j96/repro/cargo-test-workspace.log on compute01. I am checking those tests and the named cases at b0e79b31e.

Finding: the full `cargo test --workspace --locked --jobs 4` row on unmodified `be20430b2e0dc4f591aa98a036f1066cf5dd5f55` exited 101. The requested three tests did not fail in the workspace run; instead, `infraternal-plugin-release` failed `latest::tests::startup_reclaims_only_owned_inactive_private_metadata` at `latest_tests.rs:41` and `latest::tests::cancellation_joins_verification` at `latest_tests.rs:155`, both `Option::unwrap()` on `None`. The complete row log is saved at `/home/claude/.cache/codex-scratch/j96/repro/cargo-test-workspace.log` on compute01. I am checking those tests and the named cases at `b0e79b31e`.
Author
Owner

Correction to the prior finding: scripts/verify exports CARGO_TARGET_DIR, while my direct workspace command did not. The two plugin-release failures were therefore invalid reproduction artifacts from the missing gate environment; I will not treat them as dev failures.

Correction to the prior finding: `scripts/verify` exports `CARGO_TARGET_DIR`, while my direct workspace command did not. The two plugin-release failures were therefore invalid reproduction artifacts from the missing gate environment; I will not treat them as dev failures.
Author
Owner

Correction to the first reproduction note: filtering only -p infraternal-server built zero of the three requested cases (running 0 tests, 467 filtered). The remote tests are feature-unified through the workspace, so these are not passing reproductions. I am rerunning the filters with cargo test --workspace and the CARGO_TARGET_DIR set by scripts/verify.

Correction to the first reproduction note: filtering only `-p infraternal-server` built zero of the three requested cases (`running 0 tests`, 467 filtered). The remote tests are feature-unified through the workspace, so these are not passing reproductions. I am rerunning the filters with `cargo test --workspace` and the `CARGO_TARGET_DIR` set by `scripts/verify`.
Author
Owner

Reproduced all three on untouched origin/dev at be20430b2e0dc4f591aa98a036f1066cf5dd5f55, using workspace feature unification and the CARGO_TARGET_DIR that scripts/verify exports. Complete command outputs are saved under /home/claude/.cache/codex-scratch/j96/repro-workspace/ on compute01.

hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums:

running 1 test
thread 'enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums' panicked at crates/infraternal-server/src/remote_migration_tests.rs:266:5:
assertion `left == right` failed
  left: 33
 right: 32
test enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums ... FAILED
failures:
    enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 763 filtered out; finished in 0.10s
error: test failed, to rerun pass `-p infraternal-server --lib`

enrollment_http_is_bound_single_use_and_preserves_token_while_locked:

running 1 test
thread 'remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked' panicked at crates/infraternal-server/src/remote_http_tests.rs:182:5:
assertion `left == right` failed
  left: 400
 right: 403
test remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked ... FAILED
failures:
    remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 763 filtered out; finished in 0.12s
error: test failed, to rerun pass `-p infraternal-server --lib`

already_added_breakit:

running 3 tests
test bootstrap_runtime::remote_backend::tests::already_added_breakit::a_revoked_host_never_names_its_id ... ok
test bootstrap_runtime::remote_backend::tests::already_added_breakit::a_non_owner_session_never_learns_the_owners_host_id ... ok
thread 'bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match' panicked at crates/infraternal-server/src/bootstrap_already_added_breakit_tests.rs:109:5:
Some(Failure { kind: Install, message: "The matching static infraternal binary is unavailable.", log_tail: [], failed_step: Some(Upload), exit_status: None, already_added: false, missing_binary: None, fingerprints: [], host_key_type: None, host_key_changed: false, choose_method: false, ids: None })
test bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match ... FAILED
failures:
    bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match
test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 761 filtered out; finished in 0.18s
error: test failed, to rerun pass `-p infraternal-server --lib`
Reproduced all three on untouched `origin/dev` at `be20430b2e0dc4f591aa98a036f1066cf5dd5f55`, using workspace feature unification and the `CARGO_TARGET_DIR` that `scripts/verify` exports. Complete command outputs are saved under `/home/claude/.cache/codex-scratch/j96/repro-workspace/` on compute01. `hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums`: ```text running 1 test thread 'enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums' panicked at crates/infraternal-server/src/remote_migration_tests.rs:266:5: assertion `left == right` failed left: 33 right: 32 test enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums ... FAILED failures: enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 763 filtered out; finished in 0.10s error: test failed, to rerun pass `-p infraternal-server --lib` ``` `enrollment_http_is_bound_single_use_and_preserves_token_while_locked`: ```text running 1 test thread 'remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked' panicked at crates/infraternal-server/src/remote_http_tests.rs:182:5: assertion `left == right` failed left: 400 right: 403 test remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked ... FAILED failures: remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 763 filtered out; finished in 0.12s error: test failed, to rerun pass `-p infraternal-server --lib` ``` `already_added_breakit`: ```text running 3 tests test bootstrap_runtime::remote_backend::tests::already_added_breakit::a_revoked_host_never_names_its_id ... ok test bootstrap_runtime::remote_backend::tests::already_added_breakit::a_non_owner_session_never_learns_the_owners_host_id ... ok thread 'bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match' panicked at crates/infraternal-server/src/bootstrap_already_added_breakit_tests.rs:109:5: Some(Failure { kind: Install, message: "The matching static infraternal binary is unavailable.", log_tail: [], failed_step: Some(Upload), exit_status: None, already_added: false, missing_binary: None, fingerprints: [], host_key_type: None, host_key_changed: false, choose_method: false, ids: None }) test bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match ... FAILED failures: bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 761 filtered out; finished in 0.18s error: test failed, to rerun pass `-p infraternal-server --lib` ```
Author
Owner

Bisect result: all three cases pass at 2b351d5f3bb1aebed97b70e8d4460e8979a9c19e, the parent of #291, and fail at b0e79b31e3d0f3dc89ae3ca67b466d929c6d03ba (#291). The latest docs merges preserve the same failures.

Causes:

  • The #291 migration adds 0033_remote_join_key_binding.sql, but the release6 upgrade test still asserts 32 applied migrations. The adjacent fresh-schema migration test was updated to 33 in the same merge; this assertion was missed.
  • #291 changed the test to require expected_key_digest, but its second invitation attempt still omits it. It returns 400 BAD_REQUEST during request validation, before the single-use rejection (403). I will make that attempt bound to the same expected host key and retain the 403 assertion; the earlier unbound request must continue to return 400.
  • #291 moved SSH key preparation ahead of RemoteBackend's existing-host lookup. The break-it case now tries to stage the static binary before reaching the duplicate check. I will move the lookup before staging while keeping the pending-attempt reservation and its concurrency protection.

Parent and #291 full filtered outputs are saved under /home/claude/.cache/codex-scratch/j96/bisect/ on compute01.

Bisect result: all three cases pass at `2b351d5f3bb1aebed97b70e8d4460e8979a9c19e`, the parent of #291, and fail at `b0e79b31e3d0f3dc89ae3ca67b466d929c6d03ba` (#291). The latest docs merges preserve the same failures. Causes: - The #291 migration adds `0033_remote_join_key_binding.sql`, but the release6 upgrade test still asserts 32 applied migrations. The adjacent fresh-schema migration test was updated to 33 in the same merge; this assertion was missed. - #291 changed the test to require `expected_key_digest`, but its second invitation attempt still omits it. It returns `400 BAD_REQUEST` during request validation, before the single-use rejection (`403`). I will make that attempt bound to the same expected host key and retain the `403` assertion; the earlier unbound request must continue to return `400`. - #291 moved SSH key preparation ahead of `RemoteBackend`'s existing-host lookup. The break-it case now tries to stage the static binary before reaching the duplicate check. I will move the lookup before staging while keeping the pending-attempt reservation and its concurrency protection. Parent and #291 full filtered outputs are saved under `/home/claude/.cache/codex-scratch/j96/bisect/` on compute01.
Author
Owner

J96 update based on J95 evidence: J95 reports the infraternal-server lib suite fails eight tests on unmodified b0e79b31e, with an earlier run failing a different subset. I will compare a clean checkout at current origin/dev 313d0dd633 twice: once with the VM quiet and once under load, saving complete logs and listing every failed test by name. I will classify repeatable failures separately from load-sensitive cases, follow #299's test-isolation/resource approach where applicable, preserve security assertions, then run the full verify fast gate.

Plan and added estimate: pin clean origin/dev at 313d0dd; run the full infraternal-server lib suite quiet and under load; compare failure names and causes; apply only evidence-backed fixes; run verify fast; commit and push fix-dev-red. Additional estimate: 2 hours. The local fix-dev-red patch is currently based on be20430 and will be advanced to 313d0dd before final verification.

J96 update based on J95 evidence: J95 reports the infraternal-server lib suite fails eight tests on unmodified b0e79b31e, with an earlier run failing a different subset. I will compare a clean checkout at current origin/dev 313d0dd6332968e907f63d8117ef699bf70904a8 twice: once with the VM quiet and once under load, saving complete logs and listing every failed test by name. I will classify repeatable failures separately from load-sensitive cases, follow #299's test-isolation/resource approach where applicable, preserve security assertions, then run the full verify fast gate. Plan and added estimate: pin clean origin/dev at 313d0dd; run the full infraternal-server lib suite quiet and under load; compare failure names and causes; apply only evidence-backed fixes; run verify fast; commit and push fix-dev-red. Additional estimate: 2 hours. The local fix-dev-red patch is currently based on be20430 and will be advanced to 313d0dd before final verification.
Author
Owner

J96 loaded baseline result (clean origin/dev 313d0dd633; command: cargo test --locked --jobs 4 -p infraternal-server --features remote --lib). At launch compute01 was at load average 14.18/15.23/14.77, with three other build slots occupied. The suite ran 414.60 seconds and failed 10 tests:

  • bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match
  • bootstrap_runtime::remote_backend::tests::breakit2_concurrent_same_destination_issues_only_one_invitation
  • bootstrap_runtime::remote_backend::tests::cancelled_invitation_after_commit_retires_its_host_record
  • bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload
  • bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host
  • bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate
  • bootstrap_runtime::remote_backend::tests::retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout
  • bootstrap_runtime::remote_backend::tests::review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention
  • enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums
  • remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked

Full output is at /home/claude/.cache/codex-scratch/j96/baseline-load.log on compute01 (698 passed, 10 failed, 56 ignored). The quiet clean-origin run is next; I will use it to classify the reproducible migration/enrollment/duplicate regressions separately from load-sensitive cases.

J96 loaded baseline result (clean origin/dev 313d0dd6332968e907f63d8117ef699bf70904a8; command: cargo test --locked --jobs 4 -p infraternal-server --features remote --lib). At launch compute01 was at load average 14.18/15.23/14.77, with three other build slots occupied. The suite ran 414.60 seconds and failed 10 tests: - bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match - bootstrap_runtime::remote_backend::tests::breakit2_concurrent_same_destination_issues_only_one_invitation - bootstrap_runtime::remote_backend::tests::cancelled_invitation_after_commit_retires_its_host_record - bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload - bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host - bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate - bootstrap_runtime::remote_backend::tests::retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout - bootstrap_runtime::remote_backend::tests::review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention - enrollment::migration_tests::hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums - remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked Full output is at /home/claude/.cache/codex-scratch/j96/baseline-load.log on compute01 (698 passed, 10 failed, 56 ignored). The quiet clean-origin run is next; I will use it to classify the reproducible migration/enrollment/duplicate regressions separately from load-sensitive cases.
Author
Owner

J96 plain default-feature server lib run under load finished on clean origin/dev 313d0dd633 with:
cargo test --locked --jobs 4 -p infraternal-server --lib
Start conditions on compute01: load average 3.95/11.64/15.86; two other build slots occupied. Result: 439 passed, 2 failed, 26 ignored, 252.61s. Failures:

  • auth::tests::socket_tests::review_subscription_refusal::oversized_refusal_cannot_reinstall_a_queued_mesh_subscription
  • auth::tests::socket_tests::review_subscription_refusal::review_oversized_replacement_ends_the_previous_mesh_subscription
    Both expected {"error":"mesh unavailable","type":"error"} but received {"error":"plugin unavailable","type":"error"}. Full log: /home/claude/.cache/codex-scratch/j96/baseline-default-load.log on compute01. This matches two of J95's reported eight; quiet baseline is still required.
J96 plain default-feature server lib run under load finished on clean origin/dev 313d0dd6332968e907f63d8117ef699bf70904a8 with: cargo test --locked --jobs 4 -p infraternal-server --lib Start conditions on compute01: load average 3.95/11.64/15.86; two other build slots occupied. Result: 439 passed, 2 failed, 26 ignored, 252.61s. Failures: - auth::tests::socket_tests::review_subscription_refusal::oversized_refusal_cannot_reinstall_a_queued_mesh_subscription - auth::tests::socket_tests::review_subscription_refusal::review_oversized_replacement_ends_the_previous_mesh_subscription Both expected {"error":"mesh unavailable","type":"error"} but received {"error":"plugin unavailable","type":"error"}. Full log: /home/claude/.cache/codex-scratch/j96/baseline-default-load.log on compute01. This matches two of J95's reported eight; quiet baseline is still required.
Author
Owner

Finding and current hypothesis for the failure classes (quiet comparison pending):

  • The default-feature run's two subscription failures returned the production generic plugin unavailable response for an oversized filter. The topic is intentionally opaque; the runtime has both Mesh and Canvas topic providers, so it cannot safely name Mesh. The test only selected the generic response for remote, overlooking the default Canvas provider. I changed its expectation to retain the generic response when provider identity is ambiguous, while keeping the specific Mesh response for the valid saturated request.
  • Several remote-feature bootstrap failures occur before invitation publication because the server-test Sniff fixture still uses a deliberately missing payload path and rejects every non-check command. #291 now hashes/reuses a staged payload and obtains the key digest before publishing the bound invitation. I updated the fixture to supply a local manifest payload, acknowledge cache reuse, return a canonical test digest, and keep refusing the later install upload so the same cleanup assertions still run.
  • The remaining deterministic known causes are unchanged: migration #291 added migration 0033; the HTTP single-use retry still omitted its expected key digest; and the existing-host/locked-issuer checks must happen before payload staging.
    There are no server or SSH source changes between b0e79b31e and current origin/dev 313d0dd; the remote-feature suite's extra bootstrap failures therefore come from #291's order change and test fixture assumptions, pending the quiet baseline and patched verification.
Finding and current hypothesis for the failure classes (quiet comparison pending): - The default-feature run's two subscription failures returned the production generic `plugin unavailable` response for an oversized filter. The topic is intentionally opaque; the runtime has both Mesh and Canvas topic providers, so it cannot safely name Mesh. The test only selected the generic response for `remote`, overlooking the default Canvas provider. I changed its expectation to retain the generic response when provider identity is ambiguous, while keeping the specific Mesh response for the valid saturated request. - Several remote-feature bootstrap failures occur before invitation publication because the server-test `Sniff` fixture still uses a deliberately missing payload path and rejects every non-check command. #291 now hashes/reuses a staged payload and obtains the key digest before publishing the bound invitation. I updated the fixture to supply a local manifest payload, acknowledge cache reuse, return a canonical test digest, and keep refusing the later install upload so the same cleanup assertions still run. - The remaining deterministic known causes are unchanged: migration #291 added migration 0033; the HTTP single-use retry still omitted its expected key digest; and the existing-host/locked-issuer checks must happen before payload staging. There are no server or SSH source changes between b0e79b31e and current origin/dev 313d0dd; the remote-feature suite's extra bootstrap failures therefore come from #291's order change and test fixture assumptions, pending the quiet baseline and patched verification.
Author
Owner

Finding: the additional eight-test J95 report used a different test environment from the gate. Its third.sh runs nix develop -c cargo test --locked -p infraternal-server --lib without setting CARGO_TARGET_DIR; scripts/verify exports that variable, and the four review_revocation_r2 tests plus signed_identity_and_exact_bytes_are_required unwrap it directly. The release startup fixture also falls back to a relative target path. So those results do not establish a load-only dev failure. The two subscription-refusal tests are real under the gate environment and expect a Mesh-specific error where the dispatcher correctly returns the opaque generic error when multiple providers are present.

The unmodified current 313d0dd6332968e907f63d8117ef699bf70904a8 default-feature suite ran with the gate target environment under shared VM load. It produced 439 passed, 2 failed, 26 ignored. The only failures were:

  • auth::tests::socket_tests::review_subscription_refusal::oversized_refusal_cannot_reinstall_a_queued_mesh_subscription
  • auth::tests::socket_tests::review_subscription_refusal::review_oversized_replacement_ends_the_previous_mesh_subscription
    Full log: /home/claude/.cache/codex-scratch/j96/baseline-default-loaded2.log. A quieter default-feature run is still required.

The correctly configured J95 gate log also records actual elapsed-time failures: cancelled_commit_waiter_still_commits_and_wakes_both_account_sources exceeded its 2-second event wait, while three bootstrap cleanup tests timed out waiting for invitation completion. The latter are additionally explained by the old SSH fixture rejecting #291's pre-invitation payload/key preparation, so it never sent the test's commit notification. I have replaced the account test's timer with its single-connection database completion barrier, updated the SSH fixture to model key preparation while retaining its later upload refusal, and changed bootstrap waits to observe terminal events or persisted retirement state. No product deadlines or security assertions were relaxed.

Finding: the additional eight-test J95 report used a different test environment from the gate. Its `third.sh` runs `nix develop -c cargo test --locked -p infraternal-server --lib` without setting `CARGO_TARGET_DIR`; `scripts/verify` exports that variable, and the four `review_revocation_r2` tests plus `signed_identity_and_exact_bytes_are_required` unwrap it directly. The release startup fixture also falls back to a relative `target` path. So those results do not establish a load-only dev failure. The two subscription-refusal tests are real under the gate environment and expect a Mesh-specific error where the dispatcher correctly returns the opaque generic error when multiple providers are present. The unmodified current `313d0dd6332968e907f63d8117ef699bf70904a8` default-feature suite ran with the gate target environment under shared VM load. It produced 439 passed, 2 failed, 26 ignored. The only failures were: - `auth::tests::socket_tests::review_subscription_refusal::oversized_refusal_cannot_reinstall_a_queued_mesh_subscription` - `auth::tests::socket_tests::review_subscription_refusal::review_oversized_replacement_ends_the_previous_mesh_subscription` Full log: `/home/claude/.cache/codex-scratch/j96/baseline-default-loaded2.log`. A quieter default-feature run is still required. The correctly configured J95 gate log also records actual elapsed-time failures: `cancelled_commit_waiter_still_commits_and_wakes_both_account_sources` exceeded its 2-second event wait, while three bootstrap cleanup tests timed out waiting for invitation completion. The latter are additionally explained by the old SSH fixture rejecting #291's pre-invitation payload/key preparation, so it never sent the test's commit notification. I have replaced the account test's timer with its single-connection database completion barrier, updated the SSH fixture to model key preparation while retaining its later upload refusal, and changed bootstrap waits to observe terminal events or persisted retirement state. No product deadlines or security assertions were relaxed.
Author
Owner

Finding: the full remote-feature infraternal-server lib suite on unmodified current origin/dev 16bf736c7c exited 101 under shared load. Command: CARGO_TARGET_DIR=$PWD/target cargo test --locked --jobs 4 -p infraternal-server --features remote --lib, through build-slot and nix develop. Start load average was 5.20/3.93/5.06. Result: 710 passed, 9 failed, 56 ignored in 217.56s. Full output: /home/claude/.cache/codex-scratch/j96/baseline-current-loaded.log on dev02.

Failures:

  • bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match
  • bootstrap_runtime::remote_backend::tests::breakit2_concurrent_same_destination_issues_only_one_invitation
  • bootstrap_runtime::remote_backend::tests::cancelled_invitation_after_commit_retires_its_host_record
  • bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload
  • bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host
  • bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate
  • bootstrap_runtime::remote_backend::tests::retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout
  • bootstrap_runtime::remote_backend::tests::review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention
  • remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked

The release-6 migration test passed at this tip, unlike the earlier 313d run. Quiet comparison is next.

Finding: the full remote-feature infraternal-server lib suite on unmodified current origin/dev 16bf736c7cc6b474474d6b148077b516b0893cf1 exited 101 under shared load. Command: CARGO_TARGET_DIR=$PWD/target cargo test --locked --jobs 4 -p infraternal-server --features remote --lib, through build-slot and nix develop. Start load average was 5.20/3.93/5.06. Result: 710 passed, 9 failed, 56 ignored in 217.56s. Full output: /home/claude/.cache/codex-scratch/j96/baseline-current-loaded.log on dev02. Failures: - bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match - bootstrap_runtime::remote_backend::tests::breakit2_concurrent_same_destination_issues_only_one_invitation - bootstrap_runtime::remote_backend::tests::cancelled_invitation_after_commit_retires_its_host_record - bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload - bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host - bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate - bootstrap_runtime::remote_backend::tests::retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout - bootstrap_runtime::remote_backend::tests::review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention - remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked The release-6 migration test passed at this tip, unlike the earlier 313d run. Quiet comparison is next.
Author
Owner

Finding: the quiet comparison on unmodified current origin/dev 16bf736c7c also exited 101: 710 passed, 9 failed, 56 ignored in 313.78s, with 2.61/2.49/3.06 load at launch. The complete output is /home/claude/.cache/codex-scratch/j96/baseline-current-quiet.log on compute01. It had the same nine failure names as the loaded run. Both logs report 775 tests. The release-6 migration test passes on 16bf736; the previous 313d0dd run's migration count failure therefore no longer reproduces after the subsequent migration merge. These two runs show the nine listed failures are not limited to the observed moderate load; the earlier 313d0dd migration failure is a stale-count regression already corrected upstream. I will classify any remaining timeout behavior from its fixture and source evidence before fixing.

Finding: the quiet comparison on unmodified current origin/dev 16bf736c7cc6b474474d6b148077b516b0893cf1 also exited 101: 710 passed, 9 failed, 56 ignored in 313.78s, with 2.61/2.49/3.06 load at launch. The complete output is /home/claude/.cache/codex-scratch/j96/baseline-current-quiet.log on compute01. It had the same nine failure names as the loaded run. Both logs report 775 tests. The release-6 migration test passes on 16bf736; the previous 313d0dd run's migration count failure therefore no longer reproduces after the subsequent migration merge. These two runs show the nine listed failures are not limited to the observed moderate load; the earlier 313d0dd migration failure is a stale-count regression already corrected upstream. I will classify any remaining timeout behavior from its fixture and source evidence before fixing.
Author
Owner

Continuation from the handoff: the full remote-feature lib suite has now been run on unmodified 16bf736 both quiet and loaded; both runs failed the same nine named tests (710 passed, 9 failed, 56 ignored). Queues and disk are checked on both VMs: compute01 has free slots but only 12 GB free; dev02 has 27 GB free and all three slots occupied with three queued jobs. Next: fix the current compile blockers, run focused regressions through build-slot when a slot opens, then run the full verify fast gate on the VM with capacity. Estimate remaining: 90 minutes. Current worktree is fix-dev-red at 16bf736.

Continuation from the handoff: the full remote-feature lib suite has now been run on unmodified 16bf736 both quiet and loaded; both runs failed the same nine named tests (710 passed, 9 failed, 56 ignored). Queues and disk are checked on both VMs: compute01 has free slots but only 12 GB free; dev02 has 27 GB free and all three slots occupied with three queued jobs. Next: fix the current compile blockers, run focused regressions through build-slot when a slot opens, then run the full verify fast gate on the VM with capacity. Estimate remaining: 90 minutes. Current worktree is fix-dev-red at 16bf736.
Author
Owner

J96 finding and regression result:

On unmodified origin/dev 16bf736c7c, both full remote-feature infraternal-server lib runs failed the same nine tests (710 passed, 9 failed, 56 ignored). The quiet run was on compute01 at launch load 2.61/2.49/3.06; the loaded run was on dev02 at 5.20/3.93/5.06. Full logs: /home/claude/.cache/codex-scratch/j96/baseline-current-quiet.log and baseline-current-loaded.log.

Failures in both runs:

  • bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match
  • bootstrap_runtime::remote_backend::tests::breakit2_concurrent_same_destination_issues_only_one_invitation
  • bootstrap_runtime::remote_backend::tests::cancelled_invitation_after_commit_retires_its_host_record
  • bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload
  • bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host
  • bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate
  • bootstrap_runtime::remote_backend::tests::retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout
  • bootstrap_runtime::remote_backend::tests::review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention
  • remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked

Root causes: #291 prepares the key and stages a cached agent payload before publishing its key-bound invitation. The old fixture failed before modeling that preparation, so duplicate/cold-issuer checks and invitation cleanup tests never reached their intended assertions. I added the existing-host/cold-issuer preflight before staging and retained the durable duplicate check after reservation for races; the fixture now models cache reuse/key digest. The original post-publication upload cleanup test is retained, with a separate pre-publication key-upload failure test. The HTTP replay retry now carries the same expected key digest; the unbound request still expects 400 and the bound replay still expects 403. No key-binding or single-use assertion was relaxed.

The earlier 313d migration count failure (expected 32, actual 33) is corrected on current 16bf dev and passes there; no local change was needed. J95's short elapsed-time failures are handled by waiting for commit and persisted retirement conditions as in #299; the 60-second value is only a hang bound, with no product deadline change. The two default-feature oversized-subscription failures were a deterministic test expectation mismatch: the dispatcher returns the existing generic opaque refusal when multiple providers can match, so the assertion now preserves that response.

Patched full command cargo test --locked --jobs 4 -p infraternal-server --features remote --lib completed on compute01: 720 passed, 0 failed, 56 ignored in 460.12s. Full log: /home/claude/.cache/codex-scratch/j96/patched-remote.log. Next is the full scripts/verify fast gate.

J96 finding and regression result: On unmodified `origin/dev` 16bf736c7cc6b474474d6b148077b516b0893cf1, both full remote-feature `infraternal-server` lib runs failed the same nine tests (710 passed, 9 failed, 56 ignored). The quiet run was on compute01 at launch load 2.61/2.49/3.06; the loaded run was on dev02 at 5.20/3.93/5.06. Full logs: `/home/claude/.cache/codex-scratch/j96/baseline-current-quiet.log` and `baseline-current-loaded.log`. Failures in both runs: - `bootstrap_runtime::remote_backend::tests::already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match` - `bootstrap_runtime::remote_backend::tests::breakit2_concurrent_same_destination_issues_only_one_invitation` - `bootstrap_runtime::remote_backend::tests::cancelled_invitation_after_commit_retires_its_host_record` - `bootstrap_runtime::remote_backend::tests::cold_ca_refuses_before_invitation_or_upload` - `bootstrap_runtime::remote_backend::tests::failed_upload_retires_only_the_new_host` - `bootstrap_runtime::remote_backend::tests::readding_a_live_host_reports_already_added_before_issuing_a_certificate` - `bootstrap_runtime::remote_backend::tests::retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout` - `bootstrap_runtime::remote_backend::tests::review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention` - `remote_http::tests::enrollment_http_is_bound_single_use_and_preserves_token_while_locked` Root causes: #291 prepares the key and stages a cached agent payload before publishing its key-bound invitation. The old fixture failed before modeling that preparation, so duplicate/cold-issuer checks and invitation cleanup tests never reached their intended assertions. I added the existing-host/cold-issuer preflight before staging and retained the durable duplicate check after reservation for races; the fixture now models cache reuse/key digest. The original post-publication upload cleanup test is retained, with a separate pre-publication key-upload failure test. The HTTP replay retry now carries the same expected key digest; the unbound request still expects 400 and the bound replay still expects 403. No key-binding or single-use assertion was relaxed. The earlier 313d migration count failure (expected 32, actual 33) is corrected on current 16bf dev and passes there; no local change was needed. J95's short elapsed-time failures are handled by waiting for commit and persisted retirement conditions as in #299; the 60-second value is only a hang bound, with no product deadline change. The two default-feature oversized-subscription failures were a deterministic test expectation mismatch: the dispatcher returns the existing generic opaque refusal when multiple providers can match, so the assertion now preserves that response. Patched full command `cargo test --locked --jobs 4 -p infraternal-server --features remote --lib` completed on compute01: 720 passed, 0 failed, 56 ignored in 460.12s. Full log: `/home/claude/.cache/codex-scratch/j96/patched-remote.log`. Next is the full `scripts/verify fast` gate.
Author
Owner

Checkpoint: fix-dev-red is committed and pushed at f15a74866c. The patched full remote-feature server lib suite is green (720 passed, 0 failed, 56 ignored). I have checked out that exact clean head in the compute01 J96 worktree. Running the required full scripts/verify fast next; no gate result claimed yet.

Checkpoint: fix-dev-red is committed and pushed at f15a74866cf7f0f0e43a177ed2623d483a03e57c. The patched full remote-feature server lib suite is green (720 passed, 0 failed, 56 ignored). I have checked out that exact clean head in the compute01 J96 worktree. Running the required full `scripts/verify fast` next; no gate result claimed yet.
Author
Owner

Finding from the first scripts/verify fast on f15a74866c (dev02, complete log /home/claude/.cache/codex-scratch/j96/verify-fast.log): fmt, static builds, and the other reported rows passed. Clippy failed on bootstrap_remote.rs:1627 because the () result of Notify::notified() was matched as _. The workspace test row failed only infraternal::tests::agent_sessions::restart_discovery_keeps_a_live_shim_and_drops_clean_exit_and_sigkill: its clean-shell Frame::Exited wait hit the existing 10-second test timeout (agent_sessions.rs:267), while its process-exit pidfd wait for the later SIGKILL case passed. I will make the notification pattern explicit and replace the clean-exit elapsed-time assumption with process-exit readiness plus a test-only hang guard, following #299; no product deadline will change.

Finding from the first `scripts/verify fast` on f15a74866cf7f0f0e43a177ed2623d483a03e57c (dev02, complete log `/home/claude/.cache/codex-scratch/j96/verify-fast.log`): fmt, static builds, and the other reported rows passed. Clippy failed on `bootstrap_remote.rs:1627` because the `()` result of `Notify::notified()` was matched as `_`. The workspace test row failed only `infraternal::tests::agent_sessions::restart_discovery_keeps_a_live_shim_and_drops_clean_exit_and_sigkill`: its clean-shell `Frame::Exited` wait hit the existing 10-second test timeout (`agent_sessions.rs:267`), while its process-exit pidfd wait for the later SIGKILL case passed. I will make the notification pattern explicit and replace the clean-exit elapsed-time assumption with process-exit readiness plus a test-only hang guard, following #299; no product deadline will change.
Author
Owner

Follow-up result: the clean-exit test now opens the shim pidfd before sending exit, waits for its readiness, then reads the existing Frame::Exited assertion. The only elapsed bound is a 60-second test hang guard. No production timing or lifecycle behavior changed. The explicit () notification pattern fixes the clippy diagnostic.

On dev02, through build-slot, cargo fmt --all --check, cargo clippy --workspace --all-targets --locked -- -D warnings, and the formerly failing restart_discovery_keeps_a_live_shim_and_drops_clean_exit_and_sigkill test all passed. Log: /home/claude/.cache/codex-scratch/j96/focused-repair.log. I will push this follow-up and rerun the full gate on the new head.

Follow-up result: the clean-exit test now opens the shim pidfd before sending `exit`, waits for its readiness, then reads the existing `Frame::Exited` assertion. The only elapsed bound is a 60-second test hang guard. No production timing or lifecycle behavior changed. The explicit `()` notification pattern fixes the clippy diagnostic. On dev02, through build-slot, `cargo fmt --all --check`, `cargo clippy --workspace --all-targets --locked -- -D warnings`, and the formerly failing `restart_discovery_keeps_a_live_shim_and_drops_clean_exit_and_sigkill` test all passed. Log: `/home/claude/.cache/codex-scratch/j96/focused-repair.log`. I will push this follow-up and rerun the full gate on the new head.
Author
Owner

Checkpoint: pushed follow-up commit 502d0fc7e4 on fix-dev-red. The focused fmt, full workspace clippy, and clean-exit test are green. The final scripts/verify fast must run on this new head; I am checking both queues and disk before launching it.

Checkpoint: pushed follow-up commit 502d0fc7e4f08cb0a0f43a533979693dfa37c9f6 on `fix-dev-red`. The focused fmt, full workspace clippy, and clean-exit test are green. The final `scripts/verify fast` must run on this new head; I am checking both queues and disk before launching it.
Author
Owner

Finding from the second full gate on 502d0fc7e: the repaired clean-exit test now passes, and clippy/static builds pass. The workspace test row instead failed real_binary_keeps_background_backend_probe_off_the_control_path; its real-binary fixture released the blocked systemctl show-environment probe, then the first terminal.open received the existing structured resource_unavailable refusal. The handler maps any non-validation launch error to this code, so the gate trace alone does not establish whether systemd-run, shim readiness, or host resource pressure refused it. I am reproducing the exact integration-test order before changing anything; no production deadline or assertion is being relaxed.

Finding from the second full gate on 502d0fc7e: the repaired clean-exit test now passes, and clippy/static builds pass. The workspace test row instead failed `real_binary_keeps_background_backend_probe_off_the_control_path`; its real-binary fixture released the blocked `systemctl show-environment` probe, then the first `terminal.open` received the existing structured `resource_unavailable` refusal. The handler maps any non-validation launch error to this code, so the gate trace alone does not establish whether systemd-run, shim readiness, or host resource pressure refused it. I am reproducing the exact integration-test order before changing anything; no production deadline or assertion is being relaxed.
Author
Owner

The first repro attempt ran the complete agent_sessions binary followed by the exact lazy-manager test on dev02 under shared load; all four session tests and the lazy-manager test passed. This rules out a deterministic failure of the probe/release path in isolation. The gate ran all 11 agent_daemon integration tests concurrently and only the lazy-manager case received resource_unavailable, so concurrent real-binary/systemd fixture pressure is the current hypothesis. I am rerunning the full agent_daemon binary with its normal test threading before changing test scheduling.

The first repro attempt ran the complete `agent_sessions` binary followed by the exact lazy-manager test on dev02 under shared load; all four session tests and the lazy-manager test passed. This rules out a deterministic failure of the probe/release path in isolation. The gate ran all 11 `agent_daemon` integration tests concurrently and only the lazy-manager case received `resource_unavailable`, so concurrent real-binary/systemd fixture pressure is the current hypothesis. I am rerunning the full `agent_daemon` binary with its normal test threading before changing test scheduling.
Author
Owner

Load follow-up: the full agent_daemon integration suite then passed with normal Rust test threading on compute01 under shared VM load (11 passed, 0 failed, 33.54s); log /home/claude/.cache/codex-scratch/j96/agent-daemon-suite.log. Together with the successful agent_sessions → exact lazy-manager sequence on dev02, the isolated agent_daemon failure from one dev02 gate has not reproduced. No production deadline or test assertion was changed for it. I am rerunning verify fast on a current VM slot when available and will report any repeat by name.

Load follow-up: the full `agent_daemon` integration suite then passed with normal Rust test threading on compute01 under shared VM load (11 passed, 0 failed, 33.54s); log `/home/claude/.cache/codex-scratch/j96/agent-daemon-suite.log`. Together with the successful `agent_sessions` → exact lazy-manager sequence on dev02, the isolated agent_daemon failure from one dev02 gate has not reproduced. No production deadline or test assertion was changed for it. I am rerunning `verify fast` on a current VM slot when available and will report any repeat by name.
Author
Owner

J96 status: all nine failures from the quiet and loaded remote-feature server-lib runs on unmodified origin/dev 16bf736c7 are fixed and pushed on fix-dev-red at 502d0fc7e. The patched remote-feature server-lib suite passed: 720 passed, 0 failed, 56 ignored. No key-binding or single-use assertion was weakened.

Causes:

  • already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match, cold_ca_refuses_before_invitation_or_upload, readding_a_live_host_reports_already_added_before_issuing_a_certificate: #291 moved key/payload preparation ahead of invitation publication, leaving duplicate/issuer checks too late. Checks now run before staging, with the durable duplicate check retained after reservation for races.
  • breakit2_concurrent_same_destination_issues_only_one_invitation, cancelled_invitation_after_commit_retires_its_host_record: the old SSH fixture stopped during #291 key preparation, before reservation/publication behavior could be tested. It now models cached payload reuse and the bound key digest.
  • failed_upload_retires_only_the_new_host: the fixture refused the new pre-invitation key upload instead of the intended post-invitation install upload. Those failure points now have separate coverage, preserving the cleanup assertion.
  • retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout, review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention: same pre-publication fixture mismatch plus short elapsed-time waits; the tests now wait for invitation commit and persisted retirement conditions, with a test-only hang bound.
  • remote_http::enrollment_http_is_bound_single_use_and_preserves_token_while_locked: the replay retry omitted expected_key_digest, so it failed validation with 400 before reaching the single-use check. It now uses the original digest; unbound requests still get 400 and same-key replay still gets 403.

The earlier hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums failure was a stale 32-versus-33 migration count at 313d0dd; it passes on current origin/dev 16bf736c7. I also fixed the two default-feature oversized-subscription tests: with multiple possible providers the dispatcher correctly returns the generic opaque refusal.

Remaining: final scripts/verify fast on 502d0fc7e. It is still running; the current phase is the aarch64 static build. ETA 30–60 minutes. The head is already pushed so it can be merged as a candidate while the gate finishes.

J96 status: all nine failures from the quiet and loaded remote-feature server-lib runs on unmodified `origin/dev` 16bf736c7 are fixed and pushed on `fix-dev-red` at `502d0fc7e`. The patched remote-feature server-lib suite passed: 720 passed, 0 failed, 56 ignored. No key-binding or single-use assertion was weakened. Causes: - `already_added_breakit::the_typed_address_decides_which_host_is_named_when_two_match`, `cold_ca_refuses_before_invitation_or_upload`, `readding_a_live_host_reports_already_added_before_issuing_a_certificate`: #291 moved key/payload preparation ahead of invitation publication, leaving duplicate/issuer checks too late. Checks now run before staging, with the durable duplicate check retained after reservation for races. - `breakit2_concurrent_same_destination_issues_only_one_invitation`, `cancelled_invitation_after_commit_retires_its_host_record`: the old SSH fixture stopped during #291 key preparation, before reservation/publication behavior could be tested. It now models cached payload reuse and the bound key digest. - `failed_upload_retires_only_the_new_host`: the fixture refused the new pre-invitation key upload instead of the intended post-invitation install upload. Those failure points now have separate coverage, preserving the cleanup assertion. - `retirement_contention::cancelled_invitation_retires_after_sqlite_busy_timeout`, `review_cleanup::review_cancelled_committed_invitation_survives_temporary_writer_contention`: same pre-publication fixture mismatch plus short elapsed-time waits; the tests now wait for invitation commit and persisted retirement conditions, with a test-only hang bound. - `remote_http::enrollment_http_is_bound_single_use_and_preserves_token_while_locked`: the replay retry omitted `expected_key_digest`, so it failed validation with 400 before reaching the single-use check. It now uses the original digest; unbound requests still get 400 and same-key replay still gets 403. The earlier `hostname_migration_upgrades_release6_copy_without_changing_canvas_or_checksums` failure was a stale 32-versus-33 migration count at 313d0dd; it passes on current origin/dev 16bf736c7. I also fixed the two default-feature oversized-subscription tests: with multiple possible providers the dispatcher correctly returns the generic opaque refusal. Remaining: final `scripts/verify fast` on `502d0fc7e`. It is still running; the current phase is the aarch64 static build. ETA 30–60 minutes. The head is already pushed so it can be merged as a candidate while the gate finishes.
Author
Owner

J96 final: the nine remote-feature server-lib regressions are fixed and pushed on fix-dev-red at 502d0fc7e4f08cb0a0f43a533979693dfa37c9f6. The full patched remote-feature server-lib suite passed (720 passed, 0 failed, 56 ignored). The complete scripts/verify fast run on this head exited 0.

J109's possible tenth failure does not reproduce on freshly fetched origin/dev 17d282a187611c85aca4058fac161268454c5b8d, tested on compute01 with:
cargo test --locked --package infraternal --test cli_envelope bare_infraternal_is_the_overview_and_points_to_help -- --exact --nocapture
Verbatim result:

running 1 test
test bare_infraternal_is_the_overview_and_points_to_help ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.02s
J96_TENTH_TEST_EXIT=0

Verbatim Rust gate summary from the final scripts/verify fast log:

(static builds: 1521s)

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| CLI plugin compile-out    | PASS         |
| clippy                    | PASS         |
| SSH runtime test helper   | PASS         |
| real-binary fixture paths | PASS         |
| test                      | PASS         |
| SSH inode reuse fixture   | PASS         |
| shim process-per-user     | PASS         |
| cargo-deny                | PASS         |
| gate architecture         | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+

Verbatim final TypeScript protocol test output:

 39 pass
 0 fail
 59970 expect() calls
Ran 39 tests across 10 files. [7.84s]
J96_VERIFY_FINAL2_EXIT=0
J96 final: the nine remote-feature server-lib regressions are fixed and pushed on `fix-dev-red` at `502d0fc7e4f08cb0a0f43a533979693dfa37c9f6`. The full patched remote-feature server-lib suite passed (720 passed, 0 failed, 56 ignored). The complete `scripts/verify fast` run on this head exited 0. J109's possible tenth failure does not reproduce on freshly fetched `origin/dev` `17d282a187611c85aca4058fac161268454c5b8d`, tested on compute01 with: `cargo test --locked --package infraternal --test cli_envelope bare_infraternal_is_the_overview_and_points_to_help -- --exact --nocapture` Verbatim result: ```text running 1 test test bare_infraternal_is_the_overview_and_points_to_help ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.02s J96_TENTH_TEST_EXIT=0 ``` Verbatim Rust gate summary from the final `scripts/verify fast` log: ```text (static builds: 1521s) +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | SSH runtime test helper | PASS | | real-binary fixture paths | PASS | | test | PASS | | SSH inode reuse fixture | PASS | | shim process-per-user | PASS | | cargo-deny | PASS | | gate architecture | PASS | | static builds | PASS | +---------------------------+--------------+ ``` Verbatim final TypeScript protocol test output: ```text 39 pass 0 fail 59970 expect() calls Ran 39 tests across 10 files. [7.84s] J96_VERIFY_FINAL2_EXIT=0 ```
Author
Owner

J210 owner-authorized housekeeping: closing this completed scope because its work is merged on dev in 294042b56. Verified the merge commit is an ancestor of current origin/dev. The implementation reports and evidence remain in this issue.

J210 owner-authorized housekeeping: closing this completed scope because its work is merged on dev in [294042b56](https://git.kayg.org/kayg/infraternal/commit/294042b56daac3d4ab2289508b7f8a6ddb0b24a4). Verified the merge commit is an ancestor of current origin/dev. The implementation reports and evidence remain in this issue.
kayg closed this issue 2026-11-04 17:04:45 +00:00
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#307
No description provided.