Skip to content

2.2.0

Choose a tag to compare

@Wellington01 Wellington01 released this 03 Sep 16:50
· 64 commits to main since this release
f441dbb

Changelog - kodustech/kodus-ai

2026-08-19 - 2026-09-03

πŸ› Bug Fixes

πŸ“š Documentation

Summary

The docs still say Kody skips PRs with more than 200 changed files, but the code enforces 2,000. AGENT_MAX_FILES is set to 2000 in `libs/code-review/pipeline/stages/fetch-...

  • Closes #1795: docs: update PR file limit from 200 to 2,000
  • πŸ‘€ Reviewed by: @kody-ai[bot]

πŸ“¦ Other Changes

  • #1842 fix(compose): pin Mongo off the kernel-broken releases, and gate startup on health (@Wellington01) ⏳ Not yet released
    The 2026-09-02 release run died with getaddrinfo ENOTFOUND db_kodus_mongodb on all four E2E cells, ten minutes into each. It read as a DNS problem. It was a database that refused to start, and then ...

    • Closes #54: add new methods save logs in lote
    • πŸ‘€ Reviewed by: @kody-ai[bot]
  • #1839 fix(byok): honour a configured reasoning effort, and name the live tier's secrets (@Wellington01) ⏳ Not yet released
    Four BYOK request-shape defects, each found by capturing the wire and comparing it against what the vendor documents, plus the live test tier that keeps them found.

    • Closes #1828: BYOK: Claude via OpenAI-compatible gateway runs without prompt caching or thinking control; native Anthropic base URL not exposed in UI
    • πŸ‘€ Reviewed by: @kody-ai[bot]
  • #1834 test(reliability): mutation-validated review-chain coverage + #1786 recovery + LLM observability (@Wellington01) ⏳ Not yet released

    What Test-reliability push on the code-review chain, validated by mutation testing, plus the #1786 (off-schema LLM output) recovery and greppable LLM observability. Draft β€” large branch. This i...

  • #1814 fix(conversation): kody proactive actions (@jairo-litman) ⏳ Not yet released
    fixes #1809

    • Closes #1809: feat(conversation): kody proactive actions
    • πŸ‘€ Reviewed by: @kody-ai[bot]
  • #1738 fix(web): deep-link the PR-list suggestion count to the first finding (@andyst-dev) ⏳ Not yet released
    Closes #1728 ## Problem Clicking the delivered-suggestion count on the PR list opened the review page at the top of the diff. On large PRs the comments are on the page but require hunting for them β€” c...

  • #1777 fix(task-context): never stuff issue keys into closed-enum params via anyOf/const (@andyst-dev) ⏳ Not yet released
    Fixes #1760 ### Problem On a Bitbucket PR with a Jira key (DEV-5400), getJiraIssue (Atlassian MCP) was invoked with the issue key written into responseContentFormat. The tool rejected it with `-...

    • Closes #1760: Business-logic Jira fetch puts the issue key in getJiraIssue responseContentFormat
    • πŸ‘€ Reviewed by: @kody-ai[bot]
  • #1811 Adding scrolling to the "choose workspace" screen and reducing top sp… (@Nalu-devs) ⏳ Not yet released
    #1764

    • Closes #1764: Broken layout on the choose-workspace screen
    • πŸ‘€ Reviewed by: @kody-ai[bot]
  • #1796 Fix (platforms): Improving the error return UX so users can more easi… (@Nalu-devs) ⏳ Not yet released
    #1723

    • Closes #1723: GitLab first-connect modal traps the user when the token or repo list fails
    • πŸ‘€ Reviewed by: @kody-ai[bot]
  • #1809 feat(conversation): kody proactive actions (@jairo-litman) ⏳ Not yet released
    closes #1761

    • Closes #1761: @kody is reactive-only in PR threads: never proactively offers to persist what the conversation reveals
    • πŸ‘€ Reviewed by: @kody-ai[bot]
  • #1805 fix(byok): stop v2 migration from dropping Bedrock, fallback-only and OpenRouter configs (@Wellington01) ⏳ Not yet released

    Problem The legacy→v2 BYOK data migration (ByokConfigV22026072918034700, runs on boot before the app starts) was losing BYOK config for real orgs. Verified against a **416-row production expo...

  • #1804 fix(token-usage): show cache write as its own chart band and cost bucket (@Wellington01) ⏳ Not yet released
    fix(token-usage): show cache write as its own chart band and cost bucket The frontend rowCost folded cache-write cost into uncachedInput (unlike the backend model-cost-calculator, which prices it sepa...

  • #1803 fix(token-usage): Fix token saving when an error occurs (@sartorijr92) ⏳ Not yet released

    > [!NOTE] > **Medium Risk**
  • #1801 fix(observability): stamp the org on severity + formatter usage spans (@Wellington01) ⏳ Not yet released
    fix(observability): stamp the org on severity + formatter usage spans classifySeverity and formatSuggestionContent ran their secondary LLM pass via LLM.run without threading organizationId, so their u...

  • #1800 refactor(byok): trait-driven reasoning + temperature, remove runtime catalog (@Wellington01) ⏳ Not yet released

    What The model "catalog" no longer exists at runtime. A model's rules β€” whether it reasons by default, at what effort, and how it treats temperature β€” are now derived from its family/provider trait...

  • #1797 fix(code-review): put the whole ignore list in the user's hands (@sartorijr92) ⏳ Not yet released
    Reviews skipped files using two lists: the "Ignored files" setting and a hardcoded ~1100-path list under libs/common/utils/codeBase/ignorePaths, concatenated onto it at review time. Only the first was...

  • #1792 fix(config): Fixing get config file data from bitbucket repo (@sartorijr92) ⏳ Not yet released
    Closes #1791 ---

  • #1790 fix(code-review): strict BYOK tool routing with structured-output fallback (@Wellington01) ⏳ Not yet released
    update track cache fix(observability): attribute agent-loop cost spans to prNumber/teamId The agent-loop cost span recorded prNumber undefined, so per-PR cost in the dashboard missed the finder/verify...

πŸ‘₯ Contributors