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-synthesizerandwhygraph-implementoragents get Claude Code'sTaskStoptool, 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-implementruns unattended, and/whygraph-planreviews its plan. An implement run now needs no flag: a script probes and baselines everyVerifyand Acceptance Check before the first edit, a counted recovery ladder (a retry on the next model up, one amendment of a step'sVerifyorFilesline, a findings re-run) handles a failing step, everyVerifyhas a deadline (WHYGRAPH_VERIFY_TIMEOUT, 540 s by default), and every stop prints one block with its cause and the next action.--fix-attemptsnow defaults to 2, and the command pre-approvesplan-tool.sh, so a plan'sVerifylines 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-planalso 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).--reviewforces it, also for a single-pass plan, and--no-reviewskips 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_notedoes. 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.