fabro/lib/components/fabro-workflow/src
Scott Werner 18d98794ae Move Git-target validation onto RunTarget in fabro-types
The Git-target grammar (slug, branch, and SHA rules plus the derived
origin URL) was implemented twice with no shared code path: once in
server admission and again in sandbox start, so the two could drift and
disagree about which persisted targets are valid.

Own it once as RunTarget::validate() in fabro-types, next to the
primitives it uses, returning the canonical target together with its
derived GitContext projection. Admission consumes it directly, and the
start path re-derives the expected clone source from the same rules
before checking the persisted projection against it. The start path now
also moves the derived strings into the sandbox spec instead of cloning
them.

While reordering admission around the shared validator, run the pure,
in-memory checks (target grammar, environment id) before the blob-store
closure fetch and lowering so malformed requests no longer pay for
version-store I/O.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 11:55:44 -04:00
..
event Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
graph Potential fix for pull request finding 2026-08-01 12:17:16 -04:00
handler Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
lifecycle Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
operations Move Git-target validation onto RunTarget in fabro-types 2026-08-24 11:55:44 -04:00
pipeline Add version-backed run intent creation 2026-08-24 11:55:43 -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 Render offloaded prompt values concisely 2026-08-21 23:44:02 -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 Tighten the prompt-demotion pass after review 2026-08-21 21:21:59 -04:00
error.rs Simplify run-event persistence failure plumbing 2026-08-21 19:29:14 -04:00
event.rs fix: fail runs when event persistence is lost 2026-08-21 18:31:22 -04:00
file_resolver.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
git.rs Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
git_bridge.rs refactor(github): deduplicate additional-repository access plumbing 2026-08-21 16:31:48 -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 feat(workflow): bridge git and gh to the shared token 2026-08-21 14:47:31 -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 Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
run_materialization.rs refactor: simplify readiness-fallback plumbing 2026-07-24 08:49:01 -04:00
run_metadata.rs Add version-backed run intent creation 2026-08-24 11:55:43 -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 Add version-backed run intent creation 2026-08-24 11:55:43 -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 Add version-backed run intent creation 2026-08-24 11:55:43 -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 Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
workflow_bundle.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00