fabro/lib/components/fabro-workflow/src
Scott Werner 9d3aa7a4d4 Consolidate workflow-version lineage test coverage
The lineage field's `skip_serializing_if` behavior was asserted five times
across three crates. Keep the two assertions in fabro-types, which owns the
attribute, and drop the duplicates:

- Delete `run_created_omits_absent_workflow_version_id` from event/convert.rs,
  a copy of the test above it that re-checked another crate's serde attribute.
  convert.rs's own responsibility is covered by the existing field assertion.
- Delete `legacy_create_input_persists_without_workflow_version_id`, which ran
  the full create() pipeline to prove a hardcoded `None` literal is `None`.
  `CreateRunInput` has no such field, so no input could change the result.
- Fold `run_spec_omits_absent_workflow_version_id` into the adjacent legacy-spec
  test, which already holds an all-`None` record.
- Drop the off-topic spec re-serialization from run_state.rs's retried_from test.

Add `test_support::test_workflow_version_id()` alongside `test_run_provenance()`
and use it everywhere, replacing eight copies of the same magic seed across five
crates plus two assertion sites that recomputed the hash inline. This also
subsumes retry.rs's private helper of the same shape.

Revert the `run_spec_json` parameterization in the projection round-trip test:
`RunProjection` is a `with_replacement` alias for the canonical type, so the
`Some` and `None` call sites exercise identical code.

Have the two run.created literals that mirror a `RunSpec` read the spec's
lineage field instead of hardcoding `None`, so the mirrors stay accurate once a
producer populates it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 12:39:02 -04:00
..
event Consolidate workflow-version lineage test coverage 2026-08-21 12:39:02 -04:00
graph Potential fix for pull request finding 2026-08-01 12:17:16 -04:00
handler Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
lifecycle Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
operations Consolidate workflow-version lineage test coverage 2026-08-21 12:39:02 -04:00
pipeline Consolidate workflow-version lineage test coverage 2026-08-21 12:39:02 -04:00
records refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
transforms Classify graph attributes with a graph-only reference kind 2026-08-17 17:58:46 -04:00
artifact.rs Probe sandbox locality once per context resolution pass 2026-08-17 13:56:19 -04:00
artifact_snapshot.rs fix(glob): harden artifact traversal 2026-07-25 11:56:57 -04:00
artifact_upload.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
billing_rollup.rs Add a shared RunSpec test fixture and adopt it 2026-08-19 16:50:37 -04:00
command_log.rs Unify blob hash vocabulary 2026-08-17 13:56:19 -04:00
condition.rs Reuse existing helpers in the for_each fan-out 2026-07-28 18:42:23 -04:00
context.rs Merge remote-tracking branch 'origin/main' into feat/for-each-item-injection 2026-07-28 20:03:25 -04:00
error.rs Merge remote-tracking branch 'origin/main' into pr-764 2026-08-20 22:07:20 -04:00
event.rs Clean up git push retry handling 2026-08-20 21:59:47 -04:00
file_resolver.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
git.rs Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
graph.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
hook_context.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
interview_runtime.rs refactor(workflow): tidy stall watchdog wiring and interview naming 2026-08-01 10:08:03 -04:00
lib.rs fix: harden GitHub token refresh handling 2026-08-20 19:56:06 -04:00
model_fallback.rs refactor(model): rename Kimi provider to Moonshot 2026-07-31 09:00:52 -04:00
node_handler.rs refactor(workflow): simplify interview block state and stall watchdog 2026-08-01 09:53:07 -04:00
outcome.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
pull_request.rs refactor: simplify publish pipeline and collapse duplicated stage errors 2026-07-28 15:09:10 -04:00
retry.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_control.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_dir.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_lookup.rs Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
run_materialization.rs refactor: simplify readiness-fallback plumbing 2026-07-24 08:49:01 -04:00
run_metadata.rs Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
run_options.rs Remove stale env-interpolation promises from docs 2026-08-17 17:36:53 -04:00
run_status.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
runtime_store.rs Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
sandbox_git.rs Label sandbox git execs with git_op tracing spans 2026-08-20 19:37:44 -04:00
sandbox_git_runtime.rs Retry git pushes with a pinned token and record attempt history 2026-08-20 10:16:10 -04:00
services.rs fix: harden GitHub token refresh handling 2026-08-20 19:56:06 -04:00
stage_execution.rs Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
stage_scope.rs Merge origin/main into feat/stage-execution-identity-on-resume 2026-07-24 10:07:35 -04:00
steering_hub.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
test_support.rs Persist workflow version lineage on runs 2026-08-21 12:39:02 -04:00
workflow_bundle.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00