Skip to content

WhyGraph 2.5.0

Describe core can now skip the file-by-file descriptions of large commits, which are most of its cost on a repository with many large merges. /whygraph-implement runs a plan unattended, with a pre-flight check, a recovery ladder and a deadline on every Verify, and /whygraph-plan reviews a deep plan before it asks its questions. DeepSeek tool calls in Chat no longer show up as raw markup.

Upgrading and rolling back

From 2.4.0, run whygraph update, then Settings > Update agent files in each project to pick up the new plan and implement commands. 2.5.0 changes no database, so to go back, re-run the installer from the v2.4.0 tag and whygraph up (whygraph update refuses a downgrade).

What's new

  • A cheaper Describe core. Describe core gets a checkbox, Also describe large commits file by file (ticked by default, so nothing changes unless you untick it). Unticked, Describe core describes only the core commits and leaves the per-file changes of large commits in core files until a question reaches them. On a repository with many large feature merges those file changes are most of the cost: on one 4,100-file application they were $1.17 of Describe core's $1.74. The estimate card shows what they add, and the Describe core button's price follows the checkbox. Describe all and Full rescan still describe them.

Changes to know about

  • Plan agents can stop their background tasks. The whygraph-planner, whygraph-synthesizer and whygraph-implementor agents get Claude Code's TaskStop tool, so a command one of them runs in the background can be stopped instead of left running. Run Settings > Update agent files to pick it up.
  • /whygraph-implement runs unattended, and /whygraph-plan reviews its plan. An implement run now needs no flag: a script probes and baselines every Verify and Acceptance Check before the first edit, a counted recovery ladder (a retry on the next model up, one amendment of a step's Verify or Files line, a findings re-run) handles a failing step, every Verify has a deadline (WHYGRAPH_VERIFY_TIMEOUT, 540 s by default), and every stop prints one block with its cause and the next action. --fix-attempts now defaults to 2, and the command pre-approves plan-tool.sh, so a plan's Verify lines run without a prompt: run only a plan you reviewed. In Claude Code the ladder and pre-flight are complete; Cursor has them on one model without the review gate; VS Code and Codex get the deadline and the new default. Before it asks its questions, /whygraph-plan also sends a deep plan to a logic reviewer, and a UX/UI reviewer for a screen change, then a fixer applies only the findings it verifies (at most 25% growth). --review forces it, also for a single-pass plan, and --no-review skips it. Run Settings > Update agent files to pick it up, and see Planning a change.
  • Rationale cards keep the source's hedges. When a commit, PR or issue calls a risk possible, a new card keeps it possible and names the source, for example "PR #12 notes a possible race". The card still adds no hedges of its own. Cards already cached are unchanged until they are generated again.
  • The MCP server instructions now say what whygraph_propose_note does. It proposes a team note for a decision or constraint the code does not show, and the note waits for a person to confirm it. Nothing to update: a connected agent reads the new text on its next session.

Fixes

  • DeepSeek answers no longer show raw tool-call markup in Chat. DeepSeek models sometimes write a tool call as text (<||DSML|| invoke ...>) instead of calling the tool. Chat used to show that markup as the answer. It now runs the call the markup describes and keeps the markup out of the answer. This also covers DeepSeek models served through OpenRouter. Markup that cannot be read is still shown, as before.