{"version": 2, "width": 100, "height": 45, "timestamp": 1790361024, "title": "Indeterminate effect demo: cold clone, Debian 12 VM", "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.010112, "o", "Building Docket from source (the first build takes a few minutes)...\r\n"]
[50.901211, "o", "Built in 51s.\r\n\r\n"]
[51.029614, "o", "Docket, which keeps custody of each attempt and its result: docket 0.1.0 9ebdc5e30705250b062f14239da5418dc5c82a61\r\nAuthorization signer: stand-in, reproduces AG's published test vector (sha256 b715ddcf1d04...)\r\nProvider: stand-in payment service on 127.0.0.1:34551, ledger provider/ledger.jsonl\r\nReceipts: examples/indeterminate-effect/out/20260925T183115Z\r\n"]
[51.029631, "o", "\r\n=== Run A: the reply goes missing ===\r\n"]
[51.494686, "o", "[  0.6s] 1. Effect attempted\r\n          An agent is asked to: Refund $40.00 for order 1042.\r\n          The request must apply at the provider before 18:31:24 UTC or not at all.\r\n          A signed authorization for exactly this request goes to Docket, which sends it once.\r\n"]
[51.702482, "o", "[  0.8s] 2. Outcome ambiguous\r\n          The worker sent the request; the connection closed with no reply after 0.0s\r\n          (RemoteDisconnected). It cannot tell whether the refund happened,\r\n          and says so: outcome \"indeterminate\".\r\n[  0.8s] 3. Agent says success\r\n          agent: \"Done. Refund $40.00 for order 1042: completed successfully.\"\r\n          Its evidence: command exited 0.\r\n"]
[51.707702, "o", "[  0.8s] 4. System: INDETERMINATE\r\n          Docket's record for this attempt: INDETERMINATE.\r\n          Settlement: none. Not success, not failure.\r\n          The exit code 0 the agent saw only meant that Docket took custody.\r\n          Sending the same authorization again returns the same attempt.\r\n          The worker has sent 1 request(s) in total.\r\n"]
[51.86908, "o", "[  0.9s] 5. Independent evidence arrives\r\n          A separate observer asks the provider directly at 18:31:16 UTC.\r\n          provider: this exact request is COMMITTED, as refund rf_a0f76303be7b717c at 18:31:16 UTC.\r\n          Docket now says: SETTLED.\r\n"]
[51.87126, "o", "[  0.9s] 6. Final disposition\r\n          Docket settles the attempt as SUCCESS.\r\n          It cites the observer's document sha256:91a77b2407d13c28... as its receipt,\r\n          and keeps the earlier INDETERMINATE evidence sha256:988028ef5966e3fb...\r\n          (Behind the scenes, from the network log:\r\n           the request reached the provider, which answered 201 Created;\r\n           the reply was dropped.)\r\n"]
[51.871309, "o", "\r\n=== Run B: the request goes missing ===\r\n"]
[52.004718, "o", "[  1.1s] 1. Effect attempted\r\n          An agent is asked to: Refund $25.00 for order 1043.\r\n          The request must apply at the provider before 18:31:24 UTC or not at all.\r\n          A signed authorization for exactly this request goes to Docket, which sends it once.\r\n"]
[52.20352, "o", "[  1.3s] 2. Outcome ambiguous\r\n          The worker sent the request; the connection closed with no reply after 0.0s\r\n          (RemoteDisconnected). It cannot tell whether the refund happened,\r\n          and says so: outcome \"indeterminate\".\r\n[  1.3s] 3. Agent says success\r\n          agent: \"Done. Refund $25.00 for order 1043: completed successfully.\"\r\n          Its evidence: command exited 0.\r\n"]
[52.208629, "o", "[  1.3s] 4. System: INDETERMINATE\r\n          Docket's record for this attempt: INDETERMINATE.\r\n          Settlement: none. Not success, not failure.\r\n          The exit code 0 the agent saw only meant that Docket took custody.\r\n          Sending the same authorization again returns the same attempt.\r\n          The worker has sent 1 request(s) in total.\r\n"]
[52.334993, "o", "[  1.4s] 5. Independent evidence (not yet enough)\r\n          A separate observer asks the provider directly at 18:31:17 UTC.\r\n          provider: no such refund yet, but the request could still apply until 18:31:24 UTC.\r\n          Docket now says: INDETERMINATE.\r\n          Waiting 8.8s for the deadline to pass, then asking again.\r\n"]
[61.272911, "o", "[ 10.3s] 5. Independent evidence arrives\r\n          A separate observer asks the provider directly at 18:31:26 UTC.\r\n          provider: no such refund, and the deadline 18:31:24 UTC has passed, so it can never apply.\r\n          Docket now says: SETTLED.\r\n"]
[61.275337, "o", "[ 10.3s] 6. Final disposition\r\n          Docket settles the attempt as FAILURE.\r\n          It cites the observer's document sha256:52c43a73d5bb2f20... as its receipt,\r\n          and keeps the earlier INDETERMINATE evidence sha256:ef0f01737dd99b06...\r\n"]
[61.275342, "o", "          (Behind the scenes, from the network log:\r\n           the request was dropped before it reached the provider.)\r\n"]
[61.27561, "o", "\r\n=== Summary ===\r\nrun             agent said            Docket at first   Docket at the end\r\nA-lost-reply    done (exit 0)         indeterminate     success\r\nB-lost-request  done (exit 0)         indeterminate     failure\r\nThe agent said \"done\" both times. The final answers differ, and each one follows\r\nwhat the provider's own records show, not what the agent said.\r\n"]
[61.275631, "o", "Check it yourself: python3 examples/indeterminate-effect/check.py examples/indeterminate-effect/out/20260925T183115Z\r\n"]
[61.282795, "o", "\r\nIndependent check of the retained records:\r\n"]
[61.306897, "o", "\r\nA-lost-reply\r\n"]
[61.311053, "o", "  ok    authorization signature verifies against the trusted demo key\r\n  ok    authorization identity recomputes (ag.governed-loop.issuance/v2)\r\n  ok    authorization names exactly this refund plan\r\n"]
[61.311187, "o", "  ok    Docket's attempt and marker identities recompute from the authorization\r\n"]
[61.311205, "o", "  ok    re-sending the authorization returned the same attempt\r\n"]
[61.311245, "o", "  ok    agent claimed success because its command exited 0\r\n"]
[61.311316, "o", "  ok    Docket's first disposition: indeterminate, no settlement\r\n"]
[61.311618, "o", "  ok    the worker sent once and holds a no-reply record\r\n"]
[61.311656, "o", "  ok    Docket's indeterminate evidence is the worker's no-reply record\r\n  ok    indeterminate reconciliation digest recomputes\r\n"]
[61.311701, "o", "  ok    the no-reply record is for this exact provider request\r\n"]
[61.311757, "o", "  ok    provider ledger entry is exactly this request\r\n"]
[61.311789, "o", "  ok    provider received this request 1 time(s) (never twice)\r\n        from the provider's records: success (the ledger has refund rf_a0f76303be7b717c)\r\n"]
[61.311921, "o", "  ok    observation 91a77b2407d1 is intact\r\n  ok    observation 91a77b2407d1 asked about exactly this request\r\n"]
[61.311935, "o", "  ok    observation 91a77b2407d1 contains nothing from the agent's claim or the worker's journal\r\n  ok    observation 91a77b2407d1 agrees with the provider ledger (committed)\r\n"]
[61.312116, "o", "  ok    Docket's final disposition (success) equals the re-derived one (success)\r\n  ok    the settlement's receipt is an observer document, not the worker's or the agent's\r\n  ok    settlement digest recomputes\r\n  ok    the earlier indeterminate evidence is retained\r\n  ok    order: agent's claim, then the observer's lookup, then the settlement\r\n"]
[61.312181, "o", "  ok    the executor Docket ran is this repository's bin/refund-executor\r\n"]
[61.314052, "o", "  ok    Docket's store, re-read now, equals the retained record\r\n        context only (not used above): network log says reply-dropped\r\n"]
[61.314059, "o", "\r\nB-lost-request\r\n"]
[61.318045, "o", "  ok    authorization signature verifies against the trusted demo key\r\n"]
[61.318095, "o", "  ok    authorization identity recomputes (ag.governed-loop.issuance/v2)\r\n  ok    authorization names exactly this refund plan\r\n"]
[61.318211, "o", "  ok    Docket's attempt and marker identities recompute from the authorization\r\n"]
[61.31822, "o", "  ok    re-sending the authorization returned the same attempt\r\n"]
[61.318268, "o", "  ok    agent claimed success because its command exited 0\r\n"]
[61.318317, "o", "  ok    Docket's first disposition: indeterminate, no settlement\r\n"]
[61.318503, "o", "  ok    the worker sent once and holds a no-reply record\r\n  ok    Docket's indeterminate evidence is the worker's no-reply record\r\n  ok    indeterminate reconciliation digest recomputes\r\n"]
[61.318535, "o", "  ok    the no-reply record is for this exact provider request\r\n"]
[61.318633, "o", "  ok    provider received this request 0 time(s) (never twice)\r\n        from the provider's records: failure (no such refund in the ledger; deadline passed before the last lookup)\r\n"]
[61.3187, "o", "  ok    observation 52c43a73d5bb is intact\r\n"]
[61.31872, "o", "  ok    observation ae204a9da8dd is intact\r\n"]
[61.318736, "o", "  ok    observation 52c43a73d5bb asked about exactly this request\r\n"]
[61.318765, "o", "  ok    observation 52c43a73d5bb contains nothing from the agent's claim or the worker's journal\r\n  ok    observation 52c43a73d5bb agrees with the provider ledger (absent)\r\n"]
[61.318788, "o", "  ok    observation ae204a9da8dd asked about exactly this request\r\n  ok    observation ae204a9da8dd contains nothing from the agent's claim or the worker's journal\r\n  ok    observation ae204a9da8dd agrees with the provider ledger (absent)\r\n"]
[61.318914, "o", "  ok    reconcile-1.json: evidence that the refund could still apply left the attempt indeterminate\r\n"]
[61.318918, "o", "  ok    Docket's final disposition (failure) equals the re-derived one (failure)\r\n  ok    the settlement's receipt is an observer document, not the worker's or the agent's\r\n"]
[61.31893, "o", "  ok    settlement digest recomputes\r\n  ok    the earlier indeterminate evidence is retained\r\n  ok    order: agent's claim, then the observer's lookup, then the settlement\r\n"]
[61.31901, "o", "  ok    the executor Docket ran is this repository's bin/refund-executor\r\n"]
[61.320926, "o", "  ok    Docket's store, re-read now, equals the retained record\r\n        context only (not used above): network log says request-dropped\r\n\r\nacross runs\r\n  ok    the agent said done both times; the final dispositions differ (success, failure)\r\n\r\nPASS: 0 failed check(s)\r\n"]
