Skip to content

chore: close out CI, docsgen, and e2e review findings#151

Merged
joshua-temple merged 10 commits into
mainfrom
fix/tooling-ci-e2e-closeout
Jun 5, 2026
Merged

chore: close out CI, docsgen, and e2e review findings#151
joshua-temple merged 10 commits into
mainfrom
fix/tooling-ci-e2e-closeout

Conversation

@joshua-temple

Copy link
Copy Markdown
Collaborator

What this change does

Closes the last review bucket: tooling, CI, e2e, and a docs-pipeline gap (no feature work).

  • CI/build: the docs-deploy trigger now watches every documented module tree (it only fired on state/**, so godoc changes elsewhere never redeployed); tools/docsgen is added to the lint job (sinkflow/sourcedrive were already linted in their own workflows).
  • docsgen: telemetry, durable, cluster, transport, wasm are added to the reference module list so the now-public modules get generated API-reference pages (site rebuilds to 85 pages); the post-processing regex functions (normalizeGodoc/unescapeGodoc/collapseEscapes/yamlString) go from 0% to 100% covered.
  • e2e/examples correctness: sourcedrive/e2e CurrentStateFn now derives the current state from the entity's Stage instead of a hardcoded "pending" stub (with a resume-from-stage test); examples/dispatch no longer shares mutable package state across tests (injected deps, t.Parallel(), race-clean).
  • e2e coverage: added a hermetic WASM-backed-guard joint (a WASM guard gating a durable transition that survives recovery). The telemetry-with-cluster / durable-with-cluster joints were intentionally not added: those modules share no integration seam, so such tests would be fabricated glue.
  • unit gaps: dispatch error paths, fooddelivery refund/RestoreRig, sinkflow ErrUnregistered, magefiles benchGate.
  • state/analysis: documented the SimplePaths combinatorial-breadth risk (it already terminates on acyclic input, so a godoc warning + pointer to ShortestPaths is the honest fix, not a new option).

Checklist

  • Signed off (DCO), conventional commits, no feature work
  • Touched modules build/test/vet (race) clean; actionlint clean on both workflows; docs site rebuilds with the new reference pages

The docs-deploy trigger only watched state/**, so godoc changes in the
other documented modules never redeployed the published API reference.
Broaden the paths filter to every module whose godoc feeds the generated
Reference section, plus docs/ and the generator itself. Add a lint step
for tools/docsgen, the one in-workspace module the lint job omitted
(examples/sinkflow and examples/sourcedrive already lint in the sink and
source reusable workflows).

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
Add telemetry, durable, cluster, transport, and wasm to the docsgen
reference list so the generated API reference covers the now-public
modules; the site builds with the five new pages. Add table-driven tests
for the regex post-processing (normalizeGodoc, unescapeGodoc,
collapseEscapes, yamlString), which had no coverage, taking all four to
100 percent.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
The sourcedrive and e2e fulfillment machines hardcoded CurrentStateFn to
return pending, so a shipment cast from an in-flight value always
restarted at pending and defeated the resume/seek contract. Record the
lifecycle stage on the entity and derive the current state from it,
defaulting to pending only for a fresh or unset shipment. Add a
resume-from-recorded-stage test.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
The equivalence harness reached into package-level newModel and
driveAuthorizedFn vars, which two sub-tests would race on if they ran in
parallel. Carry the seams on a polyglotDeps value the exported entry
point fills from productionDeps and the tests fill with their own fakes,
so no run shares mutable state. The model-build and drive error tests now
run with t.Parallel and the suite stays race-clean.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
startActiveOrder's submit-fire and run-authorize-service error branches
were unexercised. Add two failing-store tests that fail the Append at each
step, raising the helper's coverage from 71 to 86 percent; the remaining
gap is the defensive no-service-in-flight guard, which the normal flow
never reaches.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
Add direct coverage for refundFn's nothing-to-refund branch (no
authorization hold), RunRefund's no-service-armed branch, and RestoreRig's
restore-error branch (an undeclared-state snapshot). refundFn and RunRefund
reach 100 percent; the lone RestoreRig gap is the unreachable NewModel
failure.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
The flaky outlet returned sink.ErrUnregistered for a non-Transition
payload but nothing exercised it. Add a direct test for the
unregistered-payload guard and the induced-failure error message, taking
the example to full coverage.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
benchGate, which mirrors the CI bench-gate awk to keep local and CI
verdicts in step, had no tests. Add a table-driven test over the
benchstat CSV format covering the gated sec/op and allocs/op regressions,
the non-gated B/op metric, skipped new/removed/geomean rows, and the
invalid-threshold error, taking benchGate to full coverage.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
SimplePaths always terminates but enumerates a number of acyclic paths
that grows combinatorially with graph branching, with no depth or count
bound. Spell out the cost in godoc and point callers at ShortestPaths or a
pruned model for dense definitions; this is the lighter honest fix than
adding a bound option to a function that currently takes none.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
Add the missing wasm cross-module joint: a state machine whose approve
transition is gated by a WebAssembly-backed guard, driven through the
durable runner and recovered from the store. It proves a foreign-engine
guard composes with durable record/replay (the admitted order replays to
approved, a below-threshold order is blocked through the same evaluator).
The guest is built on demand with the Go wasm toolchain, so the test stays
hermetic and deterministic.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple joshua-temple merged commit bd9165a into main Jun 5, 2026
121 checks passed
@joshua-temple joshua-temple deleted the fix/tooling-ci-e2e-closeout branch June 5, 2026 16:40
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