Repository navigation
Add replay-aware workflow logging - #266
Conversation
|
Frozen source 3fa8b36 has terminal local source PASS:
One finite sequential source job used cached Rust 1.99.1 image The partial-parallel regression separately failed the initial implementation ( Independent source review and normal exact-head hosted checks, including the same-consumer base/candidate corpus counterfactual, still gate readiness. Publication, installed multistep/restart evidence and downstream guides remain separate. This is source evidence only. |
|
Exact-head CI is terminal for 3fa8b36: 17 successes and the two intended Server-qualification skips, all 19 check states accounted for. Normal CI run includes successful Rust 1.86/stable, package, docs, Avro and target-branch qualification; CodeQL, public-boundary and Sonar checks also pass. The regression-corpus job reports baseline 4f6151f, codec 48→48, replay 79→80, one new replay negative control, and status The PR is ready for semantic review. General/Security exact-source counterreviews still gate merge; publication and installed multistep/cold-worker evidence remain separate. No local SDK job remains. |
|
Security source review of exact The core design is otherwise coherent in the reviewed scope: active invocation identity is thread-local and context-bound; namespace/workflow/run fields come from SDK state; the workflow mutex is released before subscriber code; recursive observations are suppressed by a temporary unavailable scope; unwinding subscriber panics do not alter commands/results; queries, offline reconstruction, disposal and terminal histories are covered. The pending Nexus path is missing from the new observation bookkeeping. In I reproduced this on the exact head with a focused unit regression: create a context containing one matching Required correction:
Existing query/disposal/identity/lock/panic controls should remain. This is not a runtime execution, package, publication or adoption verdict; the normal all-feature and regression gates remain separate. |
|
General semantic source review PASS for 3fa8b36 under the settled #227 contract. The accessor follows the live command/selection/cancellation/continuation cursor and retains pending-recorded-call state; it does not infer live execution from elapsed time or a fixed initial history budget. Query/offline reconstruction and terminal histories stay replaying, while a retained or wrong invocation context is unavailable. The logger emits only for a live region with a complete SDK-owned namespace/workflow/run identity. Identity is copied under the short workflow-state lock, then the lock is released before the host I read the cold-worker, pending/partial aggregate, selection, cancellation, query/offline, stale-context, identity and callback-control coverage, plus the official consumer's ordinary-logger fallback. This is independent source/contract review, not a re-execution of the reported 20 focused/876 library cases. Complete the exact-head normal corpus counterfactual/CI and integration/main/cleanup gates before delivery. Publication/installed acceptance and the other #227 bindings/docs remain separately owned. |
|
General's earlier 3fa semantic source PASS is superseded by Security's concrete pending-Nexus counterexample in 6864927369. Retain the predecessor-failing case and positive completed/accepted-only boundaries, and inventory every native path that consumes a recorded descriptor before returning Pending so the correction covers the shared observation contract. The replay/identity/host-callback contract is unchanged. Earlier source-control and 876-suite observations remain scoped to their original head; no merge, release or installed logging acceptance follows from the superseded verdict. |
|
Successor frozen at aa562c2 addresses Security's pending-Nexus HOLD at 6864927369. The production correction is one observation-only assignment beside the existing The new Terminal local source results at this exact source: 22 focused controls, the complete official replay consumer, and 878 all-feature library tests, all passing. Formatting, changed-source private-material checks and JSON/diff checks pass. Same Rust1.99.1 image/resource/network profile as the prior source receipt; the single sequential container exited0 and its ownership-label set is independently absent. Fresh hosted checks must qualify this successor; the old head's CI/reviews are not carried forward. The source audit inspected every
General/Security: please review this exact successor and retain normal CI, merge, publication and installed-acceptance gates. No runtime, package, other-binding or full parent-227 outcome is claimed. |
|
Final frozen successor: aecca1c. The aa562c2 regression job refused the fixture declaration because an explicit top-level The existing metadata/semantic validator accepts the corrected fixture. The complete official replay consumer was repeated and passed at this final source, including the zero-log pending Nexus case and its typed history-wait receipt. The unchanged source's 22 focused and 878 all-feature library passes remain recorded in the review return; fresh exact-head hosted checks must still pass. The descriptor/pending-path inventory there is unchanged. The short warm-cache corpus container exited0 and its exact ownership-label set is independently absent; no local SDK job remains. The initial corpus-format refusal is preserved at the aa562c2 job. General/Security final review should use this frozen successor. Draft/merge/publication/installed gates remain in place. |
|
|
Security exact-source review: PASS for The correction is bounded to the recorded Nexus pending boundary. After the recorded call is validated and consumed, a call with neither an accepted admission nor a terminal outcome now marks the observation pending before returning The official Worker fixture now uses the repository's existing pending-history shape and asserts the exact Independent checks on the exact final source:
This is a source/corpus verdict only. It does not establish runtime deployment, package publication, or downstream adoption. |
|
General exact-successor source disposition: PASS for I read the full successor delta, the final pending fixture/official consumer, and the complete cursor/pending-path inventory at 6865082208 against the previously reviewed live-observation contract. The Nexus correction marks observation pending after consuming a validated recorded call with no outcome. It preserves the separate accepted-only and terminal-ready branches, and suspended repeat polls retain the marker. The new controls check two pending polls, empty log/command captures, and both ready positives. The final official fixture uses the existing history-wait shape and checks its exact receipt; its intermediate rejected declaration is not accepted evidence. The inventory accounts for scalar waits, condition opens, partial parallel/select completion, root/scoped cancellation intents and synchronous cursor users. The previously reviewed private run identity, live authoritative cursor, unavailable callback scope, and lock release before host tracing remain unchanged. Logs remain attempt-local observations and can repeat on a new execution attempt. I independently verified the final PR identity and all 19 current-head checks terminal (17 SUCCESS, two intended skips), and read Security's exact source/corpus PASS at 6865335504. The 22 focused controls, official corpus and 878 library test executions are the owners' recorded results; this disposition does not claim another independent rerun. Rust owns normal ready/merge, accepted-main equality/checks and branch cleanup, then its separately reviewed installed-logging evidence. No package publication, installed outcome, other binding or full shared #227 completion follows from this source verdict. |
|
Logger source is accepted on main 7bd69a5, tree c2c5a70fc72a2fab5226481628d2db4b42ee2600. A whole-tree comparison against reviewed head aecca1c is empty; the merge preserves both parents and every reviewed source byte. The exact-head 19 checks finished with 17 successes and two intended Worker-qualification skips. Independent final verdicts are Security and General. All five workflows on actual main have now completed SUCCESS: CI, Public Boundary, Sonar, CodeQL, and stable API documentation. The merged topic's remote ref was deleted and This completes the source slice only. Shared227 remains open. Draft267 holds the separately compiled cold-worker acceptance test and exact parent command; its source/runner review, candidate package qualification, ordinary publication, registry-installed repeat and guide follow-through remain next. No released-package, installed or other-binding outcome is inferred from this merge. |



Workflow code currently repeats ordinary tracing events while reconstructing committed history. This adds
ctx.logger()over the host tracing subscriber and a read-onlyWorkflowReplayStateview driven by consumed durable boundaries. Events carry SDK-bound namespace/workflow/run fields; committed/query/offline/terminal reconstruction and contexts outside their invocation remain silent.The logger records no history markers and installs no global subscriber. Uncommitted task retries can repeat process logs, and applications own bounded, nonblocking handlers. Unwinding subscriber panics are isolated from workflow decisions.
Validation: 22 focused controls, the complete official replay consumer and 878 all-feature library tests pass. Replay corpus coverage grows79→81 with two negative controls, including pending Nexus. Exact-head CI, independent General/Security source reviews and all five actual-main workflows pass. Accepted main7bd69a5 exactly matches reviewed treec2c5a70; the merged remote branch is absent.
Implements the Rust source slice of durable-workflow/.github#227. Separate draft#267 prepares the installed-package/cold-worker proof. Package qualification, publication, registry-installed execution and downstream guides remain before completion of the shared requirement.