jackin-config
Configuration schema, validation, migration, and workspace resolution for jackin❯. Owns the shape of config.toml / per-workspace config and turns it into resolved, validated structures the rest of the system consumes.
Merges the former config/ and workspace/ concerns into one crate to dissolve the config↔workspace mutual cycle that previously blocked clean crate extraction.
What this crate owns
- The config and workspace schema (
schema,app_config,mounts), sensitive-value handling (sensitive), and auth model (auth). - Resolution (
resolve,planner) and persistence (persist,paths) of operator + workspace configuration. - Versioned migrations (
migrations,versions) and validation (validation). test_supportbuilders for deterministic config fixtures.
Architecture tier and allowed dependencies
L0 domain (schema). Allowed workspace dependencies: jackin-core. No presentation, no infrastructure adapters, no observability — those live above.
Structure
| Module | Owns | Tests |
|---|---|---|
| crate root, re-exports | — |
| config + workspace schema | — |
· | app-config model | |
· | mounts schema | |
| auth model | — |
| sensitive-value handling | — |
· | resolution | |
| planning | — |
| persistence | — |
· | config paths | |
· | versioned migrations | |
| version constants | — |
| validation | — |
· | editor config | |
| deterministic config builders | — |
Public API
Resolved config/workspace types and the resolution + migration entry points consumed by jackin-runtime, jackin-instance, jackin-isolation, and the CLI. Schema changes are versioned — see migrations and the workspace schema-versioning rules.
How to verify
cargo nextest run -p jackin-config
cargo clippy -p jackin-config --all-targets -- -D warnings