{"affected_source_comparison":[{"baseline_sha256":"87698ccd6f39a97ed32843612e551d104261b3df054769bd3c78e9af594db93c","identical":true,"path":"anvil_serving/connect/extend.py","worktree_sha256":"87698ccd6f39a97ed32843612e551d104261b3df054769bd3c78e9af594db93c"},{"baseline_sha256":"f7a0005b816266512a4a422e8b61b6faf8b3e8227c2e25fb0d00fe0ee2c4a072","identical":true,"path":"anvil_serving/connect/manage.py","worktree_sha256":"f7a0005b816266512a4a422e8b61b6faf8b3e8227c2e25fb0d00fe0ee2c4a072"},{"baseline_sha256":"fd5131a7c0981f91f01d43682fb13e62990b28196b3c87396a6a68db0e618035","identical":true,"path":"anvil_serving/control_plane/controller/propagation_active_identity.py","worktree_sha256":"fd5131a7c0981f91f01d43682fb13e62990b28196b3c87396a6a68db0e618035"},{"baseline_sha256":"3a11e21d137227a9140bd98c4bd956dd4098131156b012b7d43d03a508522b2e","identical":true,"path":"anvil_serving/controller_diagnostics.py","worktree_sha256":"3a11e21d137227a9140bd98c4bd956dd4098131156b012b7d43d03a508522b2e"},{"baseline_sha256":"f5861db30d201047eceafea6162ee8e354da9d7b990b0ccefc5dc358602ae4af","identical":true,"path":"anvil_serving/media/jobs.py","worktree_sha256":"f5861db30d201047eceafea6162ee8e354da9d7b990b0ccefc5dc358602ae4af"},{"baseline_sha256":"8562e5b9ba6e2b9fbfddde769d43f29ec153c1d46ce847f6442c035519d3be5a","identical":true,"path":"anvil_serving/media/worker.py","worktree_sha256":"8562e5b9ba6e2b9fbfddde769d43f29ec153c1d46ce847f6442c035519d3be5a"},{"baseline_sha256":"3b792731c144a7e94e890a44c34435012f093810bd3ff763bececb8ea5b2be96","identical":true,"path":"anvil_serving/propagation_native_acceptance.py","worktree_sha256":"3b792731c144a7e94e890a44c34435012f093810bd3ff763bececb8ea5b2be96"},{"baseline_sha256":"e6f32e4491fb5f7ced26c566f775d396d71488ce10dfa024753e6ad70dde8a0b","identical":true,"path":"anvil_serving/routed_eval.py","worktree_sha256":"e6f32e4491fb5f7ced26c566f775d396d71488ce10dfa024753e6ad70dde8a0b"},{"baseline_sha256":"9731cd77fe37010ba18aeb7a15184698c6958122ba4166bc0d119e8aff6f6594","identical":true,"path":"anvil_serving/workbench.py","worktree_sha256":"9731cd77fe37010ba18aeb7a15184698c6958122ba4166bc0d119e8aff6f6594"},{"baseline_sha256":"05ac2c2677c40fd721c434f66311e5525fc3dd3e44d21fd9ed330307d2c05b35","identical":true,"path":"anvil_serving/workbench_app/pi_web.py","worktree_sha256":"05ac2c2677c40fd721c434f66311e5525fc3dd3e44d21fd9ed330307d2c05b35"},{"baseline_sha256":"43be88e7904ec1c0aea48ceaa3fc9caa8515b79922879dee4d0a209ee0eeab63","identical":true,"path":"anvil_serving/workbench_app/project_files.py","worktree_sha256":"43be88e7904ec1c0aea48ceaa3fc9caa8515b79922879dee4d0a209ee0eeab63"},{"baseline_sha256":"8556f8a62d0840095140b5f13b34939c53cb9df040e92a8089a1a9f53627f835","identical":true,"path":"configs/runtime/ninfer-70434721-directio/verify-artifact.sh","worktree_sha256":"8556f8a62d0840095140b5f13b34939c53cb9df040e92a8089a1a9f53627f835"},{"baseline_sha256":"37628630ff73942c1426d091c22286d359ac5962233cf827f7df48eea9a2c37c","identical":true,"path":"connect/internal/admin/client.go","worktree_sha256":"37628630ff73942c1426d091c22286d359ac5962233cf827f7df48eea9a2c37c"},{"baseline_sha256":"7f631a6a46b36bae038635a9e503a9855c5a2c7de40b48766dc73d2d306ab99a","identical":true,"path":"connect/internal/ingresshttp/ingresshttp.go","worktree_sha256":"7f631a6a46b36bae038635a9e503a9855c5a2c7de40b48766dc73d2d306ab99a"},{"baseline_sha256":"c3d99d2e595e6d5801597d855a4d7295e6d9704353caae366e958a7cd74d7b4d","identical":true,"path":"connect/internal/localhttp/localhttp.go","worktree_sha256":"c3d99d2e595e6d5801597d855a4d7295e6d9704353caae366e958a7cd74d7b4d"},{"baseline_sha256":"c7661363dfd346243e9f6043f03f857e653ae70fbb1b95213f904dbb8b0ff1f6","identical":true,"path":"tests/connect/test_extend.py","worktree_sha256":"c7661363dfd346243e9f6043f03f857e653ae70fbb1b95213f904dbb8b0ff1f6"},{"baseline_sha256":"0eb53d1d025a80852d0705af3586354e1650bb2566f341f3f3ec179b27238b8d","identical":true,"path":"tests/connect/test_extend_bindings.py","worktree_sha256":"0eb53d1d025a80852d0705af3586354e1650bb2566f341f3f3ec179b27238b8d"},{"baseline_sha256":"d6b764ef10de847e4b05af8e24b955c22b132d12a8cc5bed8e5e4eec7fd8cc8c","identical":true,"path":"tests/connect/test_render.py","worktree_sha256":"d6b764ef10de847e4b05af8e24b955c22b132d12a8cc5bed8e5e4eec7fd8cc8c"},{"baseline_sha256":"595af5d927fe4a4e39383acd49e53b8e1f8ac101f26072aa4a7740016658d431","identical":true,"path":"tests/media/test_comfyui_tracking.py","worktree_sha256":"595af5d927fe4a4e39383acd49e53b8e1f8ac101f26072aa4a7740016658d431"},{"baseline_sha256":"412564523bb974b8252254bfd443ae4d7e70240f3c26f961edc217e9e178926c","identical":true,"path":"tests/test_ninfer_directio_verification.py","worktree_sha256":"412564523bb974b8252254bfd443ae4d7e70240f3c26f961edc217e9e178926c"},{"baseline_sha256":"b34fb07601af10897234759302d0d25c8529ff4c1e079a377bfe756451206003","identical":true,"path":"tests/test_propagation_active_identity.py","worktree_sha256":"b34fb07601af10897234759302d0d25c8529ff4c1e079a377bfe756451206003"},{"baseline_sha256":"9d44542d49dc45ab178b03b5a7499eb53e8eade8ac90ccbb068d573f21b92bd7","identical":true,"path":"tests/test_propagation_native_acceptance.py","worktree_sha256":"9d44542d49dc45ab178b03b5a7499eb53e8eade8ac90ccbb068d573f21b92bd7"},{"baseline_sha256":"9722fe2aaee989e2197306f86cf62a0687b94a5f39f09749911ee83f86940d50","identical":true,"path":"tests/test_workbench_cli.py","worktree_sha256":"9722fe2aaee989e2197306f86cf62a0687b94a5f39f09749911ee83f86940d50"},{"baseline_sha256":"a76d17920291d80169efdae841c200fffbf3dc05a374087a78c51598c72f12c8","identical":true,"path":"tests/workbench/test_project_files.py","worktree_sha256":"a76d17920291d80169efdae841c200fffbf3dc05a374087a78c51598c72f12c8"}],"attribution":{"campaign_induced_failures_demonstrated":0,"conclusion":"The same 30 failure nodes reproduce on clean canonical HEAD 6c8b061d using the same interpreter. The remaining media failure is unproven and transient in the bounded evidence, with a demonstrated pre-existing resource-custody risk.","confirmed_baseline_reproducible_failures":30,"full_suite_green":false,"unexplained_nonreproducing_failures":1},"baseline_identity":{"head":"6c8b061db10336957b6e9de6577e01d6b0c5fd62","imports_confirmed":"BASELINE_ORIGIN PRIVATE_PATH_REDACTED","isolation":"PYTHONDONTWRITEBYTECODE=1, PYTHONPATH=canonical, no pytest cache provider, temporary cwd/base temp; no canonical edits or environment installs.","status_after":""},"blockers":["The complete product suite did not pass. Report 30 confirmed pre-existing platform failures plus 1 transient unknown; do not claim full-suite green.","A supported Linux-amd64 CI run is needed to evaluate the native Connect/direct-I/O/systemd paths.","Media SQLite resource custody warrants bounded follow-up; its original error cannot be attributed conclusively from available evidence."],"bounded_replays":{"canonical_baseline":{"canonical_status_after":"","error_lines":["E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   AssertionError: Regex pattern did not match.","E     Expected regex: 'gateway component pin unavailable'","E     Actual message: 'Connect lifecycle requires Linux amd64'","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   anvil_serving.connect.manage.UnsupportedPlatformError: Connect lifecycle requires Linux amd64","E   AssertionError: FAIL\tgithub.com/fakoli/anvil-serving/connect/internal/runtime [build failed]","E     FAIL","E     # github.com/fakoli/anvil-serving/connect/internal/ingresshttp","E     internal/ingresshttp/ingresshttp.go:249:27: undefined: unix.GetsockoptUcred","E     internal/ingresshttp/ingresshttp.go:249:74: undefined: unix.SO_PEERCRED","E     # github.com/fakoli/anvil-serving/connect/internal/localhttp","E     internal/localhttp/localhttp.go:94:27: undefined: unix.GetsockoptUcred","E     internal/localhttp/localhttp.go:94:74: undefined: unix.SO_PEERCRED","E     # github.com/fakoli/anvil-serving/connect/internal/admin","E     internal/admin/client.go:102:27: undefined: unix.GetsockoptUcred","E     internal/admin/client.go:102:74: undefined: unix.SO_PEERCRED","E     ","E   assert 1 == 0","E    +  where 1 = CompletedProcess(args=['/opt/homebrew/bin/go', '-C', 'PRIVATE_PATH_REDACTED', 'test', './in...min/client.go:102:27: undefined: unix.GetsockoptUcred\\ninternal/admin/client.go:102:74: undefined: unix.SO_PEERCRED\\n').returncode","E   AssertionError: FAIL\tgithub.com/fakoli/anvil-serving/connect/internal/runtime [build failed]","E     FAIL","E     # github.com/fakoli/anvil-serving/connect/internal/ingresshttp","E     internal/ingresshttp/ingresshttp.go:249:27: undefined: unix.GetsockoptUcred","E     internal/ingresshttp/ingresshttp.go:249:74: undefined: unix.SO_PEERCRED","E     # github.com/fakoli/anvil-serving/connect/internal/localhttp","E     internal/localhttp/localhttp.go:94:27: undefined: unix.GetsockoptUcred","E     internal/localhttp/localhttp.go:94:74: undefined: unix.SO_PEERCRED","E     # github.com/fakoli/anvil-serving/connect/internal/admin","E     internal/admin/client.go:102:27: undefined: unix.GetsockoptUcred","E     internal/admin/client.go:102:74: undefined: unix.SO_PEERCRED","E     ","E   assert 1 == 0","E    +  where 1 = CompletedProcess(args=['/opt/homebrew/bin/go', '-C', 'PRIVATE_PATH_REDACTED', 'test', './in...min/client.go:102:27: undefined: unix.GetsockoptUcred\\ninternal/admin/client.go:102:74: undefined: unix.SO_PEERCRED\\n').returncode","E   AssertionError: stat: illegal option -- c","E     usage: stat [-FLnq] [-f format | -l | -r | -s | -x] [-t timefmt] [file ...]","E     ","E   assert 1 == 0","E    +  where 1 = CompletedProcess(args=['bash', 'PRIVATE_PATH_REDACTED'', stderr='stat: illegal option -- c\\nusage: stat [-FLnq] [-f format | -l | -r | -s | -x] [-t timefmt] [file ...]\\n').returncode","E   AssertionError: assert 'mismatch' in 'stat: illegal option -- c\\nusage: stat [-FLnq] [-f format | -l | -r | -s | -x] [-t timefmt] [file ...]\\n'","E    +  where 'stat: illegal option -- c\\nusage: stat [-FLnq] [-f format | -l | -r | -s | -x] [-t timefmt] [file ...]\\n' = CompletedProcess(args=['bash', 'PRIVATE_PATH_REDACTED'', stderr='stat: illegal option -- c\\nusage: stat [-FLnq] [-f format | -l | -r | -s | -x] [-t timefmt] [file ...]\\n').stderr","E   anvil_serving.control_plane.controller.propagation_job_store.PropagationJobError: active_identity_unavailable","E   AssertionError: assert '/usr/bin:/bin' == '/usr/bin'","E     ","E     - /usr/bin","E     + /usr/bin:/bin","E     ?         +++++","E   AssertionError: assert 2 == 0","E    +  where 2 = <function main at 0x10c140460>(['pi-web', 'status'])","E    +    where <function main at 0x10c140460> = workbench.main","E   anvil_serving.observability.dashboard.contracts.ObservatoryError: This project Git read is unavailable.","E   anvil_serving.observability.dashboard.contracts.ObservatoryError: This project Git read is unavailable.","E   anvil_serving.observability.dashboard.contracts.ObservatoryError: This project Git read is unavailable.","E   AssertionError: assert 'project_git_unavailable' == 'project_diff_unavailable'","E     ","E     - project_diff_unavailable","E     ?         ^ ^^","E     + project_git_unavailable","E     ?         ^ ^","E   anvil_serving.observability.dashboard.contracts.ObservatoryError: This project Git read is unavailable."],"failed_nodes":["tests/connect/test_extend.py::test_dry_run_returns_the_plan_and_mutates_nothing","tests/connect/test_extend.py::test_rejection_carries_the_plan_in_the_error","tests/connect/test_extend.py::test_extension_validates_gateway_and_connector_before_activation","tests/connect/test_extend.py::test_extend_runs_the_full_sequence_and_converges","tests/connect/test_extend.py::test_extend_rolls_back_the_generation_when_the_gateway_fails_to_become_ready","tests/connect/test_extend.py::test_prior_status_failure_uses_the_published_candidate_binding_and_rolls_back_before_revoke","tests/connect/test_extend.py::test_bundle_lands_in_the_role_owned_connector_sidecar","tests/connect/test_extend.py::test_gateway_side_invitation_response_is_removed_after_redemption","tests/connect/test_extend.py::test_post_redemption_failure_retains_exact_approval_recovery","tests/connect/test_extend.py::test_native_init_ambiguity_retains_phase_then_rerun_finishes_forward","tests/connect/test_extend.py::test_init_pending_with_missing_staged_identity_holds_without_revoke_or_reinvite","tests/connect/test_extend.py::test_staged_reenrollment_retries_init_only_when_authority_remains_invited","tests/connect/test_extend.py::test_invite_failure_after_revoke_keeps_new_generation_and_retained_recovery","tests/connect/test_extend.py::test_rollback_restores_disabled_units_to_the_disabled_state","tests/connect/test_extend.py::test_converged_extension_during_lock_wait_is_a_no_op","tests/connect/test_extend_bindings.py::test_extension_publishes_new_activation_before_real_admin_handoff","tests/connect/test_extend_bindings.py::test_admin_exchange_rejects_and_cleans_an_unsafe_native_response","tests/connect/test_extend_bindings.py::test_manage_identity_emits_the_nested_shape_consumed_by_extension","tests/connect/test_render.py::test_local_tunnel_python_go_reader_parity","tests/connect/test_render.py::test_native_entry_status_passes_closed_python_decoder","tests/test_ninfer_directio_verification.py::test_direct_read_verifies_aligned_artifact_and_literal_path","tests/test_ninfer_directio_verification.py::test_digest_mismatch_blocks_startup","tests/test_propagation_active_identity.py::test_active_identity_requires_exact_runtime_binding","tests/test_propagation_native_acceptance.py::test_owned_native_lifecycle_binds_resume_and_new_evidence","tests/test_workbench_cli.py::test_pi_web_status_reports_loopback_readiness","tests/workbench/test_project_files.py::test_diff_and_worktree_use_the_declared_checkout_and_literal_path_arguments","tests/workbench/test_project_files.py::test_diff_uses_literal_safe_regular_files_and_disables_hostile_filters","tests/workbench/test_project_files.py::test_staged_empty_file_remains_a_staged_deletion","tests/workbench/test_project_files.py::test_diff_refuses_binary_bytes_and_bounded_renderer_failures","tests/workbench/test_project_files.py::test_diff_keeps_descriptor_pinned_working_bytes_after_parent_replacement"],"kind":"baseline_31_failure_replay","origin_line":"BASELINE_ORIGIN PRIVATE_PATH_REDACTED","output_sha256":"514107be0abec353dd0cb411d302d2352c47b656eb177c4b220c25994162d8a7","returncode":1,"seconds":2.98,"summary":"30 failed, 1 passed in 2.85s"},"media_module":{"kind":"media_module_replay","output":".......                                                                  [100%]\n7 passed in 0.06s\n","receipt":{"command":["product-source:.venv/bin/python","-m","pytest","tests/media/test_comfyui_tracking.py","-q","--tb=short","-p","no:cacheprovider","--basetemp","/var/folders/1p/b7x4xwx104q77kk6l19rjmp00000gn/T/anvil-serving-pytest-urr3djrd"],"cwd":"PRIVATE_PATH_REDACTED","exit_code":0,"finished_at":"2026-10-06T07:40:01.700893+00:00","interpreter":"product-source:.venv/bin/python","pytest_args":["tests/media/test_comfyui_tracking.py","-q","--tb=short","-p","no:cacheprovider"],"run_id":"e10adcb5-b4d7-47e3-8c42-3d592794fae9","schema":"anvil-serving.test-run/v1","source":{"dirty":true,"head":"6c8b061db10336957b6e9de6577e01d6b0c5fd62","tracked_diff_sha256":"d6f5c55b7ff62fd5525f6a00f869141ef68a28c115927a9d92f58ddb24199c0a"},"source_after":{"dirty":true,"head":"6c8b061db10336957b6e9de6577e01d6b0c5fd62","tracked_diff_sha256":"d6f5c55b7ff62fd5525f6a00f869141ef68a28c115927a9d92f58ddb24199c0a"},"started_at":"2026-10-06T07:40:01.372121+00:00","state":"passed"},"returncode":0,"seconds":0.36},"worktree":{"failed":30,"passed":1,"pytest_seconds":2.41,"receipt":{"command":["product-source:.venv/bin/python","-m","pytest","tests/connect/test_extend.py::test_dry_run_returns_the_plan_and_mutates_nothing","tests/connect/test_extend.py::test_rejection_carries_the_plan_in_the_error","tests/connect/test_extend.py::test_extension_validates_gateway_and_connector_before_activation","tests/connect/test_extend.py::test_extend_runs_the_full_sequence_and_converges","tests/connect/test_extend.py::test_extend_rolls_back_the_generation_when_the_gateway_fails_to_become_ready","tests/connect/test_extend.py::test_prior_status_failure_uses_the_published_candidate_binding_and_rolls_back_before_revoke","tests/connect/test_extend.py::test_bundle_lands_in_the_role_owned_connector_sidecar","tests/connect/test_extend.py::test_gateway_side_invitation_response_is_removed_after_redemption","tests/connect/test_extend.py::test_post_redemption_failure_retains_exact_approval_recovery","tests/connect/test_extend.py::test_native_init_ambiguity_retains_phase_then_rerun_finishes_forward","tests/connect/test_extend.py::test_init_pending_with_missing_staged_identity_holds_without_revoke_or_reinvite","tests/connect/test_extend.py::test_staged_reenrollment_retries_init_only_when_authority_remains_invited","tests/connect/test_extend.py::test_invite_failure_after_revoke_keeps_new_generation_and_retained_recovery","tests/connect/test_extend.py::test_rollback_restores_disabled_units_to_the_disabled_state","tests/connect/test_extend.py::test_converged_extension_during_lock_wait_is_a_no_op","tests/connect/test_extend_bindings.py::test_extension_publishes_new_activation_before_real_admin_handoff","tests/connect/test_extend_bindings.py::test_admin_exchange_rejects_and_cleans_an_unsafe_native_response","tests/connect/test_extend_bindings.py::test_manage_identity_emits_the_nested_shape_consumed_by_extension","tests/connect/test_render.py::test_local_tunnel_python_go_reader_parity","tests/connect/test_render.py::test_native_entry_status_passes_closed_python_decoder","tests/media/test_comfyui_tracking.py::test_reconciler_recovers_submitting_prompt_without_resubmission","tests/test_ninfer_directio_verification.py::test_direct_read_verifies_aligned_artifact_and_literal_path","tests/test_ninfer_directio_verification.py::test_digest_mismatch_blocks_startup","tests/test_propagation_active_identity.py::test_active_identity_requires_exact_runtime_binding","tests/test_propagation_native_acceptance.py::test_owned_native_lifecycle_binds_resume_and_new_evidence","tests/test_workbench_cli.py::test_pi_web_status_reports_loopback_readiness","tests/workbench/test_project_files.py::test_diff_and_worktree_use_the_declared_checkout_and_literal_path_arguments","tests/workbench/test_project_files.py::test_diff_uses_literal_safe_regular_files_and_disables_hostile_filters","tests/workbench/test_project_files.py::test_staged_empty_file_remains_a_staged_deletion","tests/workbench/test_project_files.py::test_diff_refuses_binary_bytes_and_bounded_renderer_failures","tests/workbench/test_project_files.py::test_diff_keeps_descriptor_pinned_working_bytes_after_parent_replacement","-q","--tb=short","-p","no:cacheprovider","--basetemp","/var/folders/1p/b7x4xwx104q77kk6l19rjmp00000gn/T/anvil-serving-pytest-26elecmg"],"cwd":"PRIVATE_PATH_REDACTED","exit_code":1,"finished_at":"2026-10-06T07:38:42.816883+00:00","interpreter":"product-source:.venv/bin/python","pytest_args":["tests/connect/test_extend.py::test_dry_run_returns_the_plan_and_mutates_nothing","tests/connect/test_extend.py::test_rejection_carries_the_plan_in_the_error","tests/connect/test_extend.py::test_extension_validates_gateway_and_connector_before_activation","tests/connect/test_extend.py::test_extend_runs_the_full_sequence_and_converges","tests/connect/test_extend.py::test_extend_rolls_back_the_generation_when_the_gateway_fails_to_become_ready","tests/connect/test_extend.py::test_prior_status_failure_uses_the_published_candidate_binding_and_rolls_back_before_revoke","tests/connect/test_extend.py::test_bundle_lands_in_the_role_owned_connector_sidecar","tests/connect/test_extend.py::test_gateway_side_invitation_response_is_removed_after_redemption","tests/connect/test_extend.py::test_post_redemption_failure_retains_exact_approval_recovery","tests/connect/test_extend.py::test_native_init_ambiguity_retains_phase_then_rerun_finishes_forward","tests/connect/test_extend.py::test_init_pending_with_missing_staged_identity_holds_without_revoke_or_reinvite","tests/connect/test_extend.py::test_staged_reenrollment_retries_init_only_when_authority_remains_invited","tests/connect/test_extend.py::test_invite_failure_after_revoke_keeps_new_generation_and_retained_recovery","tests/connect/test_extend.py::test_rollback_restores_disabled_units_to_the_disabled_state","tests/connect/test_extend.py::test_converged_extension_during_lock_wait_is_a_no_op","tests/connect/test_extend_bindings.py::test_extension_publishes_new_activation_before_real_admin_handoff","tests/connect/test_extend_bindings.py::test_admin_exchange_rejects_and_cleans_an_unsafe_native_response","tests/connect/test_extend_bindings.py::test_manage_identity_emits_the_nested_shape_consumed_by_extension","tests/connect/test_render.py::test_local_tunnel_python_go_reader_parity","tests/connect/test_render.py::test_native_entry_status_passes_closed_python_decoder","tests/media/test_comfyui_tracking.py::test_reconciler_recovers_submitting_prompt_without_resubmission","tests/test_ninfer_directio_verification.py::test_direct_read_verifies_aligned_artifact_and_literal_path","tests/test_ninfer_directio_verification.py::test_digest_mismatch_blocks_startup","tests/test_propagation_active_identity.py::test_active_identity_requires_exact_runtime_binding","tests/test_propagation_native_acceptance.py::test_owned_native_lifecycle_binds_resume_and_new_evidence","tests/test_workbench_cli.py::test_pi_web_status_reports_loopback_readiness","tests/workbench/test_project_files.py::test_diff_and_worktree_use_the_declared_checkout_and_literal_path_arguments","tests/workbench/test_project_files.py::test_diff_uses_literal_safe_regular_files_and_disables_hostile_filters","tests/workbench/test_project_files.py::test_staged_empty_file_remains_a_staged_deletion","tests/workbench/test_project_files.py::test_diff_refuses_binary_bytes_and_bounded_renderer_failures","tests/workbench/test_project_files.py::test_diff_keeps_descriptor_pinned_working_bytes_after_parent_replacement","-q","--tb=short","-p","no:cacheprovider"],"run_id":"d1660eb0-0f62-4525-9e57-a3dc5d80d00d","schema":"anvil-serving.test-run/v1","source":{"dirty":true,"head":"6c8b061db10336957b6e9de6577e01d6b0c5fd62","tracked_diff_sha256":"d6f5c55b7ff62fd5525f6a00f869141ef68a28c115927a9d92f58ddb24199c0a"},"source_after":{"dirty":true,"head":"6c8b061db10336957b6e9de6577e01d6b0c5fd62","tracked_diff_sha256":"d6f5c55b7ff62fd5525f6a00f869141ef68a28c115927a9d92f58ddb24199c0a"},"started_at":"2026-10-06T07:38:40.077215+00:00","state":"failed"},"selected_original_failure_nodes":31}},"environment":{"architecture":"arm64","os":"macOS-27.0-arm64-arm-64bit-Mach-O","proc_self_fd_available":false,"reported_python_version":"3.14.6","resolved_bin":"/bin","resolved_usr_bin":"/usr/bin","soft_fd_limit":256,"test_interpreter":"product-source:.venv/bin/python"},"failure_groups":[{"cause":"Native Connect lifecycle intentionally requires Linux amd64; tests skip Windows only and do not inject the platform seam. Darwin arm64 correctly trips the production guard.","classification":"pre_existing_platform_test_mismatch","count":18,"id":"connect_linux_platform","observed_error":"UnsupportedPlatformError: Connect lifecycle requires Linux amd64","recommendation":"Keep production platform guard. Run native integration on Linux amd64. For orchestration unit tests inject the supported-platform seam alongside already injected host boundaries, or apply accurate Linux-amd64 integration markers.","tests":["tests/connect/test_extend.py::test_dry_run_returns_the_plan_and_mutates_nothing","tests/connect/test_extend.py::test_rejection_carries_the_plan_in_the_error","tests/connect/test_extend.py::test_extension_validates_gateway_and_connector_before_activation","tests/connect/test_extend.py::test_extend_runs_the_full_sequence_and_converges","tests/connect/test_extend.py::test_extend_rolls_back_the_generation_when_the_gateway_fails_to_become_ready","tests/connect/test_extend.py::test_prior_status_failure_uses_the_published_candidate_binding_and_rolls_back_before_revoke","tests/connect/test_extend.py::test_bundle_lands_in_the_role_owned_connector_sidecar","tests/connect/test_extend.py::test_gateway_side_invitation_response_is_removed_after_redemption","tests/connect/test_extend.py::test_post_redemption_failure_retains_exact_approval_recovery","tests/connect/test_extend.py::test_native_init_ambiguity_retains_phase_then_rerun_finishes_forward","tests/connect/test_extend.py::test_init_pending_with_missing_staged_identity_holds_without_revoke_or_reinvite","tests/connect/test_extend.py::test_staged_reenrollment_retries_init_only_when_authority_remains_invited","tests/connect/test_extend.py::test_invite_failure_after_revoke_keeps_new_generation_and_retained_recovery","tests/connect/test_extend.py::test_rollback_restores_disabled_units_to_the_disabled_state","tests/connect/test_extend.py::test_converged_extension_during_lock_wait_is_a_no_op","tests/connect/test_extend_bindings.py::test_extension_publishes_new_activation_before_real_admin_handoff","tests/connect/test_extend_bindings.py::test_admin_exchange_rejects_and_cleans_an_unsafe_native_response","tests/connect/test_extend_bindings.py::test_manage_identity_emits_the_nested_shape_consumed_by_extension"]},{"cause":"Go parity/status tests build the Linux native runtime on Darwin; unix.GetsockoptUcred and unix.SO_PEERCRED are unavailable.","classification":"pre_existing_platform_test_mismatch","count":2,"id":"connect_go_linux_credentials","observed_error":"Go build fails at ingresshttp.go:249, localhttp.go:94 and admin/client.go:102.","recommendation":"Gate Linux-native test executions to Linux amd64 CI. If portable parser parity is required, isolate portable reader logic from Linux peer-credential packages and review platform build tags; do not weaken credential checks.","tests":["tests/connect/test_render.py::test_local_tunnel_python_go_reader_parity","tests/connect/test_render.py::test_native_entry_status_passes_closed_python_decoder"]},{"cause":"Pinned Linux verifier requires GNU stat -Lc, dd iflag=direct, and sha256sum; macOS BSD stat rejects -c first. Tests skip Windows but run on Darwin.","classification":"pre_existing_platform_test_mismatch","count":2,"id":"ninfer_linux_directio","observed_error":"stat: illegal option -- c","recommendation":"Gate these runtime-artifact integration tests on Linux with the required tools. Preserve the Linux fail-closed direct-I/O gate; a BSD-stat substitution alone would not make direct I/O supported.","tests":["tests/test_ninfer_directio_verification.py::test_direct_read_verifies_aligned_artifact_and_literal_path","tests/test_ninfer_directio_verification.py::test_digest_mismatch_blocks_startup"]},{"cause":"ProjectFiles._git uses descriptor-pinned cwd /proc/self/fd/<fd>; Darwin lacks /proc/self/fd. Test capability marker checks POSIX flags rather than the subprocess descriptor path capability.","classification":"pre_existing_platform_capability_gap","count":5,"id":"project_git_proc_descriptor","observed_error":"ObservatoryError project_git_unavailable while subprocess.Popen uses cwd /proc/self/fd/<fd>.","recommendation":"Declare and gate this Git-read capability accurately, or implement a reviewed Darwin descriptor-safe adapter with the existing parent-replacement regression tests. Do not fall back to a mutable string checkout path.","tests":["tests/workbench/test_project_files.py::test_diff_and_worktree_use_the_declared_checkout_and_literal_path_arguments","tests/workbench/test_project_files.py::test_diff_uses_literal_safe_regular_files_and_disables_hostile_filters","tests/workbench/test_project_files.py::test_staged_empty_file_remains_a_staged_deletion","tests/workbench/test_project_files.py::test_diff_refuses_binary_bytes_and_bounded_renderer_failures","tests/workbench/test_project_files.py::test_diff_keeps_descriptor_pinned_working_bytes_after_parent_replacement"]},{"cause":"The fake Docker capture still evaluates local_docker_prefix(), which intentionally supports Linux and Windows only. Darwin ValueError is wrapped as active_identity_unavailable.","classification":"pre_existing_platform_test_mismatch","count":1,"id":"active_identity_docker_platform","observed_error":"PropagationJobError: active_identity_unavailable","recommendation":"Inject the approved Docker prefix seam in the isolated observer unit test, or limit local-diagnostics integration to supported platforms. Retain explicit remote-observer support for other hosts.","tests":["tests/test_propagation_active_identity.py::test_active_identity_requires_exact_runtime_binding"]},{"cause":"The test expects only /usr/bin after deduplication. Linux commonly resolves /bin to /usr/bin; Darwin keeps both distinct. The existing environment intentionally includes the declared safe path plus /usr/bin and /bin.","classification":"pre_existing_platform_test_expectation","count":1,"id":"native_path_linux_alias","observed_error":"AssertionError: '/usr/bin:/bin' == '/usr/bin'","recommendation":"Assert the explicit allowed, resolved PATH entries and absence of inherited unsafe entries independently of Linux symlink aliases; do not remove safe required /bin from production to satisfy this assertion.","tests":["tests/test_propagation_native_acceptance.py::test_owned_native_lifecycle_binds_resume_and_new_evidence"]},{"cause":"pi-web status invokes systemctl show on a macOS host; marker skips Windows only.","classification":"pre_existing_platform_test_mismatch","count":1,"id":"pi_web_systemctl","observed_error":"CLI returns 2: cannot run systemctl safely","recommendation":"Inject service-state/probe seams in the unit CLI contract, or mark systemd-backed status integration for Linux/systemd. Preserve managed lifecycle boundaries.","tests":["tests/test_workbench_cli.py::test_pi_web_status_reports_loopback_readiness"]},{"cause":"Original BEGIN IMMEDIATE raised SQLITE_CANTOPEN. Same test passes in both worktree and baseline 31-node replays; entire 7-test module passes. Original process FD count and SQLite extended errno were not recorded.","classification":"unexplained_full_suite_transient_not_reproduced","count":1,"id":"media_sqlite_transient","observed_error":"sqlite3.OperationalError: unable to open database file at media/jobs.py:570","plausible_mechanism":"Host soft FD limit is 256. Existing MediaJobStore connection context managers do not explicitly close; baseline initialization leaves 3 FDs open until gc.collect. A bounded, isolated baseline FD-exhaustion probe reproduces the exact BEGIN IMMEDIATE error. This is evidence for a mechanism, not proof of the original cause.","recommendation":"Follow up on deterministic SQLite connection custody with explicit close in finally/contextlib.closing for every _connect boundary. Preserve transaction semantics and add resource-custody regression coverage. Capture FD count and SQLite error code/OS errno on recurrence; do not label the full suite green or blame campaign source without an order-dependent reproduction.","tests":["tests/media/test_comfyui_tracking.py::test_reconciler_recovers_submitting_prompt_without_resubmission"]}],"observed_at_utc":"2026-10-06T07:42:48.431385+00:00","original_run":{"elapsed_seconds":355.97,"failed":31,"log_path":"runtime-artifact:product-full-tests.log","log_sha256":"8a42bf02c44f5933a6ba2d9b65e4f225ada2943d1b8648e689d8609ded7a4c7d","passed":9808,"skipped":687,"source_identity_limitation":"The supplied log has no source receipt. Parent reports the full run began before the later bounded terminal-punctuation regex change; rerun receipts below establish the reviewed replay source.","test_nodes":["tests/connect/test_extend.py::test_dry_run_returns_the_plan_and_mutates_nothing","tests/connect/test_extend.py::test_rejection_carries_the_plan_in_the_error","tests/connect/test_extend.py::test_extension_validates_gateway_and_connector_before_activation","tests/connect/test_extend.py::test_extend_runs_the_full_sequence_and_converges","tests/connect/test_extend.py::test_extend_rolls_back_the_generation_when_the_gateway_fails_to_become_ready","tests/connect/test_extend.py::test_prior_status_failure_uses_the_published_candidate_binding_and_rolls_back_before_revoke","tests/connect/test_extend.py::test_bundle_lands_in_the_role_owned_connector_sidecar","tests/connect/test_extend.py::test_gateway_side_invitation_response_is_removed_after_redemption","tests/connect/test_extend.py::test_post_redemption_failure_retains_exact_approval_recovery","tests/connect/test_extend.py::test_native_init_ambiguity_retains_phase_then_rerun_finishes_forward","tests/connect/test_extend.py::test_init_pending_with_missing_staged_identity_holds_without_revoke_or_reinvite","tests/connect/test_extend.py::test_staged_reenrollment_retries_init_only_when_authority_remains_invited","tests/connect/test_extend.py::test_invite_failure_after_revoke_keeps_new_generation_and_retained_recovery","tests/connect/test_extend.py::test_rollback_restores_disabled_units_to_the_disabled_state","tests/connect/test_extend.py::test_converged_extension_during_lock_wait_is_a_no_op","tests/connect/test_extend_bindings.py::test_extension_publishes_new_activation_before_real_admin_handoff","tests/connect/test_extend_bindings.py::test_admin_exchange_rejects_and_cleans_an_unsafe_native_response","tests/connect/test_extend_bindings.py::test_manage_identity_emits_the_nested_shape_consumed_by_extension","tests/connect/test_render.py::test_local_tunnel_python_go_reader_parity","tests/connect/test_render.py::test_native_entry_status_passes_closed_python_decoder","tests/media/test_comfyui_tracking.py::test_reconciler_recovers_submitting_prompt_without_resubmission","tests/test_ninfer_directio_verification.py::test_direct_read_verifies_aligned_artifact_and_literal_path","tests/test_ninfer_directio_verification.py::test_digest_mismatch_blocks_startup","tests/test_propagation_active_identity.py::test_active_identity_requires_exact_runtime_binding","tests/test_propagation_native_acceptance.py::test_owned_native_lifecycle_binds_resume_and_new_evidence","tests/test_workbench_cli.py::test_pi_web_status_reports_loopback_readiness","tests/workbench/test_project_files.py::test_diff_and_worktree_use_the_declared_checkout_and_literal_path_arguments","tests/workbench/test_project_files.py::test_diff_uses_literal_safe_regular_files_and_disables_hostile_filters","tests/workbench/test_project_files.py::test_staged_empty_file_remains_a_staged_deletion","tests/workbench/test_project_files.py::test_diff_refuses_binary_bytes_and_bounded_renderer_failures","tests/workbench/test_project_files.py::test_diff_keeps_descriptor_pinned_working_bytes_after_parent_replacement"]},"schema":"anvil-serving-product-test-triage/v1","scope":{"canonical_mutated":false,"full_suite_rerun":false,"live_model_or_host_lifecycle_operations":false,"sole_retained_new_artifact":"product-test-triage.json","source_edits":false},"sqlite_mechanism_probes":{"connection_custody":{"after_explicit_gc":3,"after_store_init":6,"baseline_import":"PRIVATE_PATH_REDACTED","before":3,"interpretation":"Three SQLite FDs retained until explicit collection; no inference about original full-suite FD count."},"fd_exhaustion":{"attribution_limit":"Demonstrates a plausible exact-error mechanism; original full-suite process FD count was not observed.","baseline_source":"PRIVATE_PATH_REDACTED","begin_outcome":{"message":"unable to open database file","sqlite_errorcode":14,"sqlite_errorname":"SQLITE_CANTOPEN","type":"OperationalError"},"exhaustion":{"errno":24,"type":"OSError"},"filled_descriptors":252,"probe":"isolated_baseline_media_store_fd_exhaustion","soft_fd_limit":256}}}
