2.8 KiB
2.8 KiB
| id | slug | title | status | kind | priority | labels | created_at | updated_at | assignee | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 20260601-125240-workspace-local-manifest-override | workspace-local-manifest-override | Support workspace-local manifest override layer | closed | task | P2 |
|
2026-06-01T12:52:40Z | 2026-06-01T13:19:36Z | null |
Background
Workspace profiles are already discoverable through the nearest .yoi/profiles.toml, but local machine/workspace overrides currently require either changing profile inputs or using an explicit --manifest escape hatch. This makes it awkward to keep private local settings such as model choice, reasoning level, web/search enablement, or temporary scope adjustments out of reusable Profiles.
Add a workspace-local manifest override layer that is detected from the workspace .yoi directory and applied after Profile resolution. The intended file name is .yoi/override.local.toml; .yoi/override.toml can be considered only if it is intentionally trackable and the semantics are documented clearly.
Requirements
- Detect the nearest workspace-local override file while resolving a Profile/default startup path.
- Apply the override as a
PodManifestConfiglayer on top of the resolved Profile-generated manifest, before finalPodManifestvalidation/snapshot persistence. - Preserve the existing explicit
--manifest <path>low-level escape hatch semantics; do not silently merge the workspace override into explicit manifest mode unless the implementation intentionally documents and tests that behavior. - Resolve relative paths in the override file from the override file's parent directory.
- Record override provenance in the resolved manifest snapshot or diagnostics so local behavior is explainable.
- Prefer
.yoi/override.local.tomlas ignored/local state. If.yoi/override.tomlis supported, define precedence and intended tracking policy. - Do not reintroduce ambient
manifest.tomlcascade as the normal startup layer. - Add focused tests for discovery, merge order, path base, and explicit-manifest behavior.
- Update design/development docs only where this is a durable configuration boundary.
Acceptance criteria
- A workspace
.yoi/override.local.tomlcan override Profile-derived manifest settings during normal Profile/default startup. - Override merge order is documented and tested: builtin/default/user/project Profile resolution first, workspace-local override second, final validation last.
--manifest <path>behavior is tested and either remains override-free or has explicitly documented override semantics..gitignore/ docs clarify whether.yoi/override.local.tomlis local-only.- Validation includes relevant manifest/profile tests,
cargo test -p manifestor narrower equivalent,./tickets.sh doctor,git diff --check, andnix build .#yoiunless intentionally deferred with rationale.