Records:
- Branch feat/v0.6-multi-agent-config is the active surface for v0.6;
Phase 1 (5 commits) is implemented, tested, and reviewed but the
branch is NOT merged into main. Phase 2 and Phase 3 will continue on
the same branch per the v0.6 spec's "one branch, three sequential
milestones" policy. The eventual merge happens at the end of Phase 3
alongside the version bump.
- The five Phase 1 commits with one-line summaries each:
6f80c8b config file parser + resolver + source attribution
0b21b8d schema_version and workspace.mode in task.yaml
c918e5c doctor Settings section with source attribution
937a1c8 info source attribution on Agent and Launch session mode
6182d89 platform-override stderr warning on launch paths
- Per-commit detail: what each commit landed, where the load-bearing
code lives, and what the test coverage is.
- Verification gate (all clean on tip 6182d89):
go test ./... -count=1, go vet ./..., go build, just build-linux
(statically linked ELF). Version stays v0.5.4 — bump is deferred
to the end-of-Phase-3 commit.
- Phase 1 constraints held: no config auto-creation, no opportunistic
schema writes, env vars remain overrides, task.yaml remains
workspace state, no Phase 2 or Phase 3 work started.
- Native-Windows platform-override behavior across the three surfaces:
* doctor + info — show source attribution
* launch paths (new/resume/last/open) — emit one stderr warning
per invocation and downgrade to direct
* attach — does NOT downgrade; continues to refuse via
preflightPersistentEntry because it has no direct-mode equivalent
- Architecture notes worth preserving for future Phase work:
"one resolver per command", exported test seams, validation in
ReadMeta rather than callers, omitempty as the load-bearing
primitive for no-opportunistic-writes.
- Files-committed list and "How to resume" section both updated to
point at Phase 2 as the next horizon and to enumerate the resume
sanity checks against the unmerged branch.
Bump notes.md to anchor on v0.5.4:
- Top stanza + "Where we are": v0.5.4 shipped on main at merge commit
10b7d5a, installed binary reports v0.5.4.
- Insert "What v0.5.4 delivered" with the 8-commit list and
validation results.
- Insert "From v0.5.4 (new -- don't unlearn)" load-bearing design
points covering SessionStatus's display-only contract, the
session.json/mode naming preserved from v0.5.3, the column-14
alignment in info, the SESSION column / list --names invariant,
and the errArchivedWorkspace sentinel scoping.
- Append v0.5.4 Don't re-do entries (display-only SessionStatus, no
PID liveness in the helper, --names contract, archived em-dash,
sentinel scoping, cmd-vs-session boundary, no hardcoded "ctask").
- Replace "Next: v0.6 (planning)" with "Next: v0.6 Phase 1" listing
config file + schema_version + workspace.mode + source attribution
in doctor/info -- explicitly noting Phase 2 (agent profiles,
AGENTS.md, PID liveness, lazy-cleanup adoption) is out of scope
until Phase 1 is implemented and reviewed.
- Update Tree state, How to resume, Files to read first.
- Resolve closed limitations: v0.5.2 duplicate Cobra Error line, the
v0.5.3 invocation-name asymmetry (audit codified the split as the
right line), info/list session-state visibility, docs/commands.md
staleness.
- Record spec deviations: v0.5.4 spec referred to .ctask/lease.json
and session_mode but the actual code uses session.json and mode.
Implementation correctly preserved the existing names per the
spec's "no new metadata fields" constraint. Future specs touching
this surface should use the actual names.
Add the v0.5.2 round summary (commits a5e508b..3b6be0d + 5910100):
restore/notes/path commands, direct-lookup archived-inclusive policy,
resume archived hint, list --names, shell completion, cross-workspace
context seed section. Windows + WSL validation passed; Linux binary
statically linked.
Add load-bearing v0.5.2 invariants to the "don't unlearn" section
(archived-inclusive lookup policy, list --names emits basenames not
slugs, completion calls ListWorkspaces directly, etc.). Replace the
"Next: v0.5.2" pointer with a "Next: v0.6 (planning)" stub covering
config/agent profile work, resume-error polish, and flag-aware
completion for open/delete --all.
Drop v0.5.2-spec.md from the untracked-files list (committed in a5e508b).
Update notes.md with the v0.5.1 Linux portability baseline (commits
7a7b249, 1033072): WSL-native validation passed, install.sh works,
ctask doctor recognizes the Linux statusline helper, the cross-built
Linux binary is statically linked, and WorkspacePath was removed from
new task.yaml metadata. Add load-bearing notes for the new invariants
(CGO_ENABLED=0, install script does not modify shell config) and a
"Next: v0.5.2" pointer.
Also check in v0.5.2-spec.md so the workspace-retrieval round has the
same on-disk durability as the prior specs.