Changelog
Every Coducky release, newest first.
-
0.3.0
Added
- Choose the reviewer reasoning effort: the reviewer picker now has a Low / Medium / High control (defaults to Medium). Reasoning-capable API models (including those routed through OpenRouter) receive it as their reasoning effort, and the Codex and Claude Code agents run at the chosen effort. Other external agents that expose an effort setting use it where they can; the rest run at their own default.
- Claude Code and Codex now stream their reasoning into the live activity timeline as they review, like opencode already did.
- A note in Settings, External Agents explains that, during a review, an agent may choose to use its own skills and tools (the commands, MCP servers, and capabilities configured in its CLI), in addition to the files Coducky shares with it.
Changed
- OpenRouter-routed Anthropic and Gemini reviews now opt into prompt caching where those providers require explicit cache markers, reducing repeat prompt costs during multi-turn reviews.
- A more honest review verdict: the top-line verdict now reflects the model's overall readiness and each finding's severity, not just whether a bug was filed. Reviews with real concerns surface "Worth another pass" or "Needs a look" instead of a flat "Looks good to me", and the summary line counts everything still worth weighing.
- External agents are now opt-in: in Settings → External Agents, an agent can only be switched on once Coducky has confirmed its CLI is installed, and only enabled agents are offered in the reviewer picker. This stops an agent that isn't installed from being selectable and then failing mid-review. (After updating, re-enable the agents you use, they start off.)
- Agents stop reciting host instructions in their thinking: only Claude Code (which needs it) is now told to call the host file-read tool by name; other agents (opencode, Cursor, Copilot, Gemini) get a generic steer toward their own file-read tool. Previously every agent was handed a Claude-specific tool name, so agents like opencode would visibly argue with it in their reasoning ("I don't have that tool…") and leak the instruction.
- Readable line length for agent reasoning. The streamed thinking and message prose now cap their width so long lines stay easy to read on wide windows. Tool steps keep their natural width.
Fixed
- Provider rate-limit errors now explain the key state when available: for OpenRouter 429s, Coducky checks the key limit endpoint and includes retry-after, remaining credits, recent usage, and free-tier status in the failure message.
- OpenRouter reasoning now appears in the review activity timeline when a reasoning-capable routed model streams
reasoning_details, matching the thinking trail shown for agent reviewers. - Clear reason when an agent review can't start: a review that fails because the agent isn't installed or isn't signed in now says which agent and how to fix it (e.g. "Cursor CLI isn't signed in, run
cursor-agent login") instead of a rawexit 127/rpc -32000. - Agent reasoning renders cleanly: an external (ACP) agent's streamed thinking in the activity timeline and the completed-review drawer no longer shows gaps inside words (e.g. "Bound ary"), and now renders the agent's Markdown, bold leads, inline
code, lists, instead of raw**and backticks. - External-agent reviews no longer stall when Coducky is in the background. A review run by an external agent now keeps streaming when the app is hidden or behind other windows on an idle Mac, instead of silently freezing until you bring Coducky back to the front.
- Switching tabs during a review no longer ends it. You can now move to the Diff tab (and back) or browse elsewhere while an external-agent review streams, without the review cutting short and jumping to partial results.
- Smoother, lighter external-agent reviews. A fast-streaming agent (opencode especially) no longer drives a CPU core to 100% as its reasoning streams in; the live activity timeline and transcript now update at a steady cadence instead of re-rendering on every token.
-
0.2.0
Added
- Model suggestions in Settings → Providers: Coducky can fetch the live model list from each configured endpoint (a Refresh control next to the field), then autocompletes model ids as you type. Suggestions are cached per provider across launches.
- Cursor and GitHub Copilot agents: both are now available as built-in ACP external agents.
- opencode agent: SST's opencode is now available as a built-in ACP external agent (runs
opencode acp; sign in withopencode auth login). - App version on the Updates pane: Settings → Updates now shows the current version and build.
- Plan in the activity timeline: agent reviews now show the agent's plan (its checklist of steps) in the live activity timeline, updating as steps complete.
- Searchable reviewer picker: type to find any model or agent in one list (no more scrolling a wall of every provider's models), drag your chosen reviewers to set the order they run in (Sequential), and Set as default selection so every repo opens pre-selected.
Changed
- A reviewer must be selected to run: Generate / Re-run are disabled until at least one model or agent is chosen, instead of silently falling back to a default model (which could 404 if your first provider didn't serve it).
- Model lists are now editable pills: selected models show as removable chips in Settings → Providers instead of a raw comma-separated field; click the × on a pill to drop a model.
- Enable/disable external agents: Settings → External Agents greys out unavailable agents and offers a switch to enable or disable each available one as a reviewer choice.
- Refreshed visual design: a macOS-native grey/blue/white colour scheme (light and dark), a frosted titlebar and sidebar with behind-window vibrancy, emphasized blue source-list selection, and accent-tinted rounded buttons throughout.
- Brand reviewer discs: reviewers now show their provider's real logo and brand colour.
- Copy as Markdown: the AI review "Export" action is now labelled "Copy as Markdown".
- Wrapping review titles: long review titles in the sidebar wrap up to three lines instead of truncating.
- Button press feedback: primary calls to action (View in Diff, Generate review, Open the diff) and bordered secondary buttons (re-run, cancel, Copy prompt) now dim briefly while pressed.
- Activity timeline auto-scroll: the live activity timeline now stays scrolled to the newest step as a review streams in.
- Faster agent reviews: external (ACP) agents now receive the diff inline instead of reconstructing it by repeatedly running git and re-reading files, and are told to review statically rather than run the test suite or build the project. Reviews are faster and stay focused on the change.
- Deeper agent reviews: external (ACP) agents now follow the same strict maintainability rubric as the built-in providers (ambitious structural simplification, escalation triggers, one high-conviction finding over a pile of nits) instead of their generic coding-assistant defaults.
- Cleaner agent file access: the agent prompt now points reviewers at the host file-read tool (
mcp__acp__Read) instead of a built-inReadthat the ACP session doesn't expose, so agents read files directly rather than failing every read and grepping the tree symbol by symbol. - Agents warm up while you read: the selected local agents start up in the background as you view a diff, so kicking off a review no longer waits on the agent to launch. They're reaped if you move on without reviewing.
- Faster npx-based agent launch: Claude Code and Codex now launch from the local npm cache (
--prefer-offline) instead of re-checking the registry on every spawn, cutting several seconds off each cold start once the adapter is cached.
Removed
- Review cockpit "Re-run" button: removed.
Fixed
- Reviewer picker stays open for multi-select: choosing a model no longer closes the picker after each click, so you can select several reviewers (and toggle the run mode) in one pass.
- Agents in the re-run picker: external (ACP) agents now appear in the reviewer picker on a completed review's "Re-run" footer, not just on the initial launch screen.
- Clearer message when a review fails on a bad model id: an unknown model now reads "Model not found:
" instead of a raw HTTP error blob, and the failure screen offers an Open Provider Settings button to fix it. - Automatic update checks: now on by default for fresh installs (the toggle was inadvertently off).
- External-agent review titles: reviews run by ACP agents now take their title from the agent's output.
- External-agent file reads: ACP agents can read files again; absolute paths (which the protocol requires) were being rejected, so every file read during an agent review failed.
- Activity timeline connector line: the rail no longer draws over the step icons; it connects them cleanly and stops at the in-progress step.
- Failed tool calls show dimmed, not hidden: when an agent's tool call fails (including a transient miss it self-corrects from, e.g. reaching for an unavailable tool like Claude's native
Read), the activity timeline now renders it de-emphasised instead of dropping it, so the reasoning trail stays honest without alarming. - Cockpit findings breakdown matches the finding tags: the review cockpit now counts findings by kind (Bugs / Nits / Questions / …), matching the chip on each finding, instead of by severity. Previously a finding tagged "Bug" but rated only "warning" was miscounted as a "Nit", and the verdict now flags any bug for a look.
-
0.1.2
First public release of Coducky for macOS.
Added
- AI code review: open any local Git repo, select a branch or commit range, and get an inline review from an AI model.
- Multiple providers: connect OpenAI, Anthropic, OpenRouter, or any OpenAI-compatible endpoint via Settings → Providers.
- External agents (ACP): run your own AI agents alongside built-in providers; Coducky brokers file access via the Agent Communication Protocol.
- Review cockpit: live activity timeline showing the model's reasoning, tool calls (grep, read file, list dir), and findings as they stream in.
- Inline annotations: findings are anchored to diff hunks; grouped by file with severity indicators.
- 7-day free trial: starts automatically on first launch; upgrade to a full licence via Settings → Licence.
- Automatic updates: Sparkle checks for new versions in the background (Settings → Updates to configure).