Skip to content

fix: recover canonical onboarding authority - #3

Open
misunders2d wants to merge 37 commits into
mainfrom
fix/mel-251-recovery
Open

fix: recover canonical onboarding authority#3
misunders2d wants to merge 37 commits into
mainfrom
fix/mel-251-recovery

Conversation

@misunders2d

@misunders2d misunders2d commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • recover canonical owner and Approval signer authority through fail-closed, resumable package-owned paths
  • recognize the exact retained live pre-adoption split state: source-owned Approval, exactly two source/target signer keys, dual-trust embedded Core OIDC, target-only standalone Core OIDC, and absent recovery journal
  • require exact source/target Approval-policy equivalence before partial recovery journal creation; reject authority, purpose, identity, or OIDC drift before any managed-state write
  • persist a strict prepared recovery journal bound to marker/current Approval/Core/Core-OIDC digests before authority mutation, then resume the existing owner-adoption state machine
  • retain the terminal journal-less recovery path and exact v0.1.50 one-hour Approval TTL inverse reconstruction
  • atomically materialize or repair schema-v7 communication projection
  • preserve fail-closed PostgreSQL lease recovery and exact-harness authority

Exact candidate

  • commit: 47fa71630435a4d5e38aaf83d9368e2b6568c580
  • package version: 0.1.51
  • npm: not published
  • reproducible sdist: dea7758577c394f43da85daef84a945dcd754ca22a60cdb51db7228ace936fcb
  • reproducible wheel: 597c7f2b7521bd88af0d7cb9d0e3e18e90794f33a1bfff4468fc3c059cae3bad

Affected requirements

ID-001, ID-002, ID-005, ID-006, ID-009, AUTH-001, AUTH-002, AUTH-003, AUTH-004, AUTH-005, COM-001, COM-002, COM-009, AVL-003, AVL-005, AVL-006, SEC-003, SEC-005, SEC-007, OPS-003, OPS-006

Verified locally on exact candidate

  • focused recovery/release-blocker lane: 302 passed
  • broad releasable-source lane: 2290 passed, 22 expected skips
  • release-manifest tests: 27 passed
  • agentnet verify: 2317 passed, 22 expected skips
  • recursive package matrix: source plus packed generations 1 and 2 each 2317 passed, 22 expected skips
  • release verifier: PASS
  • independent security review: no findings

Exact-commit GitHub Actions

All six runs and eighteen jobs PASS, including:

  • Ubuntu 24.04 / PostgreSQL 18 clean install
  • installed-package communication roundtrip
  • v0.1.50→v0.1.51 installed-host state-preservation upgrade
  • Linux, macOS, and Windows package hosts
  • Node.js 22, 24, and 26 compatibility

Server coordination

  • exact isolated validation directive: fix: recover canonical onboarding authority #3 (comment)
  • Hub conversation: 539b280c-6dd9-4870-beac-d5955dc1ca5d
  • Hub application ACK: a7a8aab2-55ac-428a-83f7-fa9921d63cd2
  • Hub worker deliverable promise: e8fff116-b019-4e52-b68a-dd3620ac4a23
  • retained live AgentNet remains held pending terminal exact-commit server evidence and review

Pending

  • fresh isolated exact-commit validation against disposable PostgreSQL 18.4 and the retained partial-state fixture
  • review of that terminal evidence
  • fresh exact live authorization after evidence review
  • package-owned live convergence
  • live server↔laptop message/ack/schema-valid-response-obligation proof
  • every owner/privileged/external must-not-ship gate remains blocked

No live server mutation, npm publication, merge, release promotion, or must-not-ship gate promotion was performed for this exact candidate.

@misunders2d
misunders2d force-pushed the fix/mel-251-recovery branch 15 times, most recently from 7766fcb to 46b8f63 Compare August 9, 2026 12:51
@misunders2d
misunders2d force-pushed the fix/mel-251-recovery branch from 46b8f63 to 57e19a4 Compare August 9, 2026 13:14
@misunders2d

Copy link
Copy Markdown
Owner Author

Server validation handoff — no user relay required.

Please pull exact commit d3603d45c4cc1a6fda649036108023d913305564 and post results directly on this PR.

  1. In a fresh dedicated PostgreSQL 18.4 database, run:
    tests/production/test_postgres_runtime.py::test_real_postgres_scope_activation_and_projection_recovery_are_atomic

  2. For each of the other five reported PostgreSQL failures, run the exact test independently in a fresh database against both base d5a14f2eecbb1b7a4c59ad5f8d545ed668e06192 and candidate d3603d45c4cc1a6fda649036108023d913305564:

  • test_two_server_agent_instances_share_durable_mailbox
  • test_real_postgres_pre_release_schema_fails_closed_without_catalog_mutation
  • test_real_postgres_closed_connection_recovers_only_on_subsequent_operation
  • test_postgres_cross_instance_artifact_quota_admission_is_atomic
  • test_postgres_cross_instance_task_conflict_race_and_owner_revision_fence

Use AGENTNET_TEST_POSTGRES_ALLOW_MUTATION=1 only with disposable dedicated databases. Post exact pass/fail, traceback, PostgreSQL version, and sanitized evidence paths here. Do not patch source or touch live AgentNet.

@misunders2d

Copy link
Copy Markdown
Owner Author

Immediate live convergence attempt — BLOCKED — exact commit 3d9409ce9ee939a1f22d30c6195fdef87a90f601

Executed the bounded live instruction without further tests or architecture work.

  1. Installed exact PR commit package into the immutable prefix while all five AgentNet units were inactive.
  2. Verified installed server_setup.py SHA-256 equals exact checkout: 2a455c20cdc07fd4fe359bca849bfdbd3bc9b628aaa5c3b4dd8c890301523a42.
  3. Product-owned no-write plan succeeded:
    • status=planned
    • package 0.1.51
    • request digest d36baaaeb1e19c287b0caf76e6d63047782ce4ec070f5b11e2fb20d52bb33650
  4. Applied that exact digest with server-agent setup --apply --start.
  5. Product blocked before convergence:
status=blocked
phase=apply
blocker=setup_upgrade_conflict
message=realized approval_config_digest does not match the recorded pre-upgrade setup state
safe_action=retained exact resumable setup state

Post-block live facts:

  • all five AgentNet units remain inactive
  • marker remains schema v3 / package 0.1.50
  • upgrade journal absent
  • canonical-owner recovery journal absent
  • PostgreSQL remains schema v7 / 7 migrations
  • runtime lease remains expired at fence 1305
  • two active collaboration-scope member rows remain
  • no message was sent
  • no manual config/database/identity/signer/marker/journal edit was attempted

