Skip to content

v0.10.4

Choose a tag to compare

@gonimar gonimar released this 16 Sep 19:25
· 128 commits to master since this release
  • hooks/session-state.sh never destroys a state file again, and converts one on request. Shipped in 0.10.3, it rebuilt active.md from its own seven fields and silently dropped everything else: on the first project that used it, a 148-line working state — sprint status, fifteen lessons, tech debt, a cleanup plan with an open item — became nine lines, in a gitignored file with no archive behind it; the content came back only because the session had read it earlier. The writer now refuses any file it cannot round-trip, says how many lines it does not understand and what to do instead, and backs the file up before every write it does make (last five kept). session-state.sh migrate does the conversion once and deliberately: the whole previous file is archived to production/session-state/archive/active-<timestamp>-premigration.md, the fields it recognises — including the bold **Task**: spelling — are carried over, and the output says where the rest belongs (sprint file, agent memory, findings, backlog). The template says what lives in this file and what does not. The post-edit-check hint no longer points at the call that did the damage. (WS-115)
  • /impact no longer writes Next:. Next: is where the session was heading and a triage is usually a detour from it, so the skill's own instruction contradicted coordination rule 7 — a project session hit exactly that, with Next: /sprint-plan 04 pending while /impact was told to overwrite it. The verdict's commands go into the dated note and the closing question; Next: changes only when the user picks one there, because that choice is what makes it the task. (WS-116)
  • /dev-story states that the parent does not write the story's code. The skill said "implementation via Task to the right engineers" and named them, but nothing said what happens when an agent is cut off at its turn limit — and across four stories in a row the implementing agent was spawned once, wrote nothing, and the parent wrote 687 lines itself while the stories passed. The rule is now explicit: every file through Task with an explicit studio subagent_type, a truncated agent is resumed rather than replaced, twice-truncated work is split into smaller calls, and a parent-written fallback is recorded in the story result in one line. Phase 3 plans in agent-sized steps and names the agent per step; Phase 5 compares the agents that actually started in agent-audit.log against the ones the plan named. (WS-087)
  • CI no longer cancels runs on the default branch: cancel-in-progress is now conditional, after three PR merges went in while the run that was checking them was cancelled by the next push. (CWS-07)
  • The settings templates stop auto-approving pnpm dlx <any package>: Bash(pnpm *) is replaced by the same narrow verbs npm already had (install, run, test, audit, outdated). A permission rule that runs arbitrary code from the network is not a convenience. (CWS-12)