mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-15 23:32:46 +00:00
Stage 6.3 closes out the dead code that Stage 6.1 left behind:
fabro-types
- Delete the inherent helpers on the legacy flat `Settings` struct
(`app_id`, `slug`, `client_id`, `git_author`, `sandbox_settings`,
`setup_settings`, `setup_commands`, `setup_timeout_ms`,
`preserve_sandbox_enabled`, `github_permissions`, `mcp_server_entries`,
`verbose_enabled`, `prevent_idle_sleep_enabled`, `upgrade_check_enabled`,
`dry_run_enabled`, `auto_approve_enabled`, `no_retro_enabled`,
`storage_dir`, `slack_settings`). Nothing reads them anymore --
consumers now use `SettingsFile` accessors (`github_app_id_str()`,
`run_sandbox()`, `dry_run_enabled()`, `storage_dir()`, etc.). The
`Settings` struct itself stays alive for the remaining legacy
OpenAPI response path and a handful of demo-route payloads; Stage
6.6 finishes the deletion alongside the OpenAPI spec rewrite.
- Delete the `#[cfg(test)] mod tests` block that only covered the
deleted `storage_dir()` helper.
fabro-cli/commands/install.rs
- `merge_server_settings` now writes a v2 TOML file (with
`[server.{api,listen.tls,web,auth.api.{jwt,mtls},auth.web}]` stanzas)
instead of the legacy v1 top-level `[web]`/`[api]`/`[git]` shape.
The generated file previously failed to parse as v2 on next startup;
now it round-trips through `ConfigLayer::parse`.
- Tests rewritten to parse the generated TOML through
`fabro_config::ConfigLayer::parse` and assert against the v2 tree
(`server.auth.web.allowed_usernames`, `server.auth.api.{jwt,mtls}.enabled`,
`server.listen.tls.{cert,key,ca}`). The `merge_server_settings_preserves_existing_*`
tests collapsed into a single `preserves_existing_top_level_sections`
test since the old tests were asserting v1 `[git]` / `[api]` keys
that no longer make sense.
Build, clippy, fmt, and tests all green: 3756 / 3756 pass.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| crates | ||
| packages/fabro-api-client | ||