mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-05 08:10:39 +00:00
## Summary Template failures from `fabro run` and structural warnings from `fabro validate` now preserve source provenance through rendering, workflow transforms, API serialization, and CLI display. Diagnostics can point at the actual workflow, import, or prompt file with node/attribute context instead of surfacing MiniJinja's generic `<string>` source. ## What Changed - Added named MiniJinja render APIs plus miette-aware `TemplateError` metadata for source names, source text, spans, and labels. - Reworked workflow template expansion so inline attributes, imported workflows, and `@prompt` files render with file and owner context. - Split strict run behavior from structural validate behavior: run-start still hard-fails on missing inputs, while validate emits source-aware warnings and continues linting. - Extended validation diagnostics through Rust structs, OpenAPI, server DTO mapping, and CLI rendering with optional source path, line, column, span, and related metadata. - Added regression coverage across template rendering, workflow transforms, CLI output, and the server validate endpoint. ## Verification - `cargo nextest run -p fabro-template` - `ulimit -n 4096 && cargo nextest run -p fabro-workflow --no-fail-fast` - `cargo nextest run -p fabro-cli bare_fabro_with_unbound_inputs_validates_structurally_with_warning run_rejects_unbound_template_inputs_before_creating_remote_run` - `cargo nextest run -p fabro-server validate_endpoint_returns_template_source_coordinates` - `cargo build -p fabro-api` - `cargo +nightly-2026-04-14 fmt --check --all` - `cargo +nightly-2026-04-14 clippy --workspace --all-targets -- -D warnings` --- [](https://github.com/EveryInc/compound-engineering-plugin) 🤖 Generated with GPT-5 via [Codex](https://openai.com/codex) --------- Co-authored-by: Aleksi Asikainen <1086393+salieri@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| 2026-04-29-metadata-snapshot-events.md | ||
| 2026-04-30-duplicate-type-unification.md | ||
| 2026-04-30-preserve-exec-failure-diagnostics.md | ||
| 2026-05-02-event-module-split.md | ||
| 2026-05-02-server-readiness-timeouts.md | ||
| 2026-05-02-settings-driven-llm-providers-models.md | ||
| 2026-05-04-cross-tab-sse-coordination.md | ||
| 2026-05-04-model-test-bounded-concurrency.md | ||
| 2026-05-04-unique-git-checkpoint-commit-message-path.md | ||
| 2026-05-05-clean-pierre-virtualizer-integration.md | ||
| 2026-05-05-decouple-interrupts-from-steering.md | ||
| 2026-05-06-cli-input-overrides.md | ||
| 2026-05-06-improve-cli-api-error-display.md | ||
| 2026-05-06-polished-foreground-tty-logging.md | ||
| 2026-05-08-generated-typescript-api-client-migration.md | ||
| 2026-05-08-run-owned-sandbox-lifecycle.md | ||
| 2026-05-09-daytona-run-terminal.md | ||
| 2026-05-09-fixed-project-workflow-directory.md | ||
| 2026-05-09-inline-markdown-run-titles.md | ||
| 2026-05-09-live-stage-token-projection.md | ||
| 2026-05-09-remove-local-worktree-mode.md | ||
| 2026-05-09-run-files-diff-scope-picker.md | ||
| 2026-05-10-auth-sessions-backend.md | ||
| 2026-05-10-auth-sessions-frontend.md | ||
| 2026-05-10-live-events-page.md | ||
| 2026-05-10-sandbox-services-backend.md | ||
| 2026-05-10-sandbox-services-frontend.md | ||
| 2026-05-11-automations-end-to-end.md | ||
| 2026-05-13-path-based-daytona-dockerfiles.md | ||
| 2026-05-13-sandbox-repo-layout-plan.md | ||
| 2026-05-14-optional-llm-install.md | ||
| 2026-05-15-sandbox-network-details.md | ||
| 2026-05-16-chats-new-fabro-web-port.md | ||
| 2026-05-16-source-aware-template-diagnostics.md | ||