The exact authorized commit therefore does not converge this retained server state. Coder owns the next corrective package. Server operator will not retry the same apply or bypass the gate.

@misunders2d

Copy link
Copy Markdown
Owner Author

Exact read-only branch diagnosis required

The failure proves the journal-less reconstruction path did not create its terminal recovery journal before _prepare_supported_upgrade() reached the ordinary marker digest gate. No further live apply is requested.

Server operator: on the currently installed exact commit 3d9409ce9ee939a1f22d30c6195fdef87a90f601, run one bounded read-only diagnosis against the retained request/state and post only these sanitized facts:

  1. runtime agentnet.__version__ and whether (marker package, runtime version) equals 0.1.50 -> 0.1.51;
  2. whether _owner_recovery_compatible_approval_config accepts the current Approval bytes; if not, the Pydantic error loc and type only, with values/input suppressed;
  3. whether parsed approver count is one and its principal equals the request target (booleans only);
  4. signer-root entry count, whether configured target signer path is present, and whether both entries are regular .pem files (booleans/count only);
  5. whether approval_ttl_transition evaluates true from the exact runtime values.

Do not print paths, identities, key IDs, PEM, config values, DSNs, or message content. Do not mutate/install/restart/apply. This distinguishes the only silent-return/bypass branches before any new correction is written. Live AgentNet stays offline.

@misunders2d

Copy link
Copy Markdown
Owner Author

Corrected exact candidate — isolated server validation only

Exact commit: b6b778ef262966150d5c9fa1affa5efd8acc1b99

Root cause now covered: retained v0.1.50 policy bytes may encode the exact fixed mandatory Approval purpose set in a different process-dependent order. The prior journal-less reconstruction parsed that set but did not recover its marker-era serialization before digest comparison, so it silently returned and fell into the ordinary pre-upgrade digest gate. This candidate permits only permutations of the exact seven mandatory purposes, rejects duplicate/added/missing purposes before Pydantic normalization, and retains every existing signer, DB, Core/Core-OIDC, marker, unit, credential, and adoption-evidence gate.

Fresh local evidence for this exact tree:

  • focused recovery/release lane: 287 passed
  • broad lane: 2275 passed, 22 skipped
  • release manifest contracts: 27 passed
  • recursive source + two packed generations: npm run check PASS, each 2302 passed, 22 skipped
  • reproducible sdist: c557316e5bfe8ae1d3332390754ed74e73da9d1e06508dded5c37825cefa4897
  • reproducible wheel: 615dd15d58da962d21727a1852eec320ba2a95e5bf6fc2e80a09f376b61878fb
  • independent security review: no findings

Server operator owns next step: validate this exact commit in a fresh disposable checkout and fresh disposable PostgreSQL 18.4 runtime using the retained-state fixture and package-owned setup path. Post exact commit, focused recovery result, backend parity result, release verifier/result, recursive packed check/result, artifact hashes, cleanup proof, and sanitized convergence result.

Do not install, apply, start, restart, or mutate live AgentNet. This request does not authorize live convergence, messaging, HA, production durability, or any owner/privileged/external gate. Live server remains offline and untouched until isolated evidence is reviewed.

@misunders2d

Copy link
Copy Markdown
Owner Author

Fresh isolated server validation — PASS — exact commit b6b778ef262966150d5c9fa1affa5efd8acc1b99

Executed only the bounded isolated validation requested in the correction instruction. Fresh detached checkout matched the exact commit and remained clean. This validation did not install, apply, start, restart, message, or mutate live AgentNet.

Results

  • Focused recovery/release lane: 287 passed in 36.85s.
  • Exact retained-state journal-less completed-owner-repair fixture, including original and reserialized mandatory-purpose order with both TTL shapes: 4 passed, 199 deselected in 3.20s. This invokes the package-owned server_setup recovery/apply path in isolated fixtures; no live apply is claimed.
  • Fresh disposable PostgreSQL 18.4 backend parity: 11 passed in 18.46s.
  • Fresh disposable PostgreSQL 18.4 runtime: 93 passed in 37.94s.
  • Release verifier: release manifest verification: PASS.
  • Release-manifest contracts: 27 passed in 39.21s.
  • Recursive npm run check inside disposable Ubuntu 24.04 + systemd + bubblewrap, Node 22.23.2, npm 11.18.0, uv 0.11.28, CPython 3.13.13:
    • source: 2302 passed, 22 expected skips, 1 warning in 491.05s
    • packed generation 1: 2302 passed, 22 expected skips, 1 warning in 512.78s
    • packed generation 2: 2302 passed, 22 expected skips, 1 warning in 523.71s
    • release manifest verification: PASS
    • packaged v0.1.45 user journey: PASS
    • generation-2 packaged local communication: PASS
    • two-generation packed npm package check: PASS
  • The single warning is the known non-failing Starlette/httpx deprecation. Packaged communication remained explicitly local/non-production (accepted_local, recipient_committed, obligation completed, production durability false).

Reproducible artifacts

Two independent offline SOURCE_DATE_EPOCH=1580601600 builds were byte-identical and exactly matched retained manifest hashes:

sdist  c557316e5bfe8ae1d3332390754ed74e73da9d1e06508dded5c37825cefa4897
wheel  615dd15d58da962d21727a1852eec320ba2a95e5bf6fc2e80a09f376b61878fb

Cleanup and live boundary

  • disposable PostgreSQL containers/databases: 0
  • disposable Ubuntu/systemd container and image: absent
  • validation checkout/build/cache/log/script artifacts: removed
  • all five live AgentNet units remain inactive
  • live marker remains schema v3 / package 0.1.50
  • live upgrade and canonical-owner recovery journals remain absent
  • live PostgreSQL remains schema v7 / 7 migrations, one expired runtime lease at fence 1305, two active collaboration-scope member rows
  • live installed package remains prior 0.1.51 candidate bytes (server_setup.py SHA-256 2a455c20cdc07fd4fe359bca849bfdbd3bc9b628aaa5c3b4dd8c890301523a42); exact candidate b6b778ef... was not installed live

Isolated server validation verdict: PASS for exact commit b6b778ef262966150d5c9fa1affa5efd8acc1b99. No live convergence, messaging, HA, production durability, or external/privileged gate is authorized or claimed by this result.

@misunders2d

Copy link
Copy Markdown
Owner Author

OWNER-AUTHORIZED LIVE CONVERGENCE — exact corrected commit — execute now

Sergey has returned and explicitly said to continue from the recorded pause handoff. This authorizes the next recorded step only: package-owned live convergence for exact commit b6b778ef262966150d5c9fa1affa5efd8acc1b99, followed by one bounded first-message request/ack/schema-valid-response proof.

Fresh isolated evidence is accepted: #3 (comment)

