# Changelog

## Score

- CAI 70 → 53 (-16.3)

## Lenses

- Code Health 60 → 51 (-9.0)
- Architecture 96 → 95 (-0.7)
- Maturity 70 → 60 (-10.7)
- Readiness 91 → 59 (-32.2)
- Security 73 → 73 (-0.1)
- Domain Modelling 92 → 92 (+0.0)
- Event Sourcing 100 → 100 (+0.0)
- Accessibility 47 (new)
- Performance 97 → 75 (-22.1)

## Resolved (50)

- App::set_lua_config (cognitive 25) (kaku/src/config_tui/mod.rs)
- CharSetRef::to_range_set (cognitive 22) (crates/wezterm-font/src/fcwrap.rs)
- Confusingly similar methods returning the same data type. 'to_srgb_u8' and 'as_rgba_u8' both return a tuple of 4 u8s. It is unclear if 'to_srgb_u8' implies a conversion from linear space or just a cast, while 'as_rgba_u8' implies a direct view. Given SrgbaTuple is already sRGB, the distinction is likely unnecessary or poorly named.
- Documentation: no project overview (README.md)
- Documentation: no project overview (docs/features.md)
- Duplicated block (11 lines × 2) (kaku-gui/src/overlay/ai_chat/state.rs)
- Duplicated block (12 lines × 2) (kaku-gui/src/termwindow/touch.rs)
- Duplicated block (13 lines × 2) (crates/filedescriptor/src/unix.rs)
- Duplicated block (13–15 lines × 2) (kaku-gui/src/termwindow/mod.rs)
- Duplicated block (5 lines × 2) (kaku-gui/src/overlay/ai_chat/render.rs)
- Duplicated block (5–7 lines × 2) (kaku-gui/src/overlay/ai_chat/render.rs)
- Duplicated block (6 lines × 7) (kaku-gui/src/overlay/ai_chat/render.rs)
- Duplicated block (8 lines × 2) (kaku-gui/src/overlay/ai_chat/render.rs)
- Duplicated block (8 lines × 3) (kaku-gui/src/termwindow/render/fancy_tab_bar.rs)
- Duplicated block (9 lines × 2) (kaku-gui/src/termwindow/render/fancy_tab_bar.rs)
- FileTooLong: src/lib.rs (crates/kaku-remote/src/lib.rs)
- FileTooLong: termwindow/touch.rs (kaku-gui/src/termwindow/touch.rs)
- FontConfigFontLocator::load_fonts (cognitive 43) (crates/wezterm-font/src/locator/font_config.rs)
- FontConfigFontLocator::load_fonts (cyclomatic 18) (crates/wezterm-font/src/locator/font_config.rs)
- FontConfigFontLocator::locate_fallback_for_codepoints (cognitive 45) (crates/wezterm-font/src/locator/font_config.rs)
- …and 30 more

## New (236)

- App::activate_control (cognitive 19) (kaku-gui/src/overlay/ai_chat/state.rs)
- App::activate_control (cyclomatic 19) (kaku-gui/src/overlay/ai_chat/state.rs)
- App::set_lua_config_line (cognitive 25) (kaku/src/config_tui/mod.rs)
- Duplicated block (10 lines × 2) (kaku-gui/src/overlay/ai_chat/state.rs)
- Duplicated block (13 lines × 2) (kaku-gui/src/overlay/ai_chat/render.rs)
- Duplicated block (14–16 lines × 2) (kaku-gui/src/termwindow/mod.rs)
- Duplicated block (6 lines × 2) (crates/kaku-remote/src/share.rs)
- Duplicated block (6 lines × 6) (kaku-gui/src/overlay/ai_chat/render.rs)
- FileTooLong: src/main.rs (crates/kaku-relay/src/main.rs)
- FileTooLong: src/main.rs (kaku/src/main.rs)
- FileTooLong: src/p2p.rs (crates/kaku-remote/src/p2p.rs)
- FileTooLong: src/share.rs (crates/kaku-remote/src/share.rs)
- FunctionTooLong: kaku_gui::overlay::ai_chat::state::emit_assistant_markdown (kaku-gui/src/overlay/ai_chat/state.rs)
- FunctionTooLong: kaku_remote::p2p::wrap (crates/kaku-remote/src/p2p.rs)
- Further orphaned files (smaller)
- Further sole-owners (lower concentration)
- Helper::spawn (cognitive 23) (crates/kaku-remote/src/desktop.rs)
- Hotspot: crates/kaku-remote/assets/web/desktop.js (crates/kaku-remote/assets/web/desktop.js)
- Hotspot: crates/kaku-remote/src/p2p.rs (crates/kaku-remote/src/p2p.rs)
- Hotspot: crates/kaku-remote/tests/feel.cjs (crates/kaku-remote/tests/feel.cjs)
- …and 216 more

## Changes since last survey

- 300 commits — 153 feature/other, 147 fixes

## By area

- crates/kaku-remote — 102 commits
- kaku-gui/src — 36 commits
- (root) — 30 commits
- (repo) — 21 commits
- assets/shell-integration — 19 commits
- crates/AGENTS.md — 16 commits
- kaku/src — 14 commits
- crates/kaku-relay — 9 commits
- .github/RELEASE_NOTES.md — 8 commits
- window/src — 8 commits
- .github/workflows — 6 commits
- assets/macos — 4 commits
- config/src — 4 commits
- docs/incidents.md — 4 commits
- config/AGENTS.md — 3 commits
- .agents/skills — 2 commits
- docs/features.md — 2 commits
- term/src — 2 commits
- .cargo/audit.toml — 1 commit
- crates/wezterm-escape-parser — 1 commit

## Notable commits

- fix: Merge branch 'main' into fix/ai-proxy-ipv6
- fix: Merge branch 'main' into fix/assistant-config-atomic-write
- fix: Merge branch 'main' into fix/yazi-new-tab-602
- fix: Merge branch 'main' into fix/yazi-new-tab-602
- fix: Merge pull request #578 from SimonRen/fix/ai-proxy-ipv6
- fix: Merge pull request #579 from SimonRen/fix/session-save
- fix: Merge pull request #580 from SimonRen/fix/init-and-diagnostics
- fix: Merge pull request #581 from SimonRen/fix/config-writes
- fix: Merge pull request #582 from SimonRen/fix/shell-setup-symlinks
- fix: Merge pull request #587 from SimonRen/fix/ssh-tab-index
- fix: Merge pull request #594 from sanchesfree/fix/toast-dismiss-no-update
- fix: Merge pull request #599 from vw2x/fix/drawer-height-cross-display
- fix: Merge pull request #603 from sunbird89629/fix/yazi-new-tab-602
- fix: Merge pull request #607 from darion-yaphet/fix/assistant-config-atomic-write
- fix: Merge pull request #609 from darion-yaphet/fix/ai-chat-idle-redraw
- fix: fix(ai): bypass the system proxy for private IPv6 model hosts
- fix: fix(ai): clarify chat input and use a blinking caret
- fix: fix(ai): keep Gemini's other model settings when saving the model
- fix: fix(ai): keep file names whole in inline summaries
- fix: fix(ai): keep inline command requests valid and repeatable
- …and 280 more
