ticket: close workspace override
This commit is contained in:
parent
9be37ea123
commit
5f8b3d9a57
|
|
@ -0,0 +1,48 @@
|
||||||
|
# Review: workspace-local manifest override
|
||||||
|
|
||||||
|
Reviewer Pod: `workspace-override-reviewer-20260601`
|
||||||
|
|
||||||
|
## Result
|
||||||
|
|
||||||
|
Approved. No blockers found.
|
||||||
|
|
||||||
|
## Findings
|
||||||
|
|
||||||
|
The implementation satisfies the intent:
|
||||||
|
|
||||||
|
- `.yoi/override.local.toml` is discovered as the workspace-local override.
|
||||||
|
- The override applies only to normal Profile/default resolution.
|
||||||
|
- Explicit `--manifest <path>` remains a single-file escape hatch and does not load the workspace override.
|
||||||
|
- Merge order is builtin/default + selected Profile, then workspace override, then final `PodManifest` validation.
|
||||||
|
- Relative paths in the override are resolved from the override file parent `.yoi/` directory.
|
||||||
|
- `.yoi/manifest.toml` cascade was not reintroduced.
|
||||||
|
- Overrides that set `pod.name` are rejected.
|
||||||
|
- Provenance is recorded narrowly through `manifest.profile.workspace_override`.
|
||||||
|
|
||||||
|
## Follow-up handled
|
||||||
|
|
||||||
|
Reviewer requested non-blocking coverage for the case where both parent and nested `.yoi/override.local.toml` exist. Coder added commit `8f98785 test: cover nearest workspace override`, which verifies the nearest nested override wins and checks provenance.
|
||||||
|
|
||||||
|
## Validation evidence
|
||||||
|
|
||||||
|
Coder reported:
|
||||||
|
|
||||||
|
- `cargo test -p manifest workspace_local_override -- --nocapture`
|
||||||
|
- `cargo test -p pod manifest_mode_does_not_apply_workspace_local_override -- --nocapture`
|
||||||
|
- `cargo test -p manifest -p pod`
|
||||||
|
- `./tickets.sh doctor`
|
||||||
|
- `git diff --check`
|
||||||
|
- `nix build .#yoi`
|
||||||
|
|
||||||
|
Parent/orchestrator reran after merge:
|
||||||
|
|
||||||
|
- `cargo test -p manifest workspace_local_override -- --nocapture`
|
||||||
|
- `cargo test -p pod manifest_mode_does_not_apply_workspace_local_override -- --nocapture`
|
||||||
|
- `./tickets.sh doctor`
|
||||||
|
- `git diff --check`
|
||||||
|
- `nix build .#yoi`
|
||||||
|
- `./result/bin/yoi pod --help`
|
||||||
|
|
||||||
|
## Residual risk
|
||||||
|
|
||||||
|
`ProfileResolver::resolve()` still discovers named/default profiles from process cwd while `with_workspace_base(...)` controls scope and override discovery. This was judged non-blocking for the intended CLI/Profile/default/SpawnPod paths, but future callers should avoid assuming `with_workspace_base` also binds registry discovery.
|
||||||
|
|
@ -2,12 +2,12 @@
|
||||||
id: 20260601-125240-workspace-local-manifest-override
|
id: 20260601-125240-workspace-local-manifest-override
|
||||||
slug: workspace-local-manifest-override
|
slug: workspace-local-manifest-override
|
||||||
title: Support workspace-local manifest override layer
|
title: Support workspace-local manifest override layer
|
||||||
status: open
|
status: closed
|
||||||
kind: task
|
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-01T13:05:58Z
|
updated_at: 2026-06-01T13:19:36Z
|
||||||
assignee: null
|
assignee: null
|
||||||
legacy_ticket: null
|
legacy_ticket: null
|
||||||
---
|
---
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Implemented workspace-local .yoi/override.local.toml as an ignored manifest override layer for normal Profile/default startup. Explicit --manifest remains override-free; focused tests and nix build passed.
|
||||||
|
|
@ -80,4 +80,69 @@ Implemented workspace-local manifest override support.
|
||||||
All completed successfully.
|
All completed successfully.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: review author: hare at: 2026-06-01T13:19:35Z status: approve -->
|
||||||
|
|
||||||
|
## Review: approve
|
||||||
|
|
||||||
|
# Review: workspace-local manifest override
|
||||||
|
|
||||||
|
Reviewer Pod: `workspace-override-reviewer-20260601`
|
||||||
|
|
||||||
|
## Result
|
||||||
|
|
||||||
|
Approved. No blockers found.
|
||||||
|
|
||||||
|
## Findings
|
||||||
|
|
||||||
|
The implementation satisfies the intent:
|
||||||
|
|
||||||
|
- `.yoi/override.local.toml` is discovered as the workspace-local override.
|
||||||
|
- The override applies only to normal Profile/default resolution.
|
||||||
|
- Explicit `--manifest <path>` remains a single-file escape hatch and does not load the workspace override.
|
||||||
|
- Merge order is builtin/default + selected Profile, then workspace override, then final `PodManifest` validation.
|
||||||
|
- Relative paths in the override are resolved from the override file parent `.yoi/` directory.
|
||||||
|
- `.yoi/manifest.toml` cascade was not reintroduced.
|
||||||
|
- Overrides that set `pod.name` are rejected.
|
||||||
|
- Provenance is recorded narrowly through `manifest.profile.workspace_override`.
|
||||||
|
|
||||||
|
## Follow-up handled
|
||||||
|
|
||||||
|
Reviewer requested non-blocking coverage for the case where both parent and nested `.yoi/override.local.toml` exist. Coder added commit `8f98785 test: cover nearest workspace override`, which verifies the nearest nested override wins and checks provenance.
|
||||||
|
|
||||||
|
## Validation evidence
|
||||||
|
|
||||||
|
Coder reported:
|
||||||
|
|
||||||
|
- `cargo test -p manifest workspace_local_override -- --nocapture`
|
||||||
|
- `cargo test -p pod manifest_mode_does_not_apply_workspace_local_override -- --nocapture`
|
||||||
|
- `cargo test -p manifest -p pod`
|
||||||
|
- `./tickets.sh doctor`
|
||||||
|
- `git diff --check`
|
||||||
|
- `nix build .#yoi`
|
||||||
|
|
||||||
|
Parent/orchestrator reran after merge:
|
||||||
|
|
||||||
|
- `cargo test -p manifest workspace_local_override -- --nocapture`
|
||||||
|
- `cargo test -p pod manifest_mode_does_not_apply_workspace_local_override -- --nocapture`
|
||||||
|
- `./tickets.sh doctor`
|
||||||
|
- `git diff --check`
|
||||||
|
- `nix build .#yoi`
|
||||||
|
- `./result/bin/yoi pod --help`
|
||||||
|
|
||||||
|
## Residual risk
|
||||||
|
|
||||||
|
`ProfileResolver::resolve()` still discovers named/default profiles from process cwd while `with_workspace_base(...)` controls scope and override discovery. This was judged non-blocking for the intended CLI/Profile/default/SpawnPod paths, but future callers should avoid assuming `with_workspace_base` also binds registry discovery.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: close author: hare at: 2026-06-01T13:19:36Z status: closed -->
|
||||||
|
|
||||||
|
## Closed
|
||||||
|
|
||||||
|
Implemented workspace-local .yoi/override.local.toml as an ignored manifest override layer for normal Profile/default startup. Explicit --manifest remains override-free; focused tests and nix build passed.
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
Loading…
Reference in New Issue
Block a user