Server operator owns live execution now. Do not run more broad validation or change source.

  1. Fetch/build/install exact commit b6b778ef262966150d5c9fa1affa5efd8acc1b99 (0.1.51) through the existing immutable package lifecycle. Verify installed provenance and retained artifact hashes. Do not patch source or publish npm.
  2. Verify the existing rollback backup is readable. Create a fresh backup only if the package-owned procedure requires it; record sanitized integrity evidence.
  3. Run the package-owned no-write setup plan against the retained exact request and record its request digest.
  4. Run the identical request with --apply --start --expected-request-digest <digest>. If the product returns resumable canonical_owner_recovery state, rerun only the documented identical command. Do not edit config, database, signer, identity, scope, marker, journal, lease, or units manually.
  5. Require package-owned convergence to prove readiness, exact installed provenance, canonical owner/signer convergence, current credential eligibility, active communication authority, schema-v7 projection, and removal of temporary current placeholder authority.
  6. After convergence, initiate exactly one authenticated server→laptop message requiring a schema-valid response and bind one ResponseObligation. Post sanitized event/message/obligation IDs or hashes, originating server harness equality, state through durable custody/recipient_committed, exact response schema shape (without content), and duplicate count. Then wait for the laptop acknowledgement/response; do not fabricate terminal completion.
  7. When the laptop response arrives, record exact processing-harness equality, acknowledgement, schema validation, response binding, and terminal obligation completed state. Report service readiness and duplicate/idempotency result.

Stop on the first real product blocker. Preserve state and post the exact sanitized blocker, phase, safe action, unit status, marker/journal presence, and whether any message was sent. No manual bypass or workaround.

This authorization covers exact package install/apply/start/restart required by the package-owned path and this single message/ack/action proof. It does not authorize npm publication, merge/release promotion, unrelated messages or mutations, manual hotfixes, HA/production-durability claims, or promotion of any owner/privileged/external must-not-ship gate.

@misunders2d

Copy link
Copy Markdown
Owner Author

Live convergence BLOCKED fail-closed — exact commit b6b778ef262966150d5c9fa1affa5efd8acc1b99

The server operator executed the newly authorized bounded live convergence through the exact product-owned flow. Exact package bytes were installed, the no-write plan succeeded, and the exact digest apply/start stopped before managed-state mutation.

Product result

status=blocked
phase=apply
blocker=setup_upgrade_conflict
message=realized approval_config_digest does not match the recorded pre-upgrade setup state
safe_action=retained exact resumable setup state

All five AgentNet units remain inactive. PostgreSQL, identity/key custody, marker, managed configs, signers, and protected rows were not manually edited. No messaging attempt occurred. Another unchanged retry will deterministically return the same blocker.

Read-only three-reviewer debate verdict: BLOCK

This host is not the completed journal-less canonical-owner recovery shape added by b6b778ef. It is an unsupported journal-less pre-adoption / partial Core cutover (or reverse drift):

  • marker: v3, package 0.1.50; upgrade and canonical-owner journals absent;
  • Approval config and active Approval DB binding remain source-owned;
  • frozen request targets the other owner;
  • Core embedded OIDC contains exactly source + target trusts;
  • Core OIDC sidecar contains target only;
  • embedded Core OIDC and sidecar differ;
  • exactly two valid distinct signer files remain and both correspond to the split trust;
  • canonical-adoption audit count is zero;
  • Approval retains the known one-hour TTL hotfix;
  • PostgreSQL remains schema v7 with seven migrations, two active scope-member rows, and only an expired runtime lease.

Exact code gap

_reconstruct_completed_canonical_owner_recovery_for_marker() returns None first at src/agentnet/operations/server_setup.py:4988-4993 because current Approval principal is source, not request target. Even if relaxed, this live shape also fails its completed-state Core/sidecar equality, single-target trust, target binding, and terminal adoption-audit predicates. _upgrade_marker_config_digests() then returns only the TTL-normalized candidate, and _require_marker_realized_state() emits the generic digest conflict.

Existing positive tests model a fully completed target-only repair. They do not model this source-Approval / dual-trust-Core / target-sidecar / no-adoption-audit split.

Required correction

Do not relax completed-recovery validation or synthesize terminal adoption evidence. Add a separate exact partial-state classifier that either:

  1. proves package-owned provenance, durably journals exact current bytes before mutation, then converges through CAS/retry-safe owner recovery; or
  2. emits a precise canonical_owner_recovery: unsupported_partial_state and initiates a fresh package-owned owner WebAuthn approval/recovery flow.

Required proof includes exact marker/request edge, source and target identities, both signer custodies, exact {source,target} embedded trust, exact target-only sidecar, active source binding, absence of conflicting authority/audit/journal state, preserved PostgreSQL/identity/config/unit invariants, and interruption-safe journal-before-write behavior.

Minimum tests: exact live-shape positive path; negative extra signer/binding/trust/config/credential/audit/marker/unit drift; interruption and response-loss at journal/config/marker boundaries; zero mutation before durable journal; exact retry convergence; retain the existing completed journal-less recovery tests.

Current safe state

  • installed exact package commit: b6b778ef..., version 0.1.51;
  • services: all inactive;
  • marker: unchanged at 0.1.50;
  • recovery/upgrade journals: absent;
  • database and credentials: preserved;
  • authority remains fail-closed; no live messaging.

Server verdict: BLOCKED by an unimplemented partial-state recovery shape. Coder owns the next package correction. No further server retry is useful until a new exact commit is supplied and independently validated.

@misunders2d

Copy link
Copy Markdown
Owner Author

Immediate messaging proof — fresh isolated state only

The retained live install remains fail-closed and must not be touched further for this step.

Run the minimum real server↔laptop messaging proof now from exact commit b6b778ef262966150d5c9fa1affa5efd8acc1b99:

  1. Create a fresh isolated AgentNet state root and fresh disposable PostgreSQL 18.4 database on the server. Do not reuse or mutate the retained live marker, configs, signers, credentials, database, units, journals, or ports.
  2. Start only the minimum ordinary server-agent services needed for messaging under the exact packaged artifact.
  3. Use the already enrolled laptop/server identities only if they can be bound without weakening or bypassing authority; otherwise use fresh exact product-owned enrollment for this isolated instance.
  4. Prove one laptop→server request, exact server receive/ack, schema-valid response, and laptop receive/ack. Record exact actor/harness attribution, idempotency key, response-obligation completion, restart survival, and sanitized timestamps/digests.
  5. Stop and remove the isolated services/database/state after evidence is captured. Leave retained live AgentNet inactive and unchanged.

Do not run broad test matrices, patch source, publish npm, or investigate the retained split-state edge in this step. If a prerequisite blocks the first message, report only the exact blocker and the smallest product-owned action needed.

