refactor(config): delete unused legacy shim modules, document transitional seam

Stage 6 initial cleanup. Removes two fabro-config shim modules that no
longer hold any code and adds a module-level comment to
fabro-types/src/settings/mod.rs documenting the transitional seam
between the flat legacy Settings shape and the authoritative v2
namespaced schema in fabro_types::settings::v2.

Deleted:
- fabro-config/src/combine.rs: was a one-line re-export of
  fabro_types::combine::Combine; nothing imports it anymore
- fabro-config/src/settings.rs: was reduced to a header comment
  after Stage 3 replaced TryFrom<ConfigLayer> for Settings with
  ConfigLayer::resolve via the v2 bridge

Stage 6 full deletion (legacy flat Settings type, the bridge, the
old settings/{hook,mcp,project,run,sandbox,server,user}.rs modules,
plus the Combine trait derive) is scheduled for a follow-up PR that
migrates every consumer call site from the flat settings.llm /
.vars / .sandbox / .setup / .hooks / .mcp_servers / .goal / .work_dir
/ .github / .git / .pull_request / .checkpoint / .artifacts fields to
the v2 SettingsFile tree. That touches ~128 call sites across ~15
files and is a mechanical but large follow-up; the current bridge is
the safe intermediate state.
This commit is contained in:
Bryan Helmkamp 2026-04-09 11:35:44 -04:00
parent dba10e5e99
commit 3dd3c7bf8b
No known key found for this signature in database
4 changed files with 19 additions and 8 deletions

View file

@ -1 +0,0 @@
pub use fabro_types::combine::*;

View file

@ -1,6 +1,5 @@
extern crate self as fabro_config;
pub mod combine;
pub mod config;
pub mod effective_settings;
pub mod home;
@ -12,7 +11,6 @@ pub mod project;
pub mod run;
pub mod sandbox;
pub mod server;
pub mod settings;
pub mod storage;
pub mod user;

View file

@ -1,5 +0,0 @@
//! Empty module retained for backwards-compatible imports.
//!
//! The legacy `TryFrom<ConfigLayer> for Settings` impl was replaced by
//! [`crate::ConfigLayer::resolve`], which delegates to the v2 bridge in
//! `fabro_types::settings::v2::bridge`. Stage 6 deletes this file entirely.

View file

@ -1,3 +1,22 @@
//! Legacy flat `Settings` shape plus the v2 namespaced schema.
//!
//! The authoritative config schema lives in [`v2`] — it is the namespaced
//! parse tree that `_version = 1` TOML files decode into. Value-language
//! helpers, the merge matrix, and strict unknown-key validation all live
//! there.
//!
//! The flat [`Settings`] type and its submodules (`hook`, `mcp`, `project`,
//! `run`, `sandbox`, `server`, `user`) are the **resolved** shape that
//! current consumers still read. `fabro_config::ConfigLayer::resolve` walks
//! the v2 tree through [`v2::bridge::bridge_to_old`] to produce this flat
//! shape, so every consumer that touches `settings.llm`, `settings.vars`,
//! `settings.sandbox`, etc. keeps working.
//!
//! Full deletion of the flat shape (including the bridge) is scheduled for
//! a follow-up PR that migrates every consumer call site to read from
//! [`v2::SettingsFile`] directly. This module deliberately stays as a
//! transitional seam until then.
use std::collections::HashMap;
use std::path::PathBuf;