task: plan workspace override ticket
This commit is contained in:
parent
bf6915b43b
commit
dd509d40c6
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Delegation intent: workspace-local manifest override
|
||||||
|
|
||||||
|
Intent:
|
||||||
|
- Implement a workspace-local manifest override file that overlays Profile-derived normal startup configuration.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
- Support `.yoi/override.local.toml` as the local ignored override file.
|
||||||
|
- Detect the nearest workspace override relative to the active workspace/project base used for profile discovery.
|
||||||
|
- Apply the override as a `PodManifestConfig` layer after Profile resolution and before final `PodManifest` validation/snapshot persistence.
|
||||||
|
- Preserve explicit `--manifest <path>` as a one-file escape hatch; do not apply workspace overrides in explicit manifest mode unless you stop and report a strong reason.
|
||||||
|
- Resolve relative paths in the override file from `.yoi/` / the override file parent directory.
|
||||||
|
- Add provenance/diagnostic information where the existing manifest/profile resolution surfaces can carry it without broad refactoring.
|
||||||
|
- Add focused tests for discovery, merge order, path base, and explicit-manifest behavior.
|
||||||
|
- Update docs only if the behavior is durable and useful to document.
|
||||||
|
|
||||||
|
Invariants:
|
||||||
|
- Do not reintroduce ambient `.yoi/manifest.toml` cascade as normal startup.
|
||||||
|
- Do not put runtime-bound fields into reusable Profiles.
|
||||||
|
- Keep explicit manifest mode low-level and predictable.
|
||||||
|
- Do not read ignored secret-like file contents.
|
||||||
|
- Do not edit unrelated tickets or parent workspace files.
|
||||||
|
|
||||||
|
Non-goals:
|
||||||
|
- Do not support multiple cascading override files unless the existing workspace discovery naturally requires it.
|
||||||
|
- Do not implement a new profile language.
|
||||||
|
- Do not change dependency versions.
|
||||||
|
- Do not close the ticket or merge the worktree.
|
||||||
|
|
||||||
|
Escalate if:
|
||||||
|
- The correct workspace base is ambiguous between TUI launch, `yoi pod`, and `SpawnPod`.
|
||||||
|
- Provenance support requires changing persisted manifest schema in a broad way.
|
||||||
|
- Supporting `.yoi/override.toml` as trackable state seems necessary.
|
||||||
|
- Tests require real spawned process E2E coverage.
|
||||||
|
|
||||||
|
Validation:
|
||||||
|
- Run focused manifest/profile tests, preferably `cargo test -p manifest` plus any touched `pod` tests.
|
||||||
|
- Run `./tickets.sh doctor`, `git diff --check`, and `nix build .#yoi` if feasible in the worktree.
|
||||||
|
- Record any skipped validation with rationale.
|
||||||
|
|
@ -7,7 +7,7 @@ kind: task
|
||||||
priority: P2
|
priority: P2
|
||||||
labels: [profile, manifest, config]
|
labels: [profile, manifest, config]
|
||||||
created_at: 2026-06-01T12:52:40Z
|
created_at: 2026-06-01T12:52:40Z
|
||||||
updated_at: 2026-06-01T12:52:40Z
|
updated_at: 2026-06-01T12:53:58Z
|
||||||
assignee: null
|
assignee: null
|
||||||
legacy_ticket: null
|
legacy_ticket: null
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -4,4 +4,50 @@
|
||||||
|
|
||||||
Created by tickets.sh create.
|
Created by tickets.sh create.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: plan author: hare at: 2026-06-01T12:53:58Z -->
|
||||||
|
|
||||||
|
## Plan
|
||||||
|
|
||||||
|
# Delegation intent: workspace-local manifest override
|
||||||
|
|
||||||
|
Intent:
|
||||||
|
- Implement a workspace-local manifest override file that overlays Profile-derived normal startup configuration.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
- Support `.yoi/override.local.toml` as the local ignored override file.
|
||||||
|
- Detect the nearest workspace override relative to the active workspace/project base used for profile discovery.
|
||||||
|
- Apply the override as a `PodManifestConfig` layer after Profile resolution and before final `PodManifest` validation/snapshot persistence.
|
||||||
|
- Preserve explicit `--manifest <path>` as a one-file escape hatch; do not apply workspace overrides in explicit manifest mode unless you stop and report a strong reason.
|
||||||
|
- Resolve relative paths in the override file from `.yoi/` / the override file parent directory.
|
||||||
|
- Add provenance/diagnostic information where the existing manifest/profile resolution surfaces can carry it without broad refactoring.
|
||||||
|
- Add focused tests for discovery, merge order, path base, and explicit-manifest behavior.
|
||||||
|
- Update docs only if the behavior is durable and useful to document.
|
||||||
|
|
||||||
|
Invariants:
|
||||||
|
- Do not reintroduce ambient `.yoi/manifest.toml` cascade as normal startup.
|
||||||
|
- Do not put runtime-bound fields into reusable Profiles.
|
||||||
|
- Keep explicit manifest mode low-level and predictable.
|
||||||
|
- Do not read ignored secret-like file contents.
|
||||||
|
- Do not edit unrelated tickets or parent workspace files.
|
||||||
|
|
||||||
|
Non-goals:
|
||||||
|
- Do not support multiple cascading override files unless the existing workspace discovery naturally requires it.
|
||||||
|
- Do not implement a new profile language.
|
||||||
|
- Do not change dependency versions.
|
||||||
|
- Do not close the ticket or merge the worktree.
|
||||||
|
|
||||||
|
Escalate if:
|
||||||
|
- The correct workspace base is ambiguous between TUI launch, `yoi pod`, and `SpawnPod`.
|
||||||
|
- Provenance support requires changing persisted manifest schema in a broad way.
|
||||||
|
- Supporting `.yoi/override.toml` as trackable state seems necessary.
|
||||||
|
- Tests require real spawned process E2E coverage.
|
||||||
|
|
||||||
|
Validation:
|
||||||
|
- Run focused manifest/profile tests, preferably `cargo test -p manifest` plus any touched `pod` tests.
|
||||||
|
- Run `./tickets.sh doctor`, `git diff --check`, and `nix build .#yoi` if feasible in the worktree.
|
||||||
|
- Record any skipped validation with rationale.
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user