Changelog
What changed in each release of Limn, newest first. Run npx limn-review to get the newest release.
On this page
You are reading the docs for Limn 1.0.33. npx limn-review always runs the newest release. Changes under Unreleased are on their way and arrive with the next release.
#Limn 1.0.33
13 November 2026
Changed
- Ask about this story: the agent is ready sooner. It reads each repository from one copy kept between chats and brought up to date when the default branch moves.
#Limn 1.0.32
13 November 2026
Added
- The story view: "Ask about this story". Ask how to prove the ticket is done once its pull requests are merged, what is still missing, or how it fits with the rest of the system. The answer comes from the ticket, the pull requests' changes and code, every repository in the workspace, the reference documents, the sprint's other stories, and your Claude memory, CLAUDE.md and skills; nothing is run or changed. Chats are saved with the story.
Fixed
- Build end to end: the summary in the Jira comment keeps words like "Q3" and "P1" instead of removing them.
#Limn 1.0.31
12 November 2026
Added
- Manage repos & workspaces: a repository can be in more than one workspace. It is Maintained in one at most and External in any number of others. Making it Maintained in a workspace turns it External where it was before.
- Manage repos & workspaces: a Grid view shows every repository against every workspace. Click a cell to change it.
- Manage repos & workspaces: "Add one of your repos…" adds a repository you already have to the workspace, and "Add as" picks Maintained or External for new ones.
- The sidebar's Repositories list shows the workspace's External repositories too, marked External, and their pages open.
Changed
- Manage repos & workspaces: "Watched" is now "Maintained". The dialog is wider, each repository fits on one line, and the workspace you pick lists its Maintained and External repositories. "In other workspaces" is gone.
- Manage repos & workspaces: the repository search lists nothing until you type, except before your first repository.
- Build end to end: the Jira comment lists the pull requests, then a short plain summary of what changed on the ticket and why, and the lines removed and added. It no longer names Limn, the review rounds or internal references.
Fixed
- Repository search: Next and Prev show a spinner while the page loads.
- Manage repos & workspaces: removing a repository fades its line and shows a spinner, and you can remove another one at the same time. Before, the other remove buttons did nothing until the first removal finished.
- Opening Limn after a restart comes back to the workspace you last had open from a link, not Default.
#Limn 1.0.30
12 November 2026
Added
- Manage repos & workspaces: mark a repository External when your team changes it but does not maintain it, such as a shared infrastructure repository. Implement story and AI Fix still work in it, and its pull requests link to your tickets. Open PRs, Pending and AI reviews show only its pull requests that have one of your project keys or that your team's maintainers opened. Reports, the Timeline, the Feed and Bots leave it out, and nothing runs on it automatically.
- Open PRs: "Copy GitHub URL" in a row's right-click menu.
- Open PRs: the side panel shows a "Merge queue" row while GitHub's merge queue holds the pull request.
- Story check: a Stop button on a check that is waiting in line or running. A stopped automatic check does not start again until the ticket's pull requests or the ticket change.
- Implement story: "Build end to end" in the caret menu of Implement and Fill gaps. One press plans, approves the plan, builds, reviews and fixes for up to 4 rounds, opens the pull request, then updates the Jira ticket from the plan and comments on it as you, with links to the pull requests. It never changes the ticket's status.
- AI Fix: "Push when done", ticked by default. A fix that finishes on your own pull request with nothing left unfixed is pushed to its branch without a press; otherwise the session says why it waited.
Changed
- Implement story and Fill gaps: the agent always gets the workspace's reference documents when there are any, and uses only the parts that help with the ticket. The plan says which it used. "Implement with docs" and the docs box are gone.
- Implement story: the review and fix loop runs up to 4 rounds by default (was 3).
#Limn 1.0.29
12 November 2026
Added
- AI Fix: up to three fixes now run at once. When every sandbox is busy, a fix (yours or an auto fix) waits in line and starts by itself as soon as one frees, your own presses first. The AI Fix tab shows its place in line, with Cancel. To make room, a fix session of yours that has done nothing for a minute is closed; its changes are kept.
#Limn 1.0.28
12 November 2026
Added
- Changes tab: Markdown files show rendered, with a Plain text button in the file's header to see the diff. Limn remembers your choice.
- Implement story and Fill gaps: "After the build: review and fix, then open the pull request". Limn pushes the branch, reviews it and checks it against the ticket, the agent fixes, answers or pushes back on each point, and Limn reviews again, for up to the number of rounds you pick (3 by default). Then it opens the pull request, ready for review. The review stays in Limn. The build tab shows each round, and Continue goes on after a pause (for example when the AI spend limit is reached).
- Implement story and Fill gaps: "Approve the plan automatically". Limn agrees with every change the plan proposes and starts the build without asking. It does not change the ticket: once the pull request is open, the build shows the ticket changes so you can update the ticket or leave it. With "After the build: review and fix" ticked too, Start is the only press. The Start panel remembers both boxes.
- A hammer circle among the notifications shows each running build's progress, and counts the builds that wait for you (a plan to approve, a build to push, a paused review, a failure, ticket changes to check). Select a build to open it.
- Auto fix now starts on CI failures too, not only after an auto review. It waits for the CI jobs to finish, gives the AI review of the same commit a short time so one fix covers both, and queues a fix behind one that is running; each starts from what is still open on the latest commit. The AI Review tab shows what the next auto fix waits for and lists every auto fix of the pull request, and an "Auto fixes" circle among the notifications shows the ones running or failed.
Changed
- Implement is now offered on In progress tickets with no pull request, as well as Not started ones.
- Implement story and Fill gaps: the pull request and its commit are now yours, not your Limn bot's, so they count like any pull request of yours (auto review included). The branch is the ticket key, such as PAY-142, with no
limn/in front. The pull request body no longer ends with "Built with Limn". - Implement story: after planning, you can review and edit the whole ticket (description and acceptance criteria), with the changed words highlighted, and update it in Jira with one press. The update keeps the ticket's layout.
Fixed
- Update ticket now writes the acceptance criteria in the field's own format, so lists and headings show correctly in Jira. When a ticket keeps its criteria in the description, they go into that section, and the rest of the description (colours, images, panels) is left exactly as it is.
- Implement story: when the branch already exists on GitHub, Push now offers a new branch name (such as PAY-142-v2) and pushes to it. Before, there was no way past it.
#Limn 1.0.27
11 November 2026
Added
- Settings → AI: Use my API keys first. Tick it to run Claude on the
ANTHROPIC_API_KEYin Limn's environment even while you are signed in to Claude Code. The box says whetherANTHROPIC_API_KEYandOPENAI_API_KEYare set. Codex keeps using your ChatGPT sign-in: Codex runs on an API key are not available yet.LIMN_AI_USE_API_KEY=trueorfalsestill decides it from the environment. - Implement story: before you press Start, the build tab says what the agent gets beside the code — how many of your Claude memories (and from how many projects), your CLAUDE.md, your own skills and the skills your repositories keep in
.claude/skills. Change opens Settings → Sandbox. - Implement story and AI Fix sessions: the agent is told about every skill your repositories keep in
.claude/skills, and reads one when its task comes up.
#Limn 1.0.26
11 November 2026
Changed
- When Claude or Codex is at its usage limit, Limn uses the other one until the limit resets: replies to that model's findings, Check threads, CI and ticket reviews and the review chat run on the model with capacity instead of failing. A Claude + Codex review you start runs the other model alone, and the AI Review menu does not pick the pair first.
- On your own pull request, when a teammate's Limn has reviewed the commit with Claude, your Limn no longer runs Codex alone on it. Their findings show in the AI Review tab, and your replies are still judged.
Fixed
- CI check: a failing SonarCloud check is now explained, from SonarCloud's own analysis of the commit (the quality gate and the issues), and posted like any other failing check. Before, it had no log to read, so when it was the only red check nothing was explained. This runs whether or not an AI review runs.
- AI Review tab → SonarCloud: the section now shows the pull request's latest commit, the one AI Fix uses. Before, it showed the reviewed commit, so once the pull request moved on it stayed empty and Refresh said "SonarCloud has not analysed this commit yet" while naming the latest commit.
- SonarCloud findings are now posted when SonarCloud finishes after the auto review, for up to 2 hours. Before, the one try at the end of the review usually came too early, and nothing was posted.
- Replies to a Codex finding were sent to Codex even while it was at its usage limit, so every replies check on them failed. They are now judged by Claude.
#Limn 1.0.25
11 November 2026
Changed
- Story check: when the latest check found every acceptance criterion met, Limn no longer checks the ticket again by itself after a push, a pull request joining or merging, or a new comment. The line says "No automatic story check — the last one found every criterion met". A change to the ticket text starts automatic checks again. Re-check still runs one now.
- This Sprint → Refresh: no longer starts a story check for a ticket whose last check found every acceptance criterion met, unless the ticket text has changed since.
#Limn 1.0.24
11 November 2026
Fixed
- AI Review tab → Reviews on this PR: on your own pull request, a review of yours that approved or requested changes reads "Approve (posted as Comment)" or "Request changes (posted as Comment)", matching "Where this PR stands".
#Limn 1.0.23
11 November 2026
Added
- Settings → AI review → Auto AI Fix: "Merge conflicts with the base branch" under Always include (off by default). With it on, an automatic fix of a pull request that conflicts with its base merges the base first. Limn checks the merge before any push, and a merge that fails the check is never pushed.
- This Sprint and the story view: assign a ticket. On Jira, GitHub Issues and Linear the assignee in the story view's header is a menu of the people your tracker lets you assign, plus "Unassigned". The ticket changes at once and the People board follows. On GitHub the person you pick becomes the issue's only assignee. Notion tickets show the assignee as before.
- The story view shows the assignee of a ticket that has pull requests but is not in the sprint.
Changed
- Settings → AI review: three settings are now always on and their switches are gone: the status Limn puts on a commit it is reviewing (was "Mark auto reviews on GitHub"), resolving Limn's threads once a later automatic review finds them fixed (was "Resolve Limn's threads once fixed"), and dismissing a teammate's Limn "changes requested" once every point is fixed (was the two "Teammates' Limn “changes requested”" boxes). Approvals are still limited by the impact boxes. When GitHub refuses the status (no write access), the review goes ahead without it and nothing is shown.
- Settings → AI review → Auto AI Fix: the rows no longer name one provider. "Claude's findings" is now "Limn's findings" (Claude's and Codex's alike), and "Threads Claude says to fix" is now "Threads my agent says to fix". The Auto review description says "Limn reviews…".
- Settings → AI review → What to post: "SonarCloud issues, in one PR comment" is now "SonarCloud issues": they are posted on the lines they flag.
- Settings → Sandbox: "Your local folder" and "Starting folder" are gone. Limn finds your clones through the folders where you use Claude Code, places each repository at the same path in the sandbox, and brings the Claude notes of each clone. Find shows what it found. The AI starts in the repository with the most notes.
- Settings → Sandbox → Services: Choose compose files lists every compose file in the workspace's repositories, from Limn's own copies. Tick the ones you want.
- Implement and AI Fix: while the repositories load, the setup counts them ("Loading repositories 3/7" and the repository's name).
- AI Fix loads only the pull request's repository and the repositories of the other pull requests of its ticket, not every workspace repository.
- Implement and AI Fix with Claude: the CLAUDE.md of every repository loads at the start, not only the one the AI starts in.
Fixed
- AI Fix: when one half of a Claude + Codex review failed, the earlier findings the other half then found still open were left out of the fix. They are now included with the other earlier findings.
- Implement and AI Fix brought no Claude notes unless a local folder was set, and none was set by default. The notes of each repository's clone now come in without a setting.
- Settings → Integrations → Ticket fields: the menus now line up in two columns, "Criteria" and "Open points", one row per issue type.
#Limn 1.0.22
10 November 2026
Changed
- AI Review: "Where this PR stands" now uses the same columns as "Reviews on this PR", and both lists show the time with the date ("10 Nov 14:04", 24-hour clock). The short note after each verdict is gone.
- AI Review: the review's summary is headed "Summary". The run name ("Codex's review", "Claude + Codex review", "Robin's review") and "reviewed 1 day ago" are gone, and so is the block repeating them on the right. The models and the cost stay behind the ⓘ. The same goes for the CI check and Story check headings: no "reviewed … ago" and no model name (hover the story's heading, or open the CI check's ⓘ, for when and with what).
- AI Review: "Run a review" no longer says "Waiting for a teammate's Limn to review" or "@robin-dunn reviewed this commit with Claude · approved"; the teammate's verdict is in "Where this PR stands". A teammate's Limn reviewing the commit right now is still named. Pending's "Waiting on others" row keeps its line.
- AI Review: a little more space at the bottom of the tab.
Fixed
- AI Review: "Where this PR stands" showed a teammate as having only commented when their Limn had approved after checking replies. It now shows the verdict GitHub holds: an approval in force reads "Approve", a withdrawn one "Approve (withdrawn)".
- A pull request with more than 50 reviews lost its newest ones, so a teammate's latest approval could show as an older comment or a withdrawn approval. Limn now reads every review.
- AI Review: on your own pull request, your row in "Where this PR stands" reads "Comment" (what GitHub holds), not the verdict your review would have given.
- AI Review: on your own pull request, findings no longer offer "Post reminder".
- AI Review: a review half that did not finish no longer repeats itself ("Codex didn't finish: Codex could not finish: …"); it reads "Codex didn't finish: you've hit your usage limit".
Removed
- AI Review: the "In this review" counts, the "Ticket" panel (the pull request's header links the ticket), and the "Review threads" section when there are no other review threads.
#Limn 1.0.21
10 November 2026
Added
- Settings → Sandbox: one line says how many Limn sandboxes are running now, with "Stop all" to stop them. Stored changes are kept; an automatic AI Fix that is running is cancelled.
- Open pull requests: right-click a row and choose "Start review" to start an AI review with your default choice (Claude + Codex when both are signed in). The item is greyed out, with the reason, while AI is not set up or signed in, or a review is starting, queued or running. Over your AI spend budget it asks once more. "Review started for #615" shows in the bottom-right corner.
- Auto review: a pull request whose author reviewed it with their own Limn (which can never approve it) is picked up by a teammate's Limn for the verdict, ahead of other automatic reviews, and first when the author's Limn would have approved. One teammate takes it through the usual status line; if their Limn stops renewing it for 25 minutes, another takes over. It counts toward the daily limit and asks the spend budget like any automatic review. The teammate's AI Review tab says why, for example "Queued: needs a verdict (alex’s own review would approve)".
- Your own pull request: the AI Review tab and the "Waiting on others" row say "Waiting for a teammate’s Limn to review" while your Limn's review is the only one at the latest commit, when a teammate's Limn has run automatic reviews in the workspace in the last two weeks.
- Auto review after a break: when Limn starts or the computer wakes, auto review waits (30 minutes at most) until your repositories have synced, then reviews what changed while you were away, the verdicts teammates wait for first.
Changed
- Sandboxes (AI Fix, Implement story): a sandbox is stopped and removed whenever its session ends, whatever ended it, including Limn stopping (Ctrl-C included). A session with nothing to do now closes after 15 minutes (was 60); its changes are kept and Resume starts a new sandbox. One turn of the AI that runs for more than 2 hours is stopped. Every few minutes, Limn removes any sandbox of its own that no open session uses.
- AI Review: the earlier findings are part of "Findings". Still-open ones sit under "Open" with the new findings; the rest under "Resolved or addressed". Each earlier finding says in one line how it was dealt with, or what is still needed, with the reply and its buttons on the same row.
- The "?" button at the foot of the sidebar opens the Limn docs in a new browser tab, on the page for where you are (Pending opens the Pending docs). The in-app help is in Search or jump ("Help and keyboard shortcuts"), the "?" key still opens the shortcut sheet, and Search or jump has "Open the Limn docs".
- The docs website: the pages under /docs no longer have the site footer. They end on one line with Privacy, Cookies, Terms and Cookie settings.
- Auto review, "Which PRs: Mine": a pull request that waits for a teammate's verdict (its author's own Limn review is at the latest commit, or new commits came after teammates' Limn reviews) now counts as yours, so the verdict reaches GitHub.
Removed
- AI Review: the separate "Previous review" section (its findings are now in "Findings").
- AI Review, Story check: "What this PR adds" and the "N more criteria are met by other PRs" line. Both stay in the ticket's story view.
- Story check: typing or pasting a story's text by hand ("Input manually", "+ Add story"). Add a ticket by its link or key instead; without an issue tracker there is no story check. Older checks of typed stories are no longer shown.
#Limn 1.0.20
10 November 2026
Changed
- AI Review: the right-hand column starts with the pull request's latest commit (click to open it, or copy it) under "Where this PR stands". "Reviews on this PR" lines up in columns (who, when, commit, outcome, what ran it), shows the newest 10 with "Show all" for the rest, and the column is a little wider.
Removed
- AI Review: the "Check replies" button (the replies check still runs by itself), the per-review "Auto review", "From scratch", "Deep review" and cost labels (the cost is behind the review's ⓘ), the live token count while a review runs, "Marked on GitHub", and routine "No auto fix" lines such as "auto AI Fix is off for this workspace".
#Limn 1.0.19
10 November 2026
Added
- Open tabs: hover a tab in the sidebar (or move to it with the keyboard) to see a short card that says which tab it is. For a pull request: its repository, author, state, CI, review, AI review and threads. For a ticket, a person, a bot or a list: what that tab shows.
- AI Review: when your Limn's review approves a pull request and a teammate's Limn "changes requested" still stands, your Limn dismisses it if it came from their automatic run, every point in every Limn review of theirs on the pull request is fixed at the latest commit, and the teammate has been away for 4 hours without their Limn looking at that commit. No setting is needed beyond "Approve or request changes for me"; the AI Review tab says when it happened.
Changed
- The Timeline is now optional and off by default. Switch it on in Settings → Features. While it is off, it leaves the sidebar,
g tand the search menu, a link to it opens Open pull requests, and pull requests open in their own tab instead of a Focus tab. - AI usage and Settings → AI spend show the 5-hour session bar and setting only when your plan has a 5-hour limit; weekly-only plans see the week alone, and a 5-hour share no longer pauses automatic runs on them.
- Claude's Max 20x plan is now called Ultra everywhere Limn names it.
Removed
- Website: the separate Getting started page. Its steps live in the docs' Getting started section, which gains a "Set up the rest" list, and the old address now goes there.
#Limn 1.0.18
10 November 2026
Changed
- Maintenance release: no changes you would notice.
#Limn 1.0.17
10 November 2026
Changed
- Docs: the Claude pages present your own Claude Code login and an Anthropic API key as two equal choices, with plain steps for each, and a short factual note on Anthropic's policy in place of the earlier warnings.
- Docs: pages no longer carry "Developer" / "Engineering manager" boxes, and the docs footer drops the large Limn wordmark.
#Limn 1.0.16
10 November 2026
Added
- Documentation at limn-review.com/docs: every page and tab of the app, AI review, AI Fix, Implement story, merging, every Settings tab, one page for each integration, security and running locally, and this changelog.
#Limn 1.0.15
9 November 2026
Added
- The story view shows the ticket's comments, open, for Jira, GitHub Issues, Linear and Notion: the newest three with "Show all", who wrote each and when, and a "New since the check" chip. It shows in the Ticket tab, the pull request's story and This Sprint's tray, also for a ticket with no pull request. Bot comments are left out.
- A "Met outside code changes" citation in a story check opens the comment it cites.
Changed
- "As written in …" no longer repeats the ticket's comments, so each comment shows once.
Fixed
- When a new ticket comment is waiting to be checked, the story check line names the comment. It no longer says it is waiting after a push that the last check already covered.
#Limn 1.0.14
9 November 2026
Added
- Findings that Limn posts as a pull request comment (because they could not go on a line) now follow the same life as review threads. Limn reads people's replies in the conversation, says whether each finding is still open, and closes the ones that were dealt with.
- Every follow-up item and thread judgement carries one short line that says how the point was dealt with, or the one thing still needed.
- A story check can mark an acceptance criterion "Met outside code changes" when a person's comment on the ticket shows it was done another way (a sign-off, a setting, uploaded content). It counts as done and is never posted or offered to Fill gaps. Every story check reads the ticket's comments again first.
- When Claude and Codex both review, each one now follows up the other's open findings when only one of them runs next. If one half of a pair fails, the other checks the failed half's open findings before the review is posted.
- A withdrawn Limn approval stays visible: "Approve (withdrawn)" in the reviews list, with the reason, and the Feed shows the dismissal message.
pnpm dev:scratchruns a throwaway copy of Limn from a source checkout, for contributors, and only one Limn can now use a data folder at a time.
Changed
- The thread pill shows the newest Limn judgement, also when a teammate's Limn made it ("Robin's Limn: addressed").
- A replies check now runs after a push even when a teammate's Limn holds the review of that commit, so a reply after a push is judged.
- A review that only comments while nothing is open can now approve, through the same checks as any approval. The "Not approved" line no longer says "left a comment"; it says what is still open, including an unmet ticket criterion.
- The automatic story check waits two quiet minutes after the newest push, ticket change or comment (at most 20 minutes in a busy run), then starts. The per-ticket limit is gone; the workspace's daily limit is now 60, and tickets with a pull request of yours do not count towards it. The AI Review tab and the Ticket view say when the check will start, or why not.
Fixed
- AI Fix's "Resolve merge conflicts" could fail to bring the base branch into the sandbox ("remote did not send all necessary objects"). It now works, and when it cannot it says why.
- A Claude-only run after a failed Claude + Codex pair could lose a still-open Codex finding.