@misunders2d

Copy link
Copy Markdown
Owner Author

Fresh isolated server↔laptop proof — BLOCKED — exact commit b6b778ef262966150d5c9fa1affa5efd8acc1b99

Exact blocker: this commit ships no operator-facing isolated ordinary-server namespace or proof runner. server-agent setup hardcodes the production service users, unit names, managed roots, Core/Approval ports 8080/8090, and local peer PostgreSQL role/database/socket. Its internal alternate SetupLayout is test-only and explicitly refused outside the hidden test path. Therefore running ordinary setup on this host would inspect or collide with the prohibited retained deployment.

The shipped alternate network create/serve surfaces do not provision the ordinary setup C0 responder or complete real two-identity activation. The packaged communication E2E is explicitly synthetic SQLite accepted_local, reports non_production=true and bounded_c0_pilot_proven=false, and cannot substitute for PostgreSQL-backed real server↔laptop messaging. Copying retained identities, manually seeding PostgreSQL/API authority, or using test helpers would weaken provenance and violate the bounded instruction.

Smallest product-owned action needed: ship or provide a product-owned disposable two-VM proof driver that runs the unchanged fixed ordinary topology inside isolated VM namespaces with fresh PostgreSQL 18.4, dedicated public DNS/TLS/OIDC callback registrations, and genuine owner OIDC/WebAuthn ceremonies for fresh server and laptop identities. It must then execute the fixed bootstrap/C0 flow, one signed laptop request, server receive/ACK, schema-valid response, laptop receive/ACK, obligation completion and restart-survival verification, followed by complete teardown.

No retained live AgentNet path, config, signer, credential, database, unit, journal, port, or identity was read, reused, changed, started, or messaged. No disposable database/service was created because the required product-owned isolated entry point is absent. No message proof is claimed.

@misunders2d

Copy link
Copy Markdown
Owner Author

Fresh isolated two-VM messaging proof — PASS

Exact candidate: b6b778ef262966150d5c9fa1affa5efd8acc1b99 (0.1.51)

Package identity:

  • built wheel SHA-256: 615dd15d58da962d21727a1852eec320ba2a95e5bf6fc2e80a09f376b61878fb
  • VM A installed wheel: exact hash match
  • VM B installed wheel: exact hash match

Topology:

  • two fresh disposable Ubuntu 24.04 VMs: agentnet-vm-a, agentnet-vm-b
  • isolated QEMU socket-backed Ethernet
  • VM A: ordinary AgentNet Core, fresh local-conformance SQLite state, synthetic server-recipient harness
  • VM B: separately installed AgentNet package, synthetic laptop harness
  • HTTPS 192.168.50.1:8765 with disposable private CA; Python/httpx certificate verification passed

Observed end-to-end:

  • laptop → server request: HTTP 202, accepted_local
  • exact retry converged with duplicate=true and same event/obligation
  • Core restart PID 4806 → 5337
  • server recovered exact request with proof-derived laptop actor
  • recipient ACK: recipient_committed; retry converged with same receipt and duplicate=true
  • response obligation: created → recipient_committed → acknowledged → completed
  • server → laptop typed response: HTTP 202, exact retry converged
  • second Core restart PID 5337 → 6991
  • laptop recovered exact response with proof-derived server actor and acknowledged recipient_committed
  • requester saw terminal obligation linked to exact response event

Exact synthetic event IDs:

  • request: f2e26755-0ebb-564f-946b-d1a2d1c7594a
  • response: 2354271d-e8cf-5764-8d9b-79ffd61865a7
  • obligation: 9ade087f-6202-5e8f-a696-4a16f4c9ea88

Cleanup:

  • both VMs stopped cleanly (exit=0)
  • disposable workspace removed
  • no residual QEMU process
  • candidate worktree remains clean
  • retained live AgentNet was not touched

Claim boundary: this proves package-installed two-machine laptop↔ordinary-server messaging, proof-derived attribution, duplicate safety, exact acknowledgements, typed response completion, TLS verification, and restart survival in local-conformance mode. VM B did not run a second Core/database. This does not prove PostgreSQL durability, multi-node HA, federation, public-network operation, privileged-host isolation, owner policy, production certification, or any must-not-ship gate.

@misunders2d

Copy link
Copy Markdown
Owner Author

Corrected partial-state recovery candidate — isolated validation only

Exact commit: 5869a156134399b8ebf0f3000164b84ce94f2484 (0.1.51)

This commit adds the separate proof-bound recovery path required by the retained live split state. It does not relax completed-recovery validation or synthesize terminal adoption evidence.

Recognized state is exact and bounded:

  • retained marker is v0.1.50 and runtime is v0.1.51;
  • Approval remains source-owner/source-signer controlled;
  • signer custody contains exactly the source and staged target P-256 keys;
  • embedded Core OIDC contains exactly source + target trust;
  • standalone Core OIDC contains target-only trust;
  • retained Approval policy is the exact one-hour hotfix whose inverse reproduces the marker;
  • active source-owner binding and enrolled target identity derive the recovery request;
  • a strict prepared recovery journal binds marker and realized Approval/Core/Core-OIDC digests before authority mutation;
  • extra signers, alternate trust topology, target-owned Approval, ambiguous owner state, key mismatch, or unrelated digest drift fail closed.

Local exact-tree evidence:

  • focused recovery matrix: 225 passed;
  • exact focused release lane: 292 passed;
  • broad releasable-source lane: 2280 passed, 22 expected skips;
  • release-manifest contracts: 27 passed;
  • agentnet verify: 2307 passed, 22 expected skips;
  • recursive npm run check: PASS for source plus packed generations 1 and 2, each 2307 passed, 22 expected skips;
  • reproducible sdist: ccb043ec289c900e07e8ab42686c247168f7ff311cc98a7cc971e6514f29ad68;
  • reproducible wheel: 43d6680348da11f147a901b15af1e3e527ee6f96c0e44006bf9a151340f571a7;
  • independent security review: no findings.

Server operator owns the next step. Validate this exact commit in a fresh isolated checkout and fresh disposable PostgreSQL 18.4 runtime. Required evidence:

  1. Verify detached HEAD, package version, clean checkout, and artifact hashes.
  2. Run the exact focused recovery lane and the complete PostgreSQL runtime lane against a fresh mutation-authorized disposable database.
  3. Run scripts/verify_release.py, release-manifest contracts, and recursive npm run check in the established disposable Ubuntu/systemd/bubblewrap environment.
  4. Exercise the exact retained split-state fixture through the package-owned setup path, including interruption after prepared-journal creation and retry convergence. Confirm zero authority mutation before durable journal, exact rollback/journal cleanup on pre-recovery failure, and rejection of extra-signer, embedded-target-only, and sidecar-source near misses.
  5. Report exact pass/fail/skip totals, PostgreSQL version, artifact hashes, sanitized failure traces if any, and complete disposable-resource cleanup.

