chore: close out CI, docsgen, and e2e review findings#151
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this change does
Closes the last review bucket: tooling, CI, e2e, and a docs-pipeline gap (no feature work).
docs-deploytrigger now watches every documented module tree (it only fired onstate/**, so godoc changes elsewhere never redeployed);tools/docsgenis added to the lint job (sinkflow/sourcedrive were already linted in their own workflows).telemetry,durable,cluster,transport,wasmare 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.sourcedrive/e2eCurrentStateFnnow derives the current state from the entity'sStageinstead of a hardcoded "pending" stub (with a resume-from-stage test);examples/dispatchno longer shares mutable package state across tests (injected deps,t.Parallel(), race-clean).ErrUnregistered, magefilesbenchGate.SimplePathscombinatorial-breadth risk (it already terminates on acyclic input, so a godoc warning + pointer toShortestPathsis the honest fix, not a new option).Checklist