mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-15 23:32:46 +00:00
Extends the stage 6.1 WIP into a compiling state across the workspace.
Most crates and their unit/integration tests now read run.* / cli.* /
server.* v2 layers directly or through targeted bridge helpers.
Key moves in this commit:
fabro-server
- AppState.settings: Arc<RwLock<SettingsFile>> -- all helpers,
create_app_state_with_* factories, and tests updated.
- api_server_settings bridges SettingsFile -> legacy Settings via the
transitional bridge so /api/v1/settings still emits the legacy DTO
shape until Stage 6.6 replaces it with an allow-list DTO.
- get_system_info, get_system_df, get_github_repo, webhook startup, and
other read sites use the v2 accessors (github_app_id_str,
server_web, run_sandbox, run_model_*).
- web_auth.rs wraps each oauth / register / setup-status handler in a
local `bridged` helper that produces a legacy Settings from the v2
state, so the complex oauth mutation flow keeps working until its
Stage 6.6 rewrite.
- diagnostics::check_github_app reads via github_*_str accessors;
check_crypto bridges to the legacy shape inline.
- serve.rs: load_settings returns SettingsFile; apply_serve_overrides /
apply_runtime_settings mutate v2 subtrees directly; the config poll
loop and TLS/webhook startup use bridged() for legacy-shape reads.
- Tests in tests/it/{helpers,api/*,scenario/*} rewritten to construct
SettingsFile via ConfigLayer::parse or v2 struct literals.
fabro-workflow
- Every test fixture in pipeline/{finalize,initialize,pull_request,retro,
execute,persist}, operations/{create,rebuild_meta,start}, run_lookup,
runtime_store, handler/manager_loop, and tests/it/{integration,
daytona_integration}.rs now uses SettingsFile.
- start.rs hooks into the bridge helpers directly via use-imports.
- run_graph / run_graph_from_checkpoint / initialize / finalize /
pull_request calls are Box::pin'd to stay under clippy's large-future
threshold after the v2 tree brought RunOptions size up.
- resolve_run_settings writes resolved model/provider back into
run.model as InterpStrings; tests assert via run_model_*_str().
- preprocess_and_validate pulls vars from run_inputs_as_strings().
fabro-cli
- manifest_builder uses ConfigLayer.combine(...).into() to get a v2
SettingsFile for the manifest goal resolution path; file-based
goal_file handling is deferred to 6.6 when the manifest schema catches
up.
- runner::maybe_build_github_app_credentials and
tests/it/cmd/{create,runner}.rs read from v2 accessors.
- commands/config/mod.rs::merged_config returns SettingsFile; the
server-side retrieve_server_settings is bridged via a stopgap
legacy_settings_to_v2 shim that Stage 6.6 replaces.
- commands/store/dump.rs sample_run_record constructs SettingsFile.
fabro-store, fabro-checkpoint
- Test fixtures constructing RunRecord values updated to SettingsFile.
- fabro-checkpoint/src/author.rs stays (v2 From impl landed in a
previous additive commit).
fabro-config
- effective_settings.rs rewrite compiles and passes its unit tests.
- project::resolve_working_directory takes &SettingsFile.
Build status: `cargo build --workspace --tests`, `cargo clippy
--workspace -- -D warnings`, and `cargo fmt --check --all` all pass.
`cargo nextest run --workspace` passes 3,749 of 3,764 tests; the 15
remaining failures are fabro-cli integration tests whose snapshot +
TOML fixture shapes still need manual updates:
- cmd::config::* (seven tests): fixture TOML files still use v1
top-level keys and the snapshot outputs expect the legacy flat JSON
shape.
- cmd::inspect::* (four tests): run-record JSON snapshots embed the
flat Settings shape.
- cmd::run::dry_run_persists_event_history_in_store and
json_run_implies_auto_approve_for_human_gates: check `settings.dry_run
== Some(true)` directly on the v2 file; should assert
dry_run_enabled() instead.
- cmd::attach::attach_json_errors_without_prompting_for_human_input:
unrelated insta snapshot drift caused by the new SettingsFile JSON
shape leaking into an events-log snapshot.
Follow-up work for this stage also includes:
- Rewriting web_auth.rs register flow to emit v2 TOML directly and to
re-parse the written file back into state.settings so in-memory
state doesn't lag the on-disk file.
- Removing the legacy_settings_to_v2 shim in fabro-cli/config once
the server-side settings endpoint returns v2 shapes (Stage 6.6).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| 2026-04-02-001-feat-server-daemon-management-plan.md | ||
| 2026-04-02-002-feat-http-store-client-auto-start-plan.md | ||
| 2026-04-04-run-event-simplification-plan.md | ||
| 2026-04-04-shared-nextest-test-daemon-plan.md | ||
| 2026-04-05-cli-deglobalize-server-url-and-storage-dir-plan.md | ||
| 2026-04-05-cli-exec-explicit-local-and-mode-removal-plan.md | ||
| 2026-04-05-cli-model-server-canonical-and-llm-removal-plan.md | ||
| 2026-04-05-cli-run-lifecycle-cleanup-compaction-plan.md | ||
| 2026-04-05-run-adjacent-server-only-cleanup-plan.md | ||
| 2026-04-05-run-create-server-target-plan.md | ||
| 2026-04-05-run-manifest-and-preflight-plan.md | ||
| 2026-04-05-server-canonical-secrets-doctor-repo-plan.md | ||
| 2026-04-06-cli-config-socket-storage-separation-plan.md | ||
| 2026-04-06-object-backed-artifact-uploads.md | ||
| 2026-04-06-settings-command-server-local-merge-plan.md | ||
| 2026-04-06-subprocess-run-workers-signal-control-plan.md | ||
| 2026-04-07-fix-attach-terminal-authoritative-stream-plan.md | ||
| 2026-04-07-global-cas-blob-refs-plan.md | ||
| 2026-04-07-interview-control-channel-and-server-slack-plan.md | ||
| 2026-04-07-run-manifest-blobs-and-bundle-removal-plan.md | ||
| 2026-04-07-run-state-projection-consolidation-plan.md | ||
| 2026-04-07-store-dump-server-owned-export-plan.md | ||
| 2026-04-07-worker-http-only-run-store-migration-plan.md | ||
| 2026-04-08-001-feat-fabro-uninstall-command-plan.md | ||
| 2026-04-08-cli-services-command-context-refactor-plan.md | ||
| 2026-04-08-fabro-spa-asset-crate-plan.md | ||
| 2026-04-08-optional-web-ui-server-plan.md | ||
| 2026-04-08-production-web-ui-test-plan.md | ||
| 2026-04-08-production-web-ui.md | ||
| 2026-04-08-settings-toml-redesign-implementation-plan.md | ||
| 2026-04-09-settings-toml-redesign-handoff.md | ||