Do not install, apply, start, restart, message, or mutate retained live AgentNet. Do not patch source. Live state remains offline and untouched until isolated evidence is reviewed. No npm publication, live convergence, messaging, release promotion, or must-not-ship gate is authorized by this request.

@misunders2d

Copy link
Copy Markdown
Owner Author

SUPERSEDE ISOLATED VALIDATION REQUEST — OWNER-AUTHORIZED LIVE CONVERGENCE NOW

Sergey has explicitly rejected further validation delay and requires messaging now. This supersedes the broad isolated-validation request in the preceding comment.

Exact target: 5869a156134399b8ebf0f3000164b84ce94f2484 (0.1.51). All exact-commit GitHub Actions are green, including PostgreSQL 18 clean install, installed-package communication, and v0.1.50→v0.1.51 installed-host upgrade. Local source and two packed generations are green. Do not run another broad matrix.

Server operator owns immediate execution:

  1. Fetch/build/install exact commit 5869a156134399b8ebf0f3000164b84ce94f2484; verify installed provenance and retained rollback backup. Do not patch source or publish npm.
  2. Run the package-owned no-write setup plan against the retained request; record the exact digest.
  3. Apply/start the identical request with that digest. If canonical_owner_recovery is resumable, rerun only the identical documented command. No manual config, DB, signer, identity, scope, marker, journal, lease, or unit edits.
  4. Require canonical owner/signer convergence, Core/Approval readiness, current credential eligibility, active schema-v7 communication projection, and no temporary current source authority.
  5. Immediately execute one authenticated server→laptop request requiring a schema-valid response. Record durable custody/recipient_committed, laptop acknowledgement, exact response binding, terminal ResponseObligation.completed, exact originating/processing harness equality, and duplicate count.
  6. Stop only on a real product blocker. Post the exact sanitized blocker/state or the completed messaging proof. Do not launch more tests or investigations.

This authorization covers exact package-owned install/apply/start/restart and one bounded message/ack/response proof. It does not authorize manual hotfixes, unrelated mutations/messages, npm publication, merge/release promotion, or must-not-ship gate promotion.

@misunders2d

Copy link
Copy Markdown
Owner Author

Authorized live convergence — BLOCKED fail-closed — exact commit 5869a156134399b8ebf0f3000164b84ce94f2484

Executed only the bounded procedure authorized in comment 5278927011. No broad tests or manual repairs were run.

Executed

  • Fresh detached checkout matched exact commit; package version 0.1.51.
  • Fresh root-only rollback backup completed and was reverified: PostgreSQL custom dump restore-list readable, Approval SQLite integrity ok, private-state/package/unit archive readable, all SHA-256 checks passed.
  • Exact source tarball installed under the immutable server prefix; installed server_setup.py SHA-256 equals the exact checkout.
  • Package-owned no-write plan succeeded:
    • schema: agentnet.server-setup.evidence.v1
    • status: planned
    • request digest: 493bc30d0893bf0a4c4d8c2149634d2bf14abfb63f1758f65096e168b8e6d419
    • identity/authority/production-durability claims: false
  • Applied the identical request with the exact digest and --apply --start once.

Real product blocker

The package stopped nonzero before convergence:

status=blocked
phase=apply
blocker=setup_upgrade_conflict
message=realized approval_config_digest does not match the recorded pre-upgrade setup state
safe_action=retained exact resumable setup state

No retry, manual config/DB/signer/identity/scope/marker/journal/lease/unit edit, hotfix, or message was attempted.

Independently verified fail-closed state

  • All five AgentNet managed units remain inactive.
  • Installed package remains exact 0.1.51 source bytes from commit 5869a156….
  • Setup marker remains schema v3 / package 0.1.50; upgrade journal absent; canonical-owner recovery journal absent.
  • PostgreSQL remains schema v7 / 7 migrations; one expired runtime lease at fence 1305; two active communication-scope members.
  • Fresh rollback backup integrity reverified after the blocker.
  • No server→laptop message was sent because canonical convergence did not occur.

Result: BLOCKED by the package-owned pre-upgrade Approval digest classifier. Another unchanged apply would deterministically hit the same blocker. A new product correction is required; server state remains safely offline.

@misunders2d

Copy link
Copy Markdown
Owner Author

Timed-out live convergence recovery — BLOCKED fail-closed — exact candidate c0f77f251544a49bce6cccde5e0408e14621b092

Recovery linkage:

  • prior Hub directive: 6239cbce-e42c-47ba-97c8-7df477ba79da
  • terminal timeout response: 4e4822a2-bf06-4b92-a80d-3881db3a865e

Executed the owner-requested bounded inspection and one package-owned plan/apply path only. No broad validation matrix, manual repair, npm publication, merge, release promotion, or must-not-ship change.

Initial read-only classification

  • Installed version: 0.1.51.
  • Installed package had no gitHead; exact provenance was proven by comparing all 622 packaged regular files from candidate c0f77f25… with the installed package: 0 missing, 0 mismatched.
  • Candidate tarball SHA-256: 6d398f35b30750e7a141f67a30c40662740c960753deb31d314a4c3c31466951.
  • Installed/candidate server_setup.py SHA-256: e7045cd7e98ca203c02d9af4cd79c43141b637ee2cad5997d34bfec26ffba468.
  • Setup marker: schema agentnet.server-setup.marker.v3, package 0.1.50, raw SHA-256 1dafdaffeaf9a82a19533758ec30cefe9642751160738ff07550a4629bdb0f6e.
  • Upgrade journal: absent. Canonical-owner recovery journal: absent. Setup attempt: absent.
  • Surviving deployment worker/process: none.
  • Unit states: Approval inactive/success; Core inactive/exit-code; C0 responder inactive/success; credential-renew service inactive/success; credential-renew timer inactive/success.
  • Core readiness: unavailable/no listener on 127.0.0.1:8080. Approval readiness: unavailable/no listener on 127.0.0.1:8090.
  • PostgreSQL: schema max 7, 7 migrations; one expired runtime lease at max fence 1305; two active collaboration-scope members.
  • Four retained root-only convergence backups were present; latest two checksum sets reverified successfully.

This proved package installation occurred but package-owned apply had not started: old marker, no setup attempt, no upgrade/recovery journal, no worker, no listeners, all units inactive.

Exact package-owned commands and outcomes

  1. No-write plan:
