Repository navigation
2.2.6
Changelog - kodustech/kodus-ai
2026-09-27 - 2026-10-04
π Bug Fixes
- #2029 fix: LLM retry fallback, Kody Rules detection cost and BYOK listing (@Wellington01) β³ Not yet released
Eval evidence (local runs, 2026-09-30): - contract-tests.yml: Not run. It is scheduled/dispatch-only, spends tokens on seven providers and alerts Discord on failure. Instead, live local calls (202...- π Reviewed by: @kody-ai[bot], @malinosqui
π¦ Other Changes
-
#2071 feat(code-review): record on the run what a review gave up (#2066) (@malinosqui) β³ Not yet released
Part 2 of #2066, the last one (parts 1 and 3 merged in #2067 and #2072; it needed #2069, now merged, for its pre-push run). As decided in the [design comment](https://github.com/kodustech/kodus-ai/iss...- Closes #2066: Self-hosted doctor says whether reviews ran in full, with no false β
- Closes #2067: fix(doctor): stop false β on installs whose reviews run (#2066)
- Closes #2072: feat(doctor): say whether the reviews of the last 7 days ran in full (#2066)
- Closes #2069: fix(sandbox): run git on the sandbox's own clone, never the caller's
- π Reviewed by: @kody-ai[bot], @Wellington01
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2057 fix(api): enforce organization isolation for resource access (@Wellington01) β³ Not yet released
What changed - Member, permission, CLI key, issue, integration clone and Kody Rule routes resolve resources inside the caller's organization. -
/mcpand/mcp/issuesrequire a credential (`McpAu...- π Reviewed by: @kody-ai[bot]
-
#2069 fix(sandbox): run git on the sandbox's own clone, never the caller's (@malinosqui) β³ Not yet released
The local sandbox inheritedGIT_DIRand the other repository variables, which outrank-Candcwd. Inside the pre-push hook,test/integration/sandbox/self-managed-clone.integration.spec.tsruns...- π Reviewed by: @kody-ai[bot], @Wellington01
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2073 fix(web): guard category edits; no plan CTA for roles without billing (@malinosqui) β³ Not yet released
Two UI bugs reported from QA. - Unsaved changes not guarded on "What to review" β editing a category's instructions showed "Unsaved changes", yet the sidebar navigated away and dropped the edit. T...- π Reviewed by: @kody-ai[bot], @sartorijr92
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2068 fix(web): self-hosted sweep β activity log 500, seats, unsaved changes (@malinosqui) β³ Not yet released
Fixes from a UI sweep of the self-hosted shape (Community β Enterprise license) on the #2062 preview. - Activity logs 500 β an org with no logs, or any filter matching none (user email, date range...- Closes #2062: fix(web): QA sweep bugs in PR detail, rule form, Cockpit and sidebar
- π Reviewed by: @kody-ai[bot], @Wellington01
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2072 feat(doctor): say whether the reviews of the last 7 days ran in full (#2066) (@malinosqui) β³ Not yet released
Part 3 of #2066 (part 1 merged in #2067), as decided in the design comment. The doctor checked the setup but could not say ...- Closes #2066: Self-hosted doctor says whether reviews ran in full, with no false β
- Closes #2067: fix(doctor): stop false β on installs whose reviews run (#2066)
- Closes #2071: feat(code-review): record on the run what a review gave up (#2066)
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2062 fix(web): QA sweep bugs in PR detail, rule form, Cockpit and sidebar (@malinosqui) β³ Not yet released
Summary UI bugs from a QA sweep of the redesigned web app, each reproduced on QA and verified here (one commit per fix; Kody's two findings fixed in 5728196): - PR detail said "Nothing to flag." ...
- Closes #418: Feat/rules filter in issues
- Closes #794: Improve CLI session classification with decision origin and fix trialβ¦
- Closes #795: Kody rules dropdown with limited listed repositories
- π Reviewed by: @kody-ai[bot], @Wellington01
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2034 fix(e2e): send BYOK v2 config from the matrix runner (@malinosqui) β³ Not yet released
What Update the cloud matrix runner to build and persist a BYOK v2 config instead of the legacy
{ main: ... }shape. ## Why- π Reviewed by: @kody-ai[bot]
-
#2063 feat(web): peek the folded sidebar on hover (@malinosqui) β³ Not yet released
Summary With the sidebar folded, hovering its expand control now shows the full sidebar over the page, without reflowing it, and folds it back when the pointer leaves. Clicking the control while pe...
- Closes #2062: fix(web): QA sweep bugs in PR detail, rule form, Cockpit and sidebar
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2067 fix(doctor): stop false β on installs whose reviews run (#2066) (@malinosqui) β³ Not yet released
Part 1 of #2066, as decided in the design comment. A customer's 2.2.4 install printedReviews: NOT RUNNINGwhile its revi...- Closes #2066: Self-hosted doctor says whether reviews ran in full, with no false β
- π Reviewed by: @kody-ai[bot]
- π₯ Co-authored by: [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
-
#2056 fix(llm): run a retired Fireworks id saved in a direct BYOK slot as its replacement (@Wellington01) β³ Not yet released
What
buildModelFromSlot(libs/llm/byok-to-vercel.ts:101) now maps a BYOK slot's model through the retired-id table, in the upstream's own id form (canonicalUpstreamModelId, `libs/llm/provider...- π Reviewed by: @kody-ai[bot]
-
#2048 fix(conversation): one answer per comment with duplicate webhooks (@Wellington01) β³ Not yet released
Eval evidence - Platform e2e profile:
Not run: no e2e profile covers webhook registration or duplicate deliveries.The conversation path was checked live on GitLab against a local stack (see Veri...- π Reviewed by: @kody-ai[bot]
π₯ Contributors
- @malinosqui
- @kody-ai[bot]
- @Wellington01
- [@claude Opus 5.5](https://github.com/Claude Opus 5.5)
- @sartorijr92