fix(cascade): validate operating_context as a path, not a filepath #313
No reviewers
Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose!313
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/operating-context-os-independent-clean"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
operating_contextentries are logicalowner/repositoryidentifiers, but the cleanliness check ranfilepath.Cleanon them. That is OS-specific: on Windows it rewritesowner/repositorytoowner epository, soClean(value) != valuefor every well-formed entry andLoadConfigrejects all of them.That made
agent-composeunusable on native Windows, a catch-22:composerequiresoperating_context, and the same binary refuses every value it can hold. Evenfoo/barfailed, and the backslash spelling is rejected on purpose, so no config could both validate and compose.Change
path.Cleaninstead offilepath.Clean: forward-slash and OS-independent, which is what an owner/repository identifier wants.strings.HasPrefix(value, "/")instead offilepath.IsAbs, which was the same OS-specific trap.filepath.ToSlash, because the backslash rejection above it already guarantees forward slashes.Behaviour on unix is unchanged:
path.Cleanandfilepath.Cleanagree there.Verification on kai-tower-3026 (native Windows)
Against the shipped v2.32.0 and this build, on the same config:
And a full
composerun against an isolatedHOME, which v2.32.0 cannot start at all:go test ./...on Windows goes from 33 failures to 12, with 22 tests fixed and 0 newly broken acrosscascade,compose,converge, andnativelaunch. Most of those tests writeoperating_contextinto their fixture config and were failing atLoadConfig.Two new tests pin the behaviour: forward-slash entries load, and the malformed spellings (backslash, absolute, unclean, trailing slash, wrong segment count, empty, duplicate) stay rejected.
Not in scope
The 12 remaining Windows failures are separate portability defects, all pre-existing on
main: path separators baked into assertions,HOMEvsUSERPROFILEinTestResolveSkillLoadPointsDefaultsWireClaudeAndCodex, a stale palette snapshot, embedded-roster mismatches, and askillmountverified/preserved split inTestConvergeComposesRosterIntoCascade. Worth their own issue.Closes coilyco-flight-deck/infrastructure#887.