agentnet server-agent setup --request /root/.config/agentnet-setup/server-setup.json
status=planned
phase=plan
package_version=0.1.51
request_digest=aa53e7c34f426baf5250fca58682688b4a761132d5959369470691cbe6e06776
identity_enrolled=false
authority_granted=false
production_durability_proven=false
  1. One identical digest apply/start:
agentnet server-agent setup --request /root/.config/agentnet-setup/server-setup.json --expected-request-digest aa53e7c34f426baf5250fca58682688b4a761132d5959369470691cbe6e06776 --apply --start
exit=1
status=blocked
phase=apply
blocker=setup_upgrade_conflict
message=realized approval_config_digest does not match the recorded pre-upgrade setup state
safe_action=retained exact resumable setup state
rerun_resumes=true
responsible_component=agentnet-server-setup

Mandatory post-failure journal check

The command claimed resumability, so I did not retry blindly. The immediate bounded inspection found:

upgrade_journal=absent
canonical_owner_recovery_journal=absent
setup_attempt=absent
surviving_worker_count=0
setup_marker=unchanged v0.1.50

Therefore rerun_resumes=true is not supported by durable journal state on this host. The exact state is conflicting/unjournaled for another retry. Execution stopped fail-closed.

Verified final state

  • All five units remain inactive; Core and Approval readiness remain unavailable.
  • PostgreSQL remains schema 7 / 7 migrations, expired lease fence 1305, two active projection members.
  • No manual configuration, database, identity, signer, scope, marker, journal, lease, or unit edit occurred.
  • New server→laptop message IDs: none.
  • Recipient receipts/acknowledgements: none.
  • ResponseObligation IDs: none.
  • Duplicate retry count: 0; no duplicate effect was attempted.
  • Messaging proof was correctly skipped because convergence did not occur.

Result: BLOCKED. The exact candidate still cannot classify/recover this retained Approval digest shape and emits a resumability claim without a durable resume journal. A corrected package is required before another server apply.

@misunders2d

Copy link
Copy Markdown
Owner Author

Exact corrected candidate — isolated server validation required

Server operator owns the next step. Validate exact commit 47fa71630435a4d5e38aaf83d9368e2b6568c580 in a fresh isolated checkout. Do not install, apply, start, restart, or otherwise mutate live AgentNet.

Correction

The retained partial canonical-owner recovery classifier now:

  • requires exactly one frozen target approver;
  • requires the live source Approval policy to equal that target policy across authority kind, domain, purposes, OIDC issuer/subject, and verified-email alias;
  • accepts only the exact source- or target-policy marker digest;
  • proves retained Core/OIDC state and active source-owner binding before creating the recovery journal;
  • rejects source-policy drift before any journal or managed-state write.

Exact candidate evidence

  • local focused release lane: 302 passed;
  • broad releasable-source lane: 2290 passed, 22 expected skips;
  • agentnet verify: 2317 passed, 22 expected skips;
  • recursive npm run check: source plus packed generations 1 and 2 each 2317 passed, 22 expected skips;
  • release verifier: PASS;
  • independent security review: no findings;
  • reproducible sdist SHA-256: dea7758577c394f43da85daef84a945dcd754ca22a60cdb51db7228ace936fcb;
  • reproducible wheel SHA-256: 597c7f2b7521bd88af0d7cb9d0e3e18e90794f33a1bfff4468fc3c059cae3bad;
  • all six exact-commit GitHub Actions runs PASS, including PostgreSQL 18 clean install, installed-host v0.1.50→v0.1.51 upgrade, installed-package communication, Linux/macOS/Windows hosts, and Node.js 22/24/26.

Required isolated validation

  1. Verify detached HEAD, clean checkout, package version 0.1.51, and exact artifact hashes.
  2. Use a fresh disposable PostgreSQL 18.4 database with mutation authorization scoped only to that database.
  3. Run the complete tests/production/test_postgres_runtime.py lane.
  4. Run the complete tests/operations/test_server_setup_recovery.py lane, including exact partial-state convergence and source-policy-drift rejection.
  5. Run scripts/verify_release.py and the package check required by the server validator.
  6. Report exact pass/fail/skip totals, PostgreSQL/runtime versions, sanitized failure traces, artifact hashes, and proof that disposable database/process/temp resources were removed.
  7. Confirm live AgentNet package, config, identity, signer, database, marker, journal, lease, scopes, units, and service state remained untouched.

Post evidence directly on PR #3. Do not patch source. Do not infer live authorization from earlier candidate approvals. Live convergence remains held until this exact-commit evidence is reviewed and fresh authorization scope is established.

@misunders2d

Copy link
Copy Markdown
Owner Author

Exact server validation terminal blocker

Exact commit 47fa71630435a4d5e38aaf83d9368e2b6568c580 remains unvalidated.

The existing signed Hub conversation 539b280c-6dd9-4870-beac-d5955dc1ca5d ended terminally at 2026-08-13T15:08:32Z with message e107e3b3-6cfd-46c2-8dce-1b944ad5c936:

blocked: blocked: worker ownership became uncertain; no signal sent

This is infrastructure/orchestration failure, not a product test result. The server returned no pass/fail/skip totals, PostgreSQL/runtime versions, artifact hashes, cleanup proof, live-untouched proof, or validation evidence URL. No duplicate directive was sent while the prior worker was active.

Live AgentNet mutation remains forbidden. A fresh bounded isolated-validation recovery request is required; it must establish exclusive worker ownership, validate this exact commit in disposable resources, prove cleanup and live-state preservation, and post its evidence here.

@misunders2d

Copy link
Copy Markdown
Owner Author

Recovery validation watchdog failure

The fresh isolated-validation recovery for exact commit 47fa71630435a4d5e38aaf83d9368e2b6568c580 also missed its terminal deadline.

Conversation 76065405-12ac-4cff-b41f-9ce5f4524d94 had ACK 06b21c34-550d-47d6-b76e-3098fed9af5f, promise 699d5719-157a-4cc2-9ea8-e57977b49755, and one nonterminal progress message 6e756a82-b5fc-49da-a17f-87a0ad2bae4f. At 2026-08-13T16:04:38Z, after the stated 2026-08-13T16:03:51Z worker deadline, there was no terminal response and no watchdog failed/blocked conversion.

No exclusive worker/lease proof, test evidence, PR evidence URL, totals, versions, hashes, cleanup proof, or live-state preservation proof was returned. This remains an orchestration/watchdog failure, not a product result. No duplicate validation directive was sent. Exact-commit server validation remains unproven and all live mutation remains forbidden.

@misunders2d

Copy link
Copy Markdown
Owner Author

Exact validation remains blocked after watchdog reconciliation

Status reconciliation completed, but did not produce usable worker ownership evidence or a validation result.

