Repository navigation
2.2.7
Changelog - kodustech/kodus-ai
2026-10-04 - 2026-10-20
π Bug Fixes
- #2133 fix: backend fixes for 2.2.6 (@Wellington01) β³ Not yet released
Assorted backend fixes and improvements for the 2.2.6 cut.- π Reviewed by: @kody-ai[bot], @malinosqui
π Documentation
- #2079 docs: match the docs to the redesigned web app (@malinosqui) π¦ Released in web-1.2.7
What - 89 pages Γ 5 languages (en, es, pt-BR, ja, zh) now follow the new UI: sidebar nav, the five Code review pages, AI providers (Providers / Routing / Budget), Repositories, members ...
- Closes #1936: feat(web): question-based settings, Kody Rules table and βK palette
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
π§ Chores
-
#2082 chore: remove plans, studies and stale internal docs (@malinosqui) π¦ Released in web-1.2.7
Summary Removes plans, research notes, competitive studies, session notes and stale internal docs (60 files, mostly pt-BR). Plans and design notes live in GitHub issues from now on; `docs/README.md...
- Closes #1567: fix(kody rules): Kody rules summary and pr scope
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2081 chore: replace customer identifiers with placeholders (@malinosqui) π¦ Released in web-1.2.7
Summary Replaces real customer identifiers in comments, docs, test fixtures and the SSO e2e hostnames with neutral placeholders (
acme,customer, a fake repo id), and removes the one-off `script...- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
π¦ Other Changes
-
#2181 fix(code-review): shorter suggestion bodies, rewritten titles and anchors on the defective lines (@Wellington01) β³ Not yet released
Refs #2157 (items 1, 2, 4, 5 and the dedup half of 3; the GitLab anchor is not in this PR). What changed - Formatter prompt: drops "keep every technical detail β¦ line numbers" (the !58 trace shows...- Closes #2157: Concise suggestion comments: long bodies, out-of-diff references, wrong anchors, cut titles and lowercase prompt text
- Closes #174: adding server filters for prs
- π Reviewed by: @kody-ai[bot], @malinosqui
-
#2173 fix(code-review): never publish unverified findings or read an unfinished agent as complete (@Wellington01) β³ Not yet released
Fixes #2171 Β· design: #2171 (comment) What changed - Finder runs that end without a submitted result (out of steps, or turn truncated by t...- Closes #2171: Review reads as complete and publishes unverified findings when the finder never submits or the verify call fails
- π Reviewed by: @kody-ai[bot], @malinosqui
-
#2183 fix(code-review): check suggestion implementation when a review finishes (@sartorijr92) β³ Not yet released
Summary Suggestions fixed by a commit pushed during a review now turn
implemented: the review enqueues the implementation check once its execution is persisted. Closes #2182. ## Eval evidence- Closes #2182: Suggestions fixed by a commit pushed during the review stay not_implemented
- Closes #359: Export Kody Issue to Project Management Tool
- Closes #358: Allow BYOK setup in Managed plan (including Trial)
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2178 feat(evals): experiments for every kind of change (@malinosqui) β³ Not yet released
Eval evidence - Proof: no review step changes, so no metric moves; the experiment command itself, end to end on the scripted model (no cost): finder, branch vs base and team config off vs on, each ...
- Closes #21: Fix/bitbucket-commit-sorting
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2176 fix(evals): each experiment run keeps its own rows (@malinosqui) β³ Not yet released
An experiment's rows were named after the branch alone (experiments.<step>.<phase>.<eval>.<branch>), so a later run on the same branch overwrote the rows it wrote and left the rest. A regression-onl...- Closes #2175: feat(code-review): the new dedup from #1821
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2174 feat(evals): experiments on a review step, and the dedup's grouping eval (@malinosqui) β³ Not yet released
Compares a review step on two versions of production's code, answering "did it break anything?" and then "is it better?": locally (node evals/experiment.js --step=<step>), on a PR that changes the s...- Closes #16: Feat azure repos
- Closes #2175: feat(code-review): the new dedup from #1821
- Closes #1821: Optimize the review harness for larger models
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2168 test(evals): every eval on production's code and route (@malinosqui) β³ Not yet released
Every eval runs production's own code on the BYOK route an org that picks its model takes (evals/shared/model-route.js). Each review step declares what it does, its tests and its eval (`evals/stages...- Closes #15: Fix/code review process
- Closes #2146: feat(evals): post-finder stages measured on a frozen finder snapshot
- Closes #2156: feat(evals): stages panel lists steps in the order a review runs them
- Closes #2158: fix(evals): scorer accepts the finder's routes; micro precision fixed
- Closes #2159: refactor(evals): finder eval runs production's review, not a copy
- π Reviewed by: @github-advanced-security[bot], @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5), [@claude Sonnet 5.5](https://github.com/Claude Sonnet 5.5)
-
#2161 fix(web): open inherited repository settings directly (@malinosqui) β³ Not yet released
Connected repositories without overrides were hidden from settings and direct links redirected to Global. Fixes #2167. Eval evidence: [PR wiring smoke](https://github.com/kodustech/kodus-ai/actions/ru...- Closes #2167: Connected repositories are missing from the review settings scope picker
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2162 fix(identity): complete invitations and allow removing members (@Wellington01) β³ Not yet released
Refs #2103 - Accepting an invitation answered 404 and left the user ACTIVE without a profile:UserDatabaseRepository.updatere-read the row with the update filter, whosestatus: PENDINGno lon...- Closes #2103: Accepting an invitation fails silently and the link then shows as expired (since 2.2.6)
- π Reviewed by: @kody-ai[bot], @malinosqui
-
#1979 chore(runo): every runo env runs the real billing, and Checkout reaches it (@malinosqui) β³ Not yet released
Runo dev environments and cloud previews run the billing service with a Stripe test webhook forwarder, so Checkout can update the plan. - Share billing throughdocker-compose.billing.yml; preserve t...- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5 (1M context)](https://github.com/Claude Opus 5 (1M context))
-
#2155 fix(settings): saving a settings tab no longer reverts values saved elsewhere (@jairo-litman) β³ Not yet released
Closes #2153. Saving any code-review settings tab no longer reverts values just saved elsewhere (Kody Rules toggles, other tabs, other browser tabs). What changed -saveSettingssends only the field...- Closes #2153: Saving General settings reverts values just saved on the Kody Rules page
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2154 fix(evals): finder eval runs production's input, route and scoring (@malinosqui) β³ Not yet released
Part of #2114. Ports the finder-parity pieces offeat/improve-harness-to-big-models(its datasets byte-identical, itsRECALL_CATEGORIES/RECALL_MAX_STEPSnames kept) so that branch rebases clea...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #2146: feat(evals): post-finder stages measured on a frozen finder snapshot
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2145 feat(evals): conversation eval checks Kody's thread replies (@malinosqui) β³ Not yet released
Part of #2114 (design). Builds on #2144 (merged). Eval evidence - Run: [nightly on the top of the stack](https://github...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #2144: feat(evals): PR summary joins the nightly, checks it speaks of the diff
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2144 feat(evals): PR summary joins the nightly, checks it speaks of the diff (@malinosqui) β³ Not yet released
Part of #2114 (design). Builds on #2143 (merged). Eval evidence - Run: [nightly on the top of the stack](https://github...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #2143: feat(evals): memories eval checks the review follows team memories
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2152 feat(evals): record each stage's model cost and time (@malinosqui) β³ Not yet released
Part of #2114. The panel side is kodustech/kodus-quality#14. Eval evidence - Proof: tokens and time of each model call on evals/reply-addressing (10 cases), main records input/output/cache-read to...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #14: Fix/improve-error-handling-on-cron
- Closes #2142: feat(evals): format eval runs the real formatter on recorded findings
- Closes #2146: feat(evals): post-finder stages measured on a frozen finder snapshot
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2143 feat(evals): memories eval checks the review follows team memories (@malinosqui) β³ Not yet released
Part of #2114 (design). Builds on #2142 (merged). Eval evidence - Run: [nightly on the top of the stack](https://github...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #2142: feat(evals): format eval runs the real formatter on recorded findings
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2142 feat(evals): format eval runs the real formatter on recorded findings (@malinosqui) β³ Not yet released
Part of #2114 (design). Builds on #2141 (merged), reading its recorded findings. Eval evidence - Run: [nightly on the t...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #2141: feat(evals): parse eval replays how production models end finder runs
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2141 feat(evals): parse eval replays how production models end finder runs (@malinosqui) β³ Not yet released
Part of #2114 (design). Eval evidence - Run: [branch nightly](https://github.com/kodustech/kodus-ai/actions/runs/388355...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #2112: Finder drops findings when submitResult omits a field, sends null, or sends suggestions as a JSON string
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2137 fix(code-review): keep a problem already commented on the PR off later rounds (#2097) (@malinosqui) β³ Not yet released
Eval evidence: review-rounds, local runs committed in results/2026-10-16 (main's numbers in...- Closes #2097: Review comments repeat within a round and across rounds, mostly from Kody Rules
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2136 fix(llm): OpenAI reasoning models with tools reach /v1/responses (@malinosqui) β³ Not yet released
Fixes #2135 (design). Eval evidence Proof: tier-0 review on gpt-6-sol (self-hosted env route), main broken -> branch pa...- Closes #2135: Review and @kody chat fail on gpt-5.6 / gpt-6 over the OpenAI-compatible transport
- Closes #2029: fix: LLM retry fallback, Kody Rules detection cost and BYOK listing
- π Reviewed by: @kody-ai[bot], @github-advanced-security[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2132 ci(evals): the tier-0 Kimi runs through OpenRouter (@malinosqui) β³ Not yet released
Part of #2114. Eval evidence Proof: Friday parts that run on Kimi, main 0 of 4 (Moonshot account suspended) -> branch 4 of 4 pass- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2131 feat(evals): Friday runs every stage the nightly measures (@malinosqui) β³ Not yet released
Part of #2114. Follows #2129. Eval evidence Proof: Friday stages run per model on deepseek-v4-flash@fireworks, main 2 (review, summary) -> branch 4 (+ kody-rules 10/10, reply-addressing 16/16)- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #2129: feat(evals): one nightly job for any eval; Thread replies measured
- π Reviewed by: @github-advanced-security[bot], @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2129 feat(evals): one nightly job for any eval; Thread replies measured (@malinosqui) β³ Not yet released
One nightly job measures any eval listed inevals/nightly-evals.js, and Thread replies (reply-addressing) is the first one on it (#2114). ## Eval evidence - Local, DeepSeek V4 Flash,cases.json...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2127 feat(evals): every eval lists what it tests; pnpm eval:new (@malinosqui) β³ Not yet released
Every eval now lists what it tests, andpnpm eval:newcreates a new eval in the shared shape, so it reaches the quality panel without anyone editing the panel (#2114). ## Eval evidence - No eval mea...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #1970: chore(evals): delete scripts nothing runs any more
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2124 ci(evals): measure Kody Rules every night on DeepSeek (@malinosqui) β³ Not yet released
Kody Rules becomes the second stage measured every night, and every eval gets one result shape that the quality panel reads (#2114, [plan](#2114 (comment)...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- Closes #10: WIP Feat/change code review llm provider
- Closes #11: Fixing looping in Kody response
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2122 ci(evals): report each review stage's eval to the quality panel (@malinosqui) β³ Not yet released
Every review stage reachesquality.signalsasevals.stage.<stage>, and the kodus-quality "Evals by stage" page (kodustech/kodus-quality#9) shows each one: quality measured, only checked that it ru...- Closes #9: Private merge 1
- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2121 test(evals): finder recall can search the PR's real repository (@malinosqui) β³ Not yet released
The finder-recall eval answers the agent's grep, readFile and listDir from a recording, and a call outside it gets an empty answer the repository would not give (#2114).RECALL_REAL_REPO=1checks ou...- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@junior Sartori](https://github.com/Junior Sartori), [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2116 chore(evals): tier-0 models are gpt-6-sol, Sonnet 5.5, Kimi, DeepSeek (@malinosqui) β³ Not yet released
Tier-0 (tier0()inevals/shared/tier0-models.js) becomes gpt-6-sol, claude-sonnet-5-5, kimi-k2.7-code, deepseek-v4-flash@fireworks (DeepSeek v4.1 flash on the managed default's route). gpt-5.4...- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2117 test(evals): review-rounds reproduces production reposts (@malinosqui) β³ Not yet released
Eval evidence - Not run in CI: no workflow runs review-rounds with a real model. Local runs, committed in [results/2026-10-13](https://github.com/kodustech/kodus-ai/blob/873448b1fc808bb806a04a...- Closes #2097: Review comments repeat within a round and across rounds, mostly from Kody Rules
- Closes #2114: Eval status per review stage, and no score from runs that diverge from production
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2096 test(evals): add never-repost cases R12/R13/R14/K4 to review-rounds (@Wellington01) β³ Not yet released
Eval evidence (main + these cases,deepseek-v4-flash, 3 reps, judgegpt-5.6-luna; local, no CI workflow runs review-rounds with a real model) | Case | No history (must ship) | With history (mu...- Closes #2094: fix(code-review): drop the "Revises an earlier Kody suggestion" link
- Closes #2097: Review comments repeat within a round and across rounds, mostly from Kody Rules
- π Reviewed by: @kody-ai[bot], @malinosqui
-
#2055 fix(codereview): mark PR-level comments with kody-codereview (@andyst-dev) β³ Not yet released
Summary Refs #2050 Kody's inline review comments and the "Code Review Completed" comment carry a
<!-- kody-codereview -->marker that webhook consumers use to recognize them. PR-level comments (a...- Closes #2050: PR-level Kody comments on GitHub, GitLab and Azure Repos have no
kody-codereviewmarker - π Reviewed by: @kody-ai[bot], @Wellington01
- Closes #2050: PR-level Kody comments on GitHub, GitLab and Azure Repos have no
-
#1898 fix(llm): classify 5xx phrasing as TRANSIENT for BYOK fallback (#1875) (@andyst-dev) β³ Not yet released
Fixes #1875 ## Problem A transient upstream outage can fail an agent-based review instead of triggering the BYOK fallback. When the main provider returns a 5xx, the AI SDK wraps retry exhaustion in an...- Closes #1875: Agent-based review skips BYOK fallback: reconstructed agent error loses HTTP status and classifies as UNKNOWN (2.2.1)
- Closes #1898: fix(llm): classify 5xx phrasing as TRANSIENT for BYOK fallback (#1875)
- π Reviewed by: @kody-ai[bot], @malinosqui, @sartorijr92
-
#2031 docs(evals): translate and correct the scorer submission guide (@PeterDaveHello) β³ Not yet released
Summary
Translate the scorer guide linked from CodeReviewBench's leaderboard into English and correct its submission instructions. Clarify the 30-case light set, Kodus reference run, submission de...
-
π Reviewed by: @copilot-pull-request-reviewer[bot], @kody-ai[bot], @Wellington01
-
#2033 fix(agents): report an unverified check when tsc cannot build the project (@andyst-dev) β³ Not yet released
Summary
checkTypesansweredNo diagnostics matched <file>; omitted unrelated diagnostics outside this local scope.for a file it never type-checked. In the sandbox the project cannot be loaded ...- Closes #1940: checkTypes reports "No diagnostics matched" when the compiler could not check the project
- Closes #1939: Submodule directories are empty in the review sandbox and the tools report them as absent code
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2028 fix(code-review): anchor inline comments on the reviewed commit (#2012) (@andyst-dev) β³ Not yet released
Eval evidence -
Evals: wiring smoke (PR)(code-review-evals-pr.yml, the PR-tier eval that runs onlibs/**): run 36826758813 o...- Closes #2012: Review comments are anchored on a commit pushed during the review, not on the commit the review read
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#1928 fix(platformData): UUID suggestion IDs for ingest (#1846) (@andyst-dev) β³ Not yet released
Summary Fixes #1846 Suggestion ids were generated as Mongo ObjectId hex strings, but both the Mongo read path (
findByOrganizationAndRepositoryWithStatusAndSyncedFlag) and the embed ingest (`Sugge...- Closes #1846: Fine-tuning never indexes persisted suggestions: ingest requires UUID ids but persistence writes Mongo ObjectIds
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2065 fix(platform): accept the Azure abandoned PR status so it is saved (@andyst-dev) β³ Not yet released
Summary Refs #2060 Azure Repos sends
resource.status: 'abandoned'when a PR is abandoned, butisValidPullRequestActioninsave.use-case.tsomitted that status from its accepted list, so the u...- Closes #2060: Abandoned Azure PRs remain open and their feedback is not collected
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2054 fix(platform): store the Forgejo comment id, not the review id (@andyst-dev) β³ Not yet released
Summary Refs #2051
createReviewCommenton Forgejo came up with the id of the inline comment fromreview.comments[0], but Forgejo 16.x answers the create-review request with the review, `comment...- Closes #2051: Forgejo inline review comments are stored with the review id instead of the comment id
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2105 fix(scripts): run the env generator without a shell in env:check (@Mohil-Ahuja) β³ Not yet released
Summary Fixes #2045.
pnpm run env:check(and so the pre-push hook) failed for anyone whose checkout path contains a space.check-drift.tsran ``execSync(`ts-node ${join(__dirname, 'generate.ts'...- Closes #2045: env:check fails on a checkout path that contains a space
-
#2078 feat(settings): global kody learning (@jairo-litman) β³ Not yet released
Closes #1942. Kody Rules learning (past-review generation, IDE rule-file sync) is set once at global level and overridable per repository. Eval evidence - code-review-evals-pr.yml: https://github.com/...- Closes #1942: Set Kody Rules learning once for the whole org, not per repository
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2058 feat(suggestions): concise suggestions (@jairo-litman) β³ Not yet released
Closes #1822 Adds bold finding titles, two-sentence explanations and complete agent prompts; retains merged-location lists after formatting. Bitbucket posts prompts as replies. Preserves full explanat...- Closes #1822: Make review suggestions faster to understand and act on
- Closes #2050: PR-level Kody comments on GitHub, GitLab and Azure Repos have no
kody-codereviewmarker - Closes #2051: Forgejo inline review comments are stored with the review id instead of the comment id
- Closes #2059: PR records combine when repositories share a name and PR number
- Closes #2060: Abandoned Azure PRs remain open and their feedback is not collected
- π Reviewed by: @kody-ai[bot], @Wellington01
-
#2093 fix(web): stop the BYOK routing model picker from crashing on the first keystroke (@Wellington01) β³ Not yet released
Typing one character in any model picker on /byok β Routing crashed the page (TypeError: Failed to execute 'appendChild' on 'Node'), for any org with 2+ models. Reported by a customer; reproduced on...- π Reviewed by: @kody-ai[bot], @malinosqui
-
#2026 fix(byok): quote the provider error when a BYOK model fails (@Wellington01) β³ Not yet released
Refs #1871 β the dashboard half. #1872 covered the PR comment. What changed - The BYOK reporter sends the provider's own sentence (extractProviderMessage, redacted and capped) instead of `err.me...- Closes #1871: OpenRouter reviews fail after a successful connection test without actionable diagnostics
- Closes #1872: fix(code-review): report what the provider actually said when a review fails
- π Reviewed by: @kody-ai[bot], @malinosqui
-
#2085 fix(worker): keep task protection; stop consuming on SIGTERM (@Wellington01) β³ Not yet released
Summary Workers were killing code reviews mid-run on every deploy and scale-in. Two causes, both fixed here: 1. Task protection dropped while jobs were still running.
handleWorkflowJobcalled...- Closes #2052: worker: main thread freezes for minutes (one core at 100%), gets killed by health check, orphans inbox jobs
- Closes #1830: Workflow jobs stranded in PROCESSING when a worker dies mid-job β in-process timeout cannot recover them
- Closes #1902: fix(workflow): reclaim stranded PROCESSING jobs via lease
- π Reviewed by: @kody-ai[bot], @malinosqui
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2092 perf(mongo): maxTimeMS, token-usage tier brackets, missing indexes (@Wellington01) β³ Not yet released
Eval evidence - Eval run on this branch:
code-review-evals-pr.ymlwiring smoke at67dc8f5(passed earlier ateec8206: [run](h...- π Reviewed by: @kody-ai[bot], @malinosqui
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2091 fix(web): stop /byok waiting forever on the cost summary (@malinosqui) π¦ Released in web-1.2.7
Hotfix:/byok(AI providers) stays on its skeleton for high-volume orgs. Why.apps/web/src/features/ee/byok/page.tsxawaitsGET /usage/tokens/summarywith no timeout. That endpoint runs two ...- π Reviewed by: @kody-ai[bot], @Wellington01
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2088 docs(changelog): add October 6, 2026 release notes (@edvaldofreitas) π¦ Released in web-1.2.7
What changed - Adds the October 6, 2026 changelog entry: the platform redesign (settings pages, scope selector, Kody Rules table, sidebar navigation, βK palette, locked pages, Reviews skipped/warni...
- Closes #2014: docs(changelog): add September 25, 2026 release notes
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Sonnet 5](https://github.com/Claude Sonnet 5)
-
#2074 fix(code-review): never repost an earlier suggestion; link revisions to it (@Wellington01) π¦ Released in 2.2.6
Refs #2039, #2020. Design comments on both issues are pending; overlaps the open product question in #1670 (this stays PR-scoped, no memory, no paraphrase). #2040 is out of scope. What changed - H...- Closes #2039: Kody posts a finding against the result of its own previous-round suggestion without referencing it
- Closes #2020: Kody posts a finding that reverses its own previous-round suggestion on the same PR when that suggestion is not marked implemented
- Closes #1670:
@kody review --forcehas no memory - Closes #2040: Findings delivered as high severity while their own text says the code behind them was unreadable due to a sandbox failure
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: @malinosqui
π₯ Contributors
- @Wellington01
- @kody-ai[bot]
- @malinosqui
- @sartorijr92
- [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
- @github-advanced-security[bot]
- [@claude Sonnet 5.5](https://github.com/Claude Sonnet 5.5)
- [@claude Opus 5 (1M context)](https://github.com/Claude Opus 5 (1M context))
- @jairo-litman
- [@junior Sartori](https://github.com/Junior Sartori)
- @andyst-dev
- @PeterDaveHello
- @copilot-pull-request-reviewer[bot]
- @Mohil-Ahuja
- @edvaldofreitas
- [@claude Sonnet 5](https://github.com/Claude Sonnet 5)