Skip to content

v0.19.3

Choose a tag to compare

@github-actions github-actions released this 10 Sep 09:09
7bc13b6

Fixed

  • Handoff YAML rejected folded block scalars, blaming indentation. closeout_summary: >- — valid YAML, and the natural choice for a wrapped prose field — failed with Invalid YAML indentation near: <first line of the text>. The parser handled only | and |-, so >- fell through to the plain-scalar path and the block body underneath it then failed the indentation check, producing an error that pointed at whitespace when the actual cause was the scalar style. That sends you re-indenting instead of changing one character. It matters because a handoff is usually written by a model and a model reaching for a wrapped prose field reaches for >-; this was found during the 0.19.2 surface verification by writing a handoff by hand and hitting it immediately. The parser now supports both block styles and all three chomping indicators — |, |-, |+, >, >-, >+ — with real folding semantics: a single line break between content lines becomes a space, a run of k blank lines becomes k newlines, and more-indented lines keep their breaks so a folded block can still hold an indented snippet. Literal blocks parse exactly as before; |+ is newly supported alongside them. The shipped templates/phase-handoff.yaml note, which said only literal blocks were supported, now names both.

  • /codecarto-guide left the model stalled instead of informed. It read the guide, tried to obey it, found no codecarto_* tools, concluded the MCP server was unavailable, and asked which repository and which pipeline to use rather than doing anything. Two causes, both in the Pi wrapper. The guide arrived as a bare user message — the handler queued the document through pi.sendUserMessage with no preamble, so ~200 lines of imperative instructions landed as if the user had typed them, with no task attached; a model given instructions and no task either starts driving immediately or stalls asking what to do, and the reported session did both in turn. And the guide is written for MCP: it says to call codecarto_status, codecarto_next, codecarto_validate and codecarto_complete, and that "every tool takes an absolute cwd" — but the Pi extension registers no tools at all, only slash commands the user invokes, so there was nothing to call and their absence read as a broken server. The drive loop differs too, which made following the guide wrong twice over: /codecarto-next executes the phase itself as an isolated sub-agent and then auto-validates and auto-completes it, so the guide's hand-written execute → handoff → validate → complete loop does not describe a Pi session at all. The guide text is unchanged — agent-skill/ stays the single source and core/guide.ts still serves it verbatim to every surface — and the framing lives in the wrapper, where per-surface logic belongs: a reference-not-a-task header, the document embedded whole and unmodified, then a Pi-surface addendum covering the tool-to-command mapping (and the two library tools that have no Pi equivalent), the absent cwd argument, and the auto-validate/auto-complete loop. MCP needed no change; a tool result is framed by being one. Verified live with the same model and the same guide bytes, framing the only variable: before, it committed to the codecarto_* loop and asked for a repo path and pipeline; after, "I've read the CodeCartographer guide — ready when you are", and asked how to run a phase it answers /codecarto-next and explains that validation and completion are automatic here.