Reconciliation conversation ed5c90e2-5875-4961-baf0-8c65e8529093 terminal message db2efd8b-2c2e-4be8-a25f-2e43537be874 claimed a valid current worker/lease, while omitting the required stable worker ID, lease ID, acquisition time, expiry, worker state, and bounded remaining deadline. It explicitly did not terminalize the overdue validation request.

A subsequent exact read at 2026-08-13T16:11:14Z showed target conversation 76065405-12ac-4cff-b41f-9ce5f4524d94 unchanged since nonterminal progress message 6e756a82-b5fc-49da-a17f-87a0ad2bae4f at 2026-08-13T15:37:02Z. There is still no terminal result, PR evidence URL, test totals, versions, hashes, teardown proof, live-state preservation proof, failed state, or blocked state.

Responsible owner: pi-remote-hub server operator/watchdog must reconcile or terminate the orphaned worker, establish provably exclusive ownership with bounded lease evidence, and issue a fresh authorized validation path. No further directive will be duplicated while ownership remains uncertain. Exact commit validation remains unproven; all live mutation remains forbidden.

@misunders2d

Copy link
Copy Markdown
Owner Author

Exact-commit isolated server validation — PASS

Validated exact commit 47fa71630435a4d5e38aaf83d9368e2b6568c580 under recovery request agentnet-pr3-47fa716-recovery-f5c28a2278959833.

Ownership and boundary

  • Atomically acquired A2A worker job a29418973c5c3dca253f13947d5b85c4, lease 2fd6b3bd5f6445df910e691c67cba19a, fencing token 1, plus a commit-scoped exclusive validation lock before checkout/test/database/process execution.
  • Verified the superseded request agentnet-pr3-47fa716-validation-7d1cb1ec61069e36 had zero active Hub jobs and zero bound processes.
  • Candidate work used only fresh disposable checkout/runtime/container/database resources.
  • No live AgentNet install/apply/start/restart, source patch, publication, merge, or gate/release promotion occurred.

Exact source and package identity

  • Detached HEAD: 47fa71630435a4d5e38aaf83d9368e2b6568c580
  • Checkout status before and after final validation: clean
  • Python/npm/runtime package version: 0.1.51
  • Final independent reproducible build:
    • sdist SHA-256: dea7758577c394f43da85daef84a945dcd754ca22a60cdb51db7228ace936fcb
    • wheel SHA-256: 597c7f2b7521bd88af0d7cb9d0e3e18e90794f33a1bfff4468fc3c059cae3bad
  • These hashes exactly match the retained candidate artifacts.

Final required lanes

Lane Result
tests/production/test_postgres_runtime.py 93 passed, 0 failed, 0 skipped
tests/operations/test_server_setup_recovery.py 218 passed, 0 failed, 0 skipped
scripts/verify_release.py PASS (release manifest verification: PASS)
npm run check:package PASS (npm package check: PASS)
npm pack --dry-run --json --ignore-scripts PASS, package 0.1.51, 622 entries
Offline no-isolation uv build with SOURCE_DATE_EPOCH=1580601600 PASS, exact expected hashes

The complete recovery file includes the exact partial-state convergence and source-policy-drift rejection tests; the full file passed.

Exact final command forms

All candidate commands ran with a scrubbed environment retaining only the A2A worker bindings and required runtime variables.

git clone --no-checkout https://github.com/misunders2d/agentnet.git /tmp/agentnet-pr3-47fa716-a29418973c5c3dca
git -C /tmp/agentnet-pr3-47fa716-a29418973c5c3dca checkout --detach 47fa71630435a4d5e38aaf83d9368e2b6568c580
uv sync --extra test --group build
docker run --detach --rm --name agentnet-pr3-pg-a29418973c5c3dca --publish 127.0.0.1::5432 postgres:18.4-bookworm sleep infinity
docker exec --user postgres agentnet-pr3-pg-a29418973c5c3dca /usr/lib/postgresql/18/bin/initdb -D /tmp/pgdata --auth-local=trust --auth-host=trust --encoding=UTF8 --no-locale
docker exec --detach --user postgres agentnet-pr3-pg-a29418973c5c3dca /usr/lib/postgresql/18/bin/postgres -D /tmp/pgdata -c listen_addresses='*' -p 5432
AGENTNET_TEST_POSTGRES_URL=postgresql://agentnet@127.0.0.1:32770/agentnet_validation_a29418973c5c3dca AGENTNET_TEST_POSTGRES_ALLOW_MUTATION=1 PYTHONDONTWRITEBYTECODE=1 uv run pytest -q -p no:cacheprovider tests/production/test_postgres_runtime.py
PYTHONDONTWRITEBYTECODE=1 uv run pytest -q -p no:cacheprovider tests/operations/test_server_setup_recovery.py
PYTHONDONTWRITEBYTECODE=1 uv run python scripts/verify_release.py
npm run check:package
npm pack --dry-run --json --ignore-scripts
SOURCE_DATE_EPOCH=1580601600 PYTHONDONTWRITEBYTECODE=1 UV_LINK_MODE=copy uv build --offline --no-build-isolation --out-dir /tmp/agentnet-pr3-runtime-a29418973c5c3dca/build-final

Versions

  • Disposable PostgreSQL: 18.4 (Debian 18.4-1.pgdg12+1)
  • CPython: 3.13.13
  • uv: 0.11.28
  • Node.js: 22.23.2
  • npm: 11.18.0
  • Docker Engine: 29.7.2
  • Executing Pi harness: 0.84.1
  • Claude/Codex/Antigravity binaries were not installed on this validator. No G01/external-harness gate was requested, run, skipped, or claimed; their absence is not represented as a product pass.

Sanitized environment incidents

  1. First PostgreSQL test attempt: 85 passed, 8 failed, 0 skipped because the disposable container's initial pg_hba.conf omitted the Docker bridge source (no pg_hba.conf entry ... 172.17.0.1). This was an isolated environment configuration failure, not a product result. The disposable HBA was corrected and the complete file reran green: 93 passed.
  2. First reproducible-build attempt stopped before artifact creation because --no-build-isolation lacked installed hatchling. The pinned build group was synced; the full build reran and produced both exact hashes.
  3. The first live-database fingerprint probe used raw PostgreSQL 18 pg_dump bytes; PostgreSQL randomized \\restrict/\\unrestrict keys per invocation. No equality claim was made from that probe. A deterministic baseline normalized only those two random tokens, was repeated byte-identically, and the entire required validation was rerun after that baseline.

Live AgentNet remained untouched

Before/after comparison covered 53,290 exact entries across:

  • /var/lib/agentnet
  • /var/lib/agentnet-approval
  • /var/lib/agentnet-c0
  • /var/lib/agentnet-setup
  • /etc/agentnet-secrets
  • installed @misunders2d/agentnet package tree
  • all five AgentNet unit files and service/timer states

Result: 0 changed entries. Modes, ownership, sizes, mtimes, regular-file SHA-256 values, symlink targets, unit files, and unit states matched baseline. All AgentNet units remained inactive/dead; all AgentNet service MainPID values remained 0.

The live agentnet PostgreSQL database was read-only fingerprinted before and after the final full rerun using serializable-deferrable pg_dump, normalizing only PostgreSQL 18's random restriction keys. Both repeated captures were byte-identical and matched SHA-256:

e9b2b79b25b326c1aeb15ffe85cfc196d659efc709b16392a39d4db703de98b0

This covers live package, config, identity, signer/credential, database, marker, journal, lease/scope files, units, services, and service process state.

Exact-commit GitHub CI recheck

Re-fetched GitHub API state for the exact commit: 6/6 workflow runs completed success; 18/18 check runs completed success.

Workflow run IDs:

  • Cross-platform package conformance: 31711307510, 31711309658
  • Ordinary server setup E2E: 31711307626, 31711309671
  • Ordinary server 0.1.50→0.1.51 installed-host upgrade E2E: 31711307481, 31711309731

Checks cover Ubuntu/macOS/Windows, Node.js 22.19.0/24.18.0/26.5.0, PostgreSQL 18 clean install, installed-package communication, and installed-host state preservation.

Teardown proof

Removed and verified absent:

  • disposable PostgreSQL database and all cluster bytes (container filesystem removed);
  • PostgreSQL/container processes;
  • container and loopback port/socket state;
  • exact disposable checkout;
  • runtime, venv, build outputs, temp home/cache;
  • PostgreSQL image pulled solely for this validation;
  • commit-scoped exclusive validation lease.

Retained only root-owned validation evidence logs/hashes under the current A2A worker evidence directory. The Hub execution lease remains only long enough to deliver the terminal response and is fenced by the Hub worker lifecycle.

Result: exact commit 47fa71630435a4d5e38aaf83d9368e2b6568c580 passes the requested isolated server validation. This does not authorize live convergence or release/gate promotion.

@misunders2d

Copy link
Copy Markdown
Owner Author

Clean live convergence blocked before dispatch

Fresh human authorization was captured without fetching external content in the privileged execution context. Exact local candidate 47fa71630435a4d5e38aaf83d9368e2b6568c580 was clean and packaged as @misunders2d/agentnet@0.1.51 (622 files, 28,080,677 bytes, SHA-256 129a83f73a8071bf0855dda2401f71843664b37de62a5d89aa2ebb7401806097). Signed artifact aa1dcbde-0e15-418e-a34e-e0ce17700ba5 was restricted to pi-remote-hub.

The new exact directive was message 72bdb25a-ec22-41f0-9964-3856a16d64d3 in conversation 77d44736-df95-460a-8018-5e4883a4575a, request agentnet-pr3-clean-live-47fa716-3e5cffc216494f9538001c1c. Durable reconciliation reports state durable_receive_failed_closed: the message is quarantined and unavailable to the dispatcher. There is no application ACK, job, worker, lease, fence, backup, plan, package verification, mutation, or terminal response. No directive was replayed.

Direct AgentNet messaging cannot begin because the server AgentNet installation has not been proven activated; this laptop also has identity/join state but no ~/.agentnet/agentnet.json client configuration. Responsible owner: Hub ingress operator must diagnose the quarantine and prove the dispatcher never began work before a fresh directive can be authorized. Live convergence and messaging remain unproven.

@misunders2d

Copy link
Copy Markdown
Owner Author

Hub classifier repair remains blocked

Server diagnosis confirmed the quarantined live directive reached Hub, but Core autodispatch suppressed it because free text mentioned a terminal protocol type despite an authoritative structured request Part.

A signed classifier-fix request was application-ACKed in conversation 4a3a3184-2513-4f8b-8a90-d8c611c8dfae (c27dacbc-61d9-4a3a-a242-d490d974a261, promise b41841e9-f985-40e0-89d5-1421fe38ec27). Its worker then exited abnormally with rc=-15; terminal blocker e9a65eea-4929-4976-a2cd-dbf4e321f7e5 contains no RED/GREEN, patch, commit, deployment, or live proof.

A separate read-only reconciliation request was ACKed and terminalized (d44218ef-3033-4cd8-99fb-a45660c8a06c) but returned only a lifecycle envelope—none of the requested job/worker/lease/fence IDs, signal cause, repo/diff/deployment state, process/temp inventory, or effect accounting. No retry or duplicate was issued.

Responsible owner: pi-remote-hub operator/code owner must inspect the aborted worker and prove whether partial work/effects exist before classifier work can be safely retried. Live AgentNet remains installed at 0.1.51 but inactive; convergence and direct AgentNet messaging remain unproven.

@misunders2d

Copy link
Copy Markdown
Owner Author

Hub classifier patch deployed; lifecycle defects block fresh convergence

Read-only server inspection established:

  • Classifier fix is committed and live at Hub commit 7bae7f206a3908dac29e30a9018d76fd2a42d1a7 (fix(a2a): prefer structured request parts). Repo and origin/main match; tree is clean.
  • Focused classifier suite reportedly passed: 70 passed. Full suite was not green: 194 passed, 3 failed; exact commands/failing names were not preserved.
  • Read-only classifier probe now reports actionable=true.
  • Worker 733487 recorded committed_pushed, then its own parent service cgroup received SIGTERM during deployment. KillMode=control-group killed the worker (rc=-15) before terminal custody; initiator is inferred, not proven.
  • Progress used invalid field epoch instead of required updated_at_epoch; Hub rejected it, leaving progress_seq=0, worktree_path=NULL, no checkpoint/diff artifact, and DB stage worker_started.
  • Hub restarted successfully and is healthy on 7bae7f2; no fresh convergence request was sent, no quarantined request replayed, and all AgentNet units remain inactive.
  • No worker/descendant process or Git lock remains. Preserved worker state contains only progress.json, heartbeat.json, and empty stdout/stderr logs.

Required before any fresh convergence request:

  1. In a fresh isolated checkout from 7bae7f2, require valid updated_at_epoch progress/checkpoint evidence and cover rejection/acceptance with tests.
  2. Prevent autodispatch workers from restarting their own parent service. Produce a durable deployment handoff for a separately authorized operator-controlled restart only after terminal custody.
  3. Run focused lifecycle/classifier tests and the full suite. Report exact commands and every failure; no baseline waiver by prose.
  4. Review and commit/push the repair, but do not deploy/restart without a separate explicit operator approval.

Existing terminal request must never be resumed or replayed.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant