What's Changed
- docs: add community contributors section to README by @iamwhatever in #660
- feat(chat): ask_question tool — blocking clickable question card by @kyleseaman in #464
- fix(chat): stop streaming response bubble from flashing by @iamwhatever in #661
- fix(chat): stop composer input box from vanishing on interrupted height morph by @iamwhatever in #664
- feat(settings): configurable default model and reasoning effort by @kyleseaman in #659
- feat(appstore): hybrid Discover storefront + Library revamp by @CrysisDeu in #532
- fix: stop the setup gate flashing at returning users, speed up boot by @bolichen97 in #629
- feat: view and edit Kiro steering files under Agent Capabilities by @kyleseaman in #654
- fix: make dead CPP seams visible instead of silently inert by @bolichen97 in #667
- feat(weixin): Add WeChat channel via Tencent iLink bot API by @CrysisDeu in #627
- fix(theme): improve kiro-dark tip card readability and selected-chip contrast by @xuejinT in #669
- fix(acp): keep context % consistent with the popover Used/Total counts by @iamwhatever in #672
- fix(security): fence untrusted LLM prompt input; add deploy bucket audit logging by @iamwhatever in #671
- feat(prepare-pr): pluggable project profiles (resolver + bundled KiroCrew profile) by @iamwhatever in #662
- docs(rfc): Notification Bridge — bus egress fanout to chat transports by @CrysisDeu in #670
- fix(dashboard): let
kirocrew logoutreach its own auth check by @NicholasRBowers in #676 - feat(issue-radar): open same-repo references in an in-app sheet by @dwu96 in #643
- fix(nav): dismiss the Apps overflow hover label when the toggle is pressed by @patrigao in #634
- feat(skills): add frontend-design-workflow builtin skill by @CrysisDeu in #679
- ci: Add advisory UX Review lane (Fable 5) for UI-touching PRs by @CrysisDeu in #678
- chore(version): bump dev base to 0.1.2 after v0.1.1 by @CrysisDeu in #687
- docs: RFC — channel plugin architecture by @CrysisDeu in #689
- fix(sandbox): mark KiroCrew's own macOS sandbox so nested spawns pass through by @buluoray in #686
- feat(sidebar): make the session PR chip a link to the pull request by @patrigao in #683
- fix(cli): restart respawns the kirocrew it was invoked as, not PATH's by @patrigao in #675
- fix(browser): render the live Playwright mirror in the Browser panel by @iamwhatever in #685
- feat(governance): verify the security policy's identity.signature by @bolichen97 in #666
- feat(agent): verify front-end changes in the browser, show the frames in chat by @kyleseaman in #680
- feat(skills): staged, opt-in auto-skill generation (lifecycle + dedupe + scripts + crystallize) + Settings toggle by @iamwhatever in #392
- feat(knowledge): auto-add the Kiro CLI knowledge folder as a Library source by @kyleseaman in #684
- feat(onboarding): redesign first-run import setup + customize chapters by @michellemxm in #696
- feat(issue-radar): support GitLab alongside GitHub by @kyleseaman in #650
- refactor(apps): resolve capability deps via CPP seam, gate AIM markers by @bolichen97 in #681
- fix(dashboard): Unify cost formatting behind formatCost() by @CrysisDeu in #708
- fix(dashboard): collapse GitHub check-runs to the latest run per check by @kyleseaman in #706
- fix(chat): drive streaming reveal by positional opacity so the tail can't re-flash by @iamwhatever in #697
- docs(crystallize): prose-first + explicit live-skill mode; fix(skills): refresh Skills tab on open by @iamwhatever in #698
- fix(dashboard): admit loopback origins to CSP connect-src by @CrysisDeu in #718
- feat: map skills to agent templates via skill:// resources by @kyleseaman in #682
- fix(chat): never drop a message when creating its session fails by @kyleseaman in #690
- docs: RFC — Tips Kit (activity-aware self-learning recommendations) by @CrysisDeu in #720
- feat(i18n): multi-language dashboard with Settings → Display picker by @bolichen97 in #692
- fix(autonudge): surface cycle-cap expiry and diagnose unresolvable session identity by @kyleseaman in #717
- fix(issue-radar): linkify a #123 reference wrapped in parentheses by @dwu96 in #726
- fix(weixin): QR login image broken — iLink field is a URL by @CrysisDeu in #711
- fix(mcp-gateway): pool MCP servers via ACP session/new injection by @NicholasRBowers in #665
- fix(cli): wait for the incumbent gateway to exit before restart spawns by @patrigao in #707
- fix(desktop): say which machine to mint a dashboard token on by @pepmach in #712
- feat(security): let policy pin the update source and minimum version by @bolichen97 in #694
- fix(update): stop the mac updater resolving a stale, already-installed feed by @CrysisDeu in #709
- feat(import): rescope foreign-agent import and make conflicts resolvable by @bolichen97 in #715
- fix(mcp): report an unresolvable MCP command once, not every probe cycle by @pepmach in #713
- fix(issue-radar): make the connect card work for GitLab by @dwu96 in #729
- feat(terminal): add soft-key bar for touch devices by @patrigao in #730
- docs: RFC — add feature-tip (educational) kind to Tips Kit by @CrysisDeu in #731
- feat(desktop): Migrate mac + Linux auto-update to electron-updater by @CrysisDeu in #734
- feat(skills): bundle an iOS Simulator preview skill by @CrysisDeu in #722
- fix(chat): never disable the activity toggle; fill the chat column when it cannot sit beside by @patrigao in #732
- feat(skills): add browser-recording builtin skill by @CrysisDeu in #733
- fix(chat): make the activity panel actually fill the screen on mobile by @patrigao in #747
- fix(desktop): never arm auto-update from a bundle it cannot replace by @pepmach in #710
- feat(dashboard): show when sub-agents need approval in the session list by @kyleseaman in #752
- test(e2e): un-darken the suite and cover the uncovered routes by @smeyffret in #657
- fix(subagent): count only top-level agents in the progress pill by @iamwhatever in #757
- fix(settings): stop the update-channel switcher collapsing into an occluded dropdown by @kyleseaman in #754
- fix(chat): restore the inline subagent card for spawn_run launches by @kyleseaman in #758
- fix(dashboard): show the configured default model/effort before the first turn by @kyleseaman in #753
- fix(ci): capture Opus review verdict via SHA-scoped markers, not --json-schema by @iamwhatever in #756
- fix(mcp-apps): unblock ESM-CDN app iframes in CSP and keep them out of the collapse by @iamwhatever in #761
- chore: move SLACK_SETUP.md to docs/, move clean.sh to scripts/ by @Lock128 in #738
- refactor(ui): retire StyledSelect — migrate last 3 surfaces to Radix Select by @CrysisDeu in #688
- fix(updater): repair the macOS install handoff and its UI by @CrysisDeu in #771
- fix(sweep): verify process identity before the orphan sweep kills a PID by @iamwhatever in #767
- feat(usage): show bonus credits and fix disappearing credit pill by @molladair in #779
- docs(rfc): amend channel RFC with the session address model decision by @CrysisDeu in #778
- feat(prepare-pr): make CI babysit the default after opening a PR by @CrysisDeu in #776
- fix(onboarding): mount first-run modal chrome once to kill transition glitch by @michellemxm in #770
- fix(data-home): stop five writers recreating the pre-move data home by @NicholasRBowers in #763
- fix(capabilities): left-align wrapped side-panel nav labels by @michellemxm in #762
- feat(dashboard): approve/reject queued sub-agents inline from the composer by @kyleseaman in #751
- fix(workflows): point the completion prompt at the user's question by @pepmach in #741
- fix(dashboard): use Cmd+, for Open settings on macOS by @kyleseaman in #783
- refactor(messaging): extract the shared channel turn pipeline by @CrysisDeu in #777
- fix(chat): switch slot model in place instead of resetting the session by @CrysisDeu in #784
- fix(chat): keep the subagent wave chip above theme overlays by @iamwhatever in #787
- feat: native Windows support (ConPTY terminal, metrics, process mgmt) by @dougclauson in #656
- fix(data-home): stop instructing agents and users toward the pre-move data home by @NicholasRBowers in #793
- feat(dashboard): surface a session's GitHub/GitLab issues in the sidebar and side panel by @kyleseaman in #768
- refactor(sidebar): fold collapse cue into the folder glyph by @CrysisDeu in #790
- fix: refine settings & nav copy (remote crew, explore apps, data notice) by @molladair in #781
- fix(context): neutralize forgeable prompt boundary markers in untrusted content by @iamwhatever in #788
- fix(updater): register update IPC before the gateway boot await by @CrysisDeu in #786
- feat(platform): complete the CapabilityManager seam for agent packages + plugins by @bolichen97 in #801
- fix(mcp): write JSON-RPC responses through a private stdout fd by @bolichen97 in #800
- fix(dashboard): stop a stray wheel event dragging the app shell by @patrigao in #797
- feat: show the signed-in Kiro account in the credits panel by @xuejinT in #791
- fix(dashboard): reclaim 8px of dead space under the top header by @michellemxm in #789
- feat: record per-turn context occupancy and cover background dispatch surfaces by @chenmingwei23 in #748
- fix(sidebar): align folder rows and the new-chat row to one text guide by @CrysisDeu in #805
- fix(mcp-apps): make rendered apps interactive — display mode, open-link, resize by @iamwhatever in #785
- fix(dashboard): send subscribe_logs on first connect, add e2e test ids by @smeyffret in #719
- fix(updater-ui): honest indeterminate progress and a Download affordance by @CrysisDeu in #811
- fix(pod): stop worktrees and the global launcher hijacking each other by @NicholasRBowers in #798
- feat(computer-use): native desktop automation for macOS by @bolichen97 in #644
- fix(setup): apply subprocess rlimits after exec, not via preexec_fn by @patrigao in #814
- fix(setup-gate): reuse the onboarding chapter container by @michellemxm in #813
- docs: RFC for resumable subagent sessions by @CrysisDeu in #806
- fix(memory): serialize sqlite writes on the shared memory connection by @patrigao in #799
- feat(chat): unify the Files tab into scannable rows with search by @xuejinT in #796
- fix(config): stop the subagent cwd allowed-root default from drifting by @patrigao in #794
- feat(sidebar): filter flat view by folder from the sort-and-filter menu by @patrigao in #716
- fix(chat): stop the streaming row's height from debouncing into a flash by @iamwhatever in #824
- feat(dashboard): surface channel-originated sessions in the chat list by @NicholasRBowers in #808
- fix(settings): make the Auto language row name the browser's language by @dwu96 in #818
- docs(appstore): RFC for official app registry + editorial feed by @CrysisDeu in #807
- fix(chat): keep mid-turn hand-backs out of the collapse pane by @pepmach in #740
- fix(dashboard): label session links by channel, not always Slack by @pepmach in #827
- fix(import): embed off the request and stop dropping foreign memory by @bolichen97 in #826
- fix(computer-use): close two approval bypasses and six correctness bugs by @bolichen97 in #831
- docs(appstore): drop document-level registry delegation from RFC by @CrysisDeu in #834
- fix(kiro): probe readiness only at boot and drop sign-in chrome by @bolichen97 in #820
- fix(gateway): name the process that actually holds gateway.lock by @patrigao in #810
- fix(sidebar): hide the chat sessions vertical scrollbar by @CrysisDeu in #832
- fix(computer-use): make the Open System Settings shortcuts work by @bolichen97 in #829
- feat(i18n): ship 6 more languages and fix plural rendering by @bolichen97 in #828
- feat(dashboard): show the current git branch in the active project button by @kyleseaman in #760
- chore(deps): bump actions/setup-python from 5 to 7 by @dependabot[bot] in #838
- chore(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #839
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #840
- chore(deps): bump actions/setup-node from 4 to 7 by @dependabot[bot] in #841
- feat(dashboard): move between sessions with Cmd+[ / Cmd+] by @kyleseaman in #812
- chore(deps): bump aws-actions/configure-aws-credentials from 6.2.2 to 6.2.3 by @dependabot[bot] in #837
- fix(dashboard): make Auto selectable as the session model by @kyleseaman in #843
- feat(dashboard): collapse turn-recovery injections to a one-line card by @kyleseaman in #842
- fix(desktop): scale & reposition splash ghosts on window resize by @iamwhatever in #846
- feat(artifacts): companion chat panel + anchored comments on the artifact page by @NicholasRBowers in #803
- feat(chat): confirm the command before running a code block in the terminal by @kyleseaman in #848
- fix(prompt): require the full PR/MR URL so the dashboard Changes panel can surface it by @kyleseaman in #847
- feat(skills): stage similar auto-skills as versioned pending updates + notify on review by @iamwhatever in #782
- fix(dashboard): describe the Globe toggle as agent action, not reading by @iamwhatever in #850
- feat(i18n): ship German and Italian, relabel the Auto language row by @bolichen97 in #852
- feat(chat): enlarge inline image previews + zoom & pan in the lightbox by @xuejinT in #854
- feat(mcp): per-tool loaded/deferred status in the session MCP dropdown by @iamwhatever in #825
- fix(auth): project Kiro identity tables instead of copying the whole store by @bolichen97 in #858
- docs: Add a short release process overview by @CrysisDeu in #879
- fix(embeddings): run llama.cpp inference on one owned thread by @patrigao in #877
- fix(telemetry): emit the turn histogram, fix the cold/warm split, surface per-turn context by @chenmingwei23 in #875
- fix(tunnel): stop the tunnel on gateway shutdown by @patrigao in #867
- fix(acp): collapse unroutable-frame drop logs into a periodic counter by @patrigao in #866
- fix(cli): verify the replacement gateway is serving before reporting success by @patrigao in #865
- chore(session-pid): stop logging a traceback for the expected orphan-probe race by @patrigao in #864
- fix(dashboard): serve the SPA shell for /apps client routes, reach the knowledge onboarding state by @smeyffret in #821
- docs(appstore): slim the registry entry to identity plus source by @CrysisDeu in #873
- docs: replace inherited changelog with an initial launch entry by @bolichen97 in #878
- docs(agents): clarify routing metadata tooltip + Orchestrator Mode by @iamwhatever in #882
- docs(orchestrator): explicit plan requests always plan; decide-don't-ask during execution by @iamwhatever in #883
- fix(cli): rebrand banners to Kiro Crew and stop pod crashing off-Linux by @bolichen97 in #872
- ci: fork PRs terminate readiness at a red maintainer-review verdict by @iamwhatever in #889
- fix(i18n): make the Simplified-Chinese catalog read like Chinese by @dwu96 in #835
- fix(i18n): sync the German and Italian catalogs to en's browser-toggle keys by @kyleseaman in #863
- refactor(dashboard): rename Agents tab to Crews by @CrysisDeu in #851
- fix(chat): show empty state on Changes tab when session has no PR by @xuejinT in #888
- fix(dashboard): stop the startup restore from crash-looping the gateway by @CrysisDeu in #885
- fix: session-bound MCP tools work without gateway pooling (#755) by @iamwhatever in #844
- feat(telemetry): add anonymous usage beacon for active-install metrics by @bolichen97 in #876
- fix: harden four CSE security findings (find allowlist, zip bomb, href XSS, apigw logging) by @iamwhatever in #890
- fix(security): redact the two-segment dashboard link token as one unit by @smeyffret in #886
- fix(workflows): stop the run ceiling from discarding completed agent work by @pepmach in #853
- feat(dashboard): show goal-loop cycle progress in the chat sidebar by @patrigao in #893
- fix(subagent): give queued spawns their real agent id by @dwu96 in #899
- feat(artifacts): browse the whole library in the chat Artifacts panel by @NicholasRBowers in #892
- feat(artifacts): add a local file to the library from the Artifacts page by @NicholasRBowers in #884
- fix(service): harden installed-service environment (locale, kiro-cli pin, program override) by @cixuuz in #849
- feat(discord): resume a dashboard session from Discord, and see it from the dashboard by @pepmach in #830
- fix: session directives destroyed in transit (#755) by @iamwhatever in #907
- feat(telemetry): report governance POSTURE in the usage beacon by @bolichen97 in #916
- feat(i18n): gate new error responses on a machine-readable code by @dwu96 in #922
- feat(i18n): carry translator context into the translation shards by @dwu96 in #921
- feat(context): inject the dashboard UI language so tool-call purposes stop mixing languages by @dwu96 in #917
- chore(deps): upgrade i18next to 26 and react-i18next to 17 by @dwu96 in #915
- feat(i18n): add the translator-context sidecar and gate its coverage by @dwu96 in #914
- docs(i18n): add per-language style guides and a DNT glossary by @dwu96 in #911
- feat(i18n): add Phase 0 i18n gates and the en-XA pseudolocale by @dwu96 in #898
- feat(themes): make the chat loading indicator a theme-owned surface by @xuejinT in #894
- feat(artifacts): open artifacts in the chat side panel, like files by @NicholasRBowers in #909
- fix(i18n): regenerate the pseudolocale so the frontend gate stops failing on main by @kyleseaman in #937
- fix(dashboard): make the web preview's Reload actually re-request the page by @kyleseaman in #939
- test(desktop): guard the bundled launcher's symlink resolution by @kyleseaman in #941
- feat(i18n): commit the translation prompt and a 9-locale translation driver by @dwu96 in #933
- fix(chat_runner): fix file-chip before-snapshot race for auto-approved writes by @tlobinger in #920
- fix(pod): give systemctl --user a session bus so pods work from a service install by @NicholasRBowers in #906
- fix(agent): stop ephemeral instances hijacking the shared agent home by @NicholasRBowers in #881
- fix(dashboard): stop the session-naming agent from titling a chat with a refusal by @kyleseaman in #936
- feat(memory): disclose the embedding model in the Memory tab by @iamwhatever in #944
- fix(spawn): apply child resource limits after exec instead of forking the gateway by @kyleseaman in #943
- fix(usage): pick the credential belonging to the signed-in Kiro profile by @kyleseaman in #940
- fix(dashboard): collapse the transient-recovery injections to a one-line card by @kyleseaman in #948
- fix(apps): stop Branch field clipping in External Registries add form by @iamwhatever in #951
- feat(mcp-gateway): support macOS and mark Windows unsupported in the UI by @iamwhatever in #945
- fix(channels): drive /compact through the prompt transport in Discord, Slack, Telegram by @iamwhatever in #953
- fix(themes): draw the kiro loader outline as a vector stroke by @xuejinT in #952
- fix(i18n): stop three i18n gates from failing correct translations by @dwu96 in #946
- fix(acp): forward diff fields through AcpProvider._to_llm_event by @tlobinger in #955
- feat: pin the latest prompt as a sticky banner in chat by @michellemxm in #950
- fix(chat): stop streaming-flash for image, table, and diff content by @iamwhatever in #966
- feat(mcp-apps): give inline apps wide and full-screen presentations by @iamwhatever in #958
- fix(dashboard): stop overage-blind text scrape from clobbering API usage by @cixuuz in #954
- fix(browser): guard the browse-mode writes to kiro's global mcp.json by @kyleseaman in #971
- fix(dashboard): stop tool-refusal recovery injections leaking into the composer queue by @iamwhatever in #973
- fix(metrics): give each duration histogram its own bucket boundaries by @chenmingwei23 in #968
- fix(install): stop cli.sh requesting the unpublished
betachannel prefix by @CrysisDeu in #978 - feat(i18n): translate the chat transcript and scenes (Phase 1 batch 4) by @dwu96 in #959
- fix: end assistant text with a trailing space before tool calls by @patrigao in #980
- feat(i18n): translate the shared components (Phase 1 batch 3) by @dwu96 in #956
- feat(i18n): translate the settings and overview panels (Phase 1 batch 1) by @dwu96 in #932
- feat(dashboard): add an audio-reactive dictation panel for voice input by @CrysisDeu in #984
- ci: publish cli.sh from CI instead of by hand by @CrysisDeu in #988
- fix(tests): make the macOS-only suite failures real fixes, not skips by @bolichen97 in #990
- fix(telemetry): clamp beacon version so adoption metrics stay correct by @bolichen97 in #989
- feat(i18n): translate the top-level pages (Phase 1 batch 2) by @dwu96 in #949
- fix(test): budget xdist workers across concurrent pytest runs by @CrysisDeu in #994
- ci: auto-label new issues with a Bedrock triage classifier by @dwu96 in #1010
- feat(i18n): make formatting follow the app language (Phase 4 seam) by @dwu96 in #1009
- fix(website): let chat chrome follow the Font Family setting by @dwu96 in #1008
- perf(dashboard): stop per-frame store churn on the reasoning stream by @CrysisDeu in #1005
- docs: add update architecture RFC (install-shape capability contract) by @CrysisDeu in #1003
- fix: preserve user data on uninstall by @pepmach in #1002
- test(e2e): widen the window the pulsing spec asserts on by @smeyffret in #997
- fix(release): fail closed on missing macOS artifacts by @pepmach in #991
- fix: create a chat slot already filed into its folder by @hoang-phan98 in #987
- fix: rebase context meter stats on mid-session model switch by @hoang-phan98 in #986
- feat(i18n): give zh-CN, hi and bn a script font fallback (Phase 2a) by @dwu96 in #982
- perf(website): cut ~787 KB gzip from the eager frontend bundle by @kyleseaman in #981
- feat(attachments): deliver images to the model and share one ingestion layer by @pepmach in #974
- test(channels): add a wire-level harness with attributed vendor fixtures by @CrysisDeu in #965
- fix(dashboard): settle the stop card when teardown clears the stop state by @smeyffret in #901
- fix(i18n): localize agent-capabilities nav, composer placeholder, session status, and approval-mode picker by @xuejinT in #1016
- feat(i18n): translate the bundled apps and shared modules (Phase 1 batch 5) by @dwu96 in #964
- fix(weixin): stop declaring file support the transport does not have by @CrysisDeu in #855
- perf(dashboard): stop ChatPage re-rendering for data it does not display by @CrysisDeu in #1021
- refactor(channels): adopt the shared turn pipeline in wecom, webex and teams by @CrysisDeu in #1019
- fix: gate provider hrefs through safeHttpUrl + deny deploy tamper of audit log bucket by @iamwhatever in #1014
- feat(embeddings): support a user-supplied embedding model with automatic re-embed by @iamwhatever in #961
- fix: suppress internal channel protocol leaks by @pepmach in #1054
- fix(sidebar): stop the CI spinner on a closed PR chip by @darko-mesaros in #1045
- fix(channels): preserve options trailers across chunking by @pepmach in #1051
- feat(apps): add Design Critique as an opt-in builtin app by @xuejinT in #972
- fix(dashboard): surface an uninstalled STT provider before recording by @CrysisDeu in #1024
- perf(dashboard): defer meta redaction to display time, keep content at load by @CrysisDeu in #1041
- fix(discord): support session title search by @pepmach in #1052
- feat(discord): ingest inbound attachments by @pepmach in #1053
- fix(config): resolve data-home paths per call, not at import time by @chenmingwei23 in #1049
- feat(i18n): gate that every referenced key exists, and fix one that does not by @dwu96 in #1046
- fix(options): tolerate a stray markdown-link close after [OPTIONS:] by @xuejinT in #1043
- fix: no-op the child watcher install on Python 3.14 by @darko-mesaros in #1015
- ci: block production dependency vulnerabilities by @pepmach in #1001
- fix(security): redact JWTs in the frontend and prepare-pr mirrors by @smeyffret in #942
- perf(memory): batch episodic fetch, debounce access touch, bound transcript reads by @kyleseaman in #983
- chore(i18n): move the strict i18n gates to the diff, drop the qa site allowlist by @dwu96 in #1060
- feat(apps): add Crew Companion as an opt-in builtin app by @xuejinT in #1055
- feat(subagent): continuable conversations — spawn_continue/steer/release by @CrysisDeu in #1023
- fix: make channel sessions surface-aware by @bolichen97 in #979
- fix(apps): carry a builtin's agents and skills through discovery by @bolichen97 in #1076
- fix(telemetry): record real turn duration in the usage row store by @chenmingwei23 in #1082
- feat(mcp-gateway): Windows support via a named-pipe transport layer by @chenmingwei23 in #1042
- feat(privacy): add telemetry disclosure notice and privacy controls by @pepmach in #1012
- fix(security): enforce third-party app launch boundary with default-OFF execution by @pepmach in #998
- docs(i18n): add the i18n measurement-gap RFC by @CrysisDeu in #1075
- perf(dashboard): stop the rail collapse thrashing the transcript by @CrysisDeu in #1074
- perf(boot): stop blocking the boot path and the import graph by @kyleseaman in #1071
- fix(dashboard): make transcript disclosure state survive row recycling by @hoang-phan98 in #1067
- fix: bind Ctrl+G to the agent monitor so the crew hint works by @darko-mesaros in #1065
- feat: render Excalidraw diagrams inline in chat and file panel by @darko-mesaros in #1064
- feat(i18n): collapse dangling-delimiter fragments into whole keys (Phase 3 item 1) by @dwu96 in #1048
- feat(cli): artifact signature verification by @pepmach in #995
- feat(nav): swap the rail's Contact Us row for GitHub star + issue links by @xuejinT in #976
- fix(macos): stop the home-directory walks tripping a burst of TCC consent dialogs by @kyleseaman in #1073
- test(e2e): declare the locale and tint-bound dependencies by @smeyffret in #887
- fix(chat): show the channel brand mark on a channel-origin session row by @kyleseaman in #1072
- fix(i18n): resolve the PrivacyPanel shell label keys statically by @kyleseaman in #1095
- feat(privacy): add in-product telemetry opt-out and onboarding privacy step by @bolichen97 in #1091
- fix: stop partial config writes from resetting user settings by @bolichen97 in #1092
- feat(diff): single colored line-number gutter for hand-rolled diff views by @krishdhasmana in #1087
- fix(electron): stop the permission check denying a media check with no mediaType by @CrysisDeu in #1108
- docs: adopt the Amazon Open Source Code of Conduct by @kyleseaman in #1094
- fix(dashboard): name chat sessions in the workspace UI language by @dwu96 in #1106
- feat(i18n): translate the settings/overview panels and the Phase 1 residue by @dwu96 in #1040
- fix(chat): show the loader when the stream goes quiet mid-turn by @CrysisDeu in #1118
- fix(chat): stop streaming rows remounting per chunk; constant-latency reveal by @krishdhasmana in #1089
- fix(dashboard): keep a surfaced channel tab mirroring its channel session until the user forks it by @kyleseaman in #1112
- fix(skills): make image-authoring discoverable, add excalidraw route by @darko-mesaros in #1110
- perf(mcp): stop a disabled server defeating the probe cache by @kyleseaman in #1104
- feat(channels): tell Slack and Discord users when their context was auto-compacted by @kyleseaman in #1100
- feat(agents): make the default model per-agent, with the global as fallback by @kyleseaman in #1097
- fix(acp): report accurate context usage after compaction by @hoang-phan98 in #1090
- test: declare jsonschema so the config-validation guards run by @smeyffret in #1069
- ci: let in-flight main runs finish instead of cancelling them by @smeyffret in #1068
- fix(issue-radar): give the investigating agent a way to record findings by @dwu96 in #1066
- feat(perf): debug-only stack sampler behind
kirocrew perf sampleby @kyleseaman in #1063 - docs(i18n): document the formatting seam, the gate chain, and merge-not-join by @dwu96 in #1022
- fix: pin a tall prompt by its bottom edge, not its top by @michellemxm in #1131
- fix(dashboard): apply simplifiedToolNames to session-list status by @CrysisDeu in #1127
- ci: surface PR merge conflicts as a label in the pulls list by @iamwhatever in #1132
- feat(skills): audit when consolidation proposes no skill candidate by @iamwhatever in #1134
- fix: tighten Search Everywhere double-Shift window to 250ms by @iamwhatever in #1135
- feat(windows): Authenticode-sign the installer via AWS Signer by @bolichen97 in #1125
- feat(privacy): cut the beacon payload to five fields, add an enterprise opt-out by @bolichen97 in #1133
- feat(signing): pin the CLI manifest signing key by @bolichen97 in #1144
- fix(desktop): rank the relocatable .cmd shim above the bundle's pip .exe by @bolichen97 in #1177
- fix(dashboard): stop truncating the IdC issuer host in the credits modal by @CrysisDeu in #1147
- feat(i18n): make every date and time follow the app language (Phase 4 batch 3) by @dwu96 in #1123
- fix: read the tool-call purpose under both wire spellings by @CrysisDeu in #1187
- feat(onboarding): let the Other role be typed in by @CrysisDeu in #1188
- fix(ci): raise AI review timeout to 90m as a runaway backstop by @bolichen97 in #1183
- fix(mcp-gateway): stop SIGKILLing gatewayd on restart, forward non-secret declared env by @chenmingwei23 in #1081
- fix(telemetry): publish the bucket-generation disclosure for every histogram by @chenmingwei23 in #1184
- refactor(mcp-gateway): drop channel_id from PoolKey by @chenmingwei23 in #1191
- fix(discord): show typing before the session cold start by @pepmach in #1193
- feat: semantic endpointing (voice auto-submit) for streaming STT by @iamwhatever in #1180
- fix: seven localized backend/dashboard defects (#423-#429) by @iamwhatever in #1146
- feat(issue-radar): act on pull requests from the app, singly or in bulk by @bolichen97 in #1111
- feat(mcp-apps): reveal tool arguments progressively via tool-input-partial by @iamwhatever in #1143
- fix(chat): render sent-prompt images as small previews by @xuejinT in #1121
- fix: probe the launcher's split unshare sequence, not a combined call by @darko-mesaros in #1138
- fix(mcp-gateway): resolve the stub's data home per-platform, not via $HOME by @chenmingwei23 in #1124
- fix(test): drop removed channel_id field from PoolKey test helper by @kyleseaman in #1201
- feat(apps): show all built-ins in Discover, unify enable/disable, add Companion offline state by @xuejinT in #1136
- fix(side-panel): make the diff split-view toggle actually split by @dwu96 in #1204
- feat(i18n): converge the hand-rolled formatters onto the seam (Phase 4 batch 2) by @dwu96 in #1047
- refactor(task-runner): align the app with the other builtins by @kyleseaman in #985
- fix(dashboard): one section-header idiom for the side panel's list tabs by @dwu96 in #1202
- feat(apps): add the Papyrus LaTeX editor as an opt-in builtin app by @bolichen97 in #1077
- feat(perf): debug-only frontend bundle report and React commit timing by @kyleseaman in #1208
- fix: report an unbuildable sandbox as itself, not a missing Kiro CLI by @darko-mesaros in #1203
- feat(perf): desktop app metrics via
kirocrew desktop metricsby @kyleseaman in #1199 - fix(heartbeat): make sessions stateless, matching the documented contract by @chenmingwei23 in #1195
- feat(i18n): gate untranslated text at render time under the en-XA pseudolocale by @dwu96 in #1107
- fix(chat): remember which Change / Issue tab a session had open by @kyleseaman in #1103
- fix(chat): re-surface a closed channel tab when the channel moves on by @kyleseaman in #1101
- feat(agents): make the default agent settable and legible where it is chosen by @kyleseaman in #1093
- feat(skills): loosen skill-detection prompt to reduce false negatives by @iamwhatever in #1148
- ci: add hardened two-stage AI review for approved fork PRs by @iamwhatever in #1145
- fix(i18n): restore ellipsis on three flex children that could not apply it by @darko-mesaros in #1222
- feat(dashboard): consolidate folder create + settings into one modal by @CrysisDeu in #1182
- fix(dashboard): slide the notification sheet out on dismiss by @CrysisDeu in #1227
- chore(dashboard): drop the Artifacts page stat card row by @CrysisDeu in #1235
- chore(rules): make the page StatCard row optional, not required by @CrysisDeu in #1238
- fix(stt): find Homebrew when the gateway has no brew on PATH by @CrysisDeu in #1228
- chore: upgrade electron 33 to 43 and migrate CI to macos-15 by @CrysisDeu in #1236
- fix(chat): show images and three lines in the pinned prompt by @CrysisDeu in #1230
- fix: nav rail flashes below chat input when crossing mobile breakpoint by @krishdhasmana in #1231
- feat: add dev-fullstack.sh one-terminal dev stack launcher by @krishdhasmana in #1232
- feat(artifacts): expose the star on masonry cards and the detail page by @CrysisDeu in #1244
- fix(chat): gate markdown path chips on a real stat, and browse directories by @dwu96 in #1213
- fix(messaging): release the session when renderer finalization fails by @CrysisDeu in #1234
- test(mcp-gateway): prove pooling with real stub processes on all three platforms, plus a runtime invariant by @chenmingwei23 in #1192
- fix(chat): let the user fold and dismiss a question card by @CrysisDeu in #1242
- fix(security): one ceiling check for every auto-approve grant by @buluoray in #1088
- ci: cap every workflow job with timeout-minutes by @CrysisDeu in #1247
- fix(subagent): continuable-conversation hardening follow-ups (#1113 #1114 #1115) by @CrysisDeu in #1246
- fix(dashboard): show full session title in inline rename field by @cixuuz in #1226
- fix: seed the context meter when a session is reopened by @hoang-phan98 in #1224
- fix(test): remove fixed-sleep races from the ACP runtime tests by @kyleseaman in #1212
- feat(service): install an AppArmor profile granting the gateway userns by @darko-mesaros in #1210
- fix(i18n): close the ALL-CAPS gate hole and translate the label tables it hid by @dwu96 in #1099
- fix(i18n): translate WelcomeView mode labels and prompt suggestions by @cixuuz in #1223
- feat(apps): add the Meetings app as an opt-in builtin by @bolichen97 in #1080
- fix(voice): scope STT recording state per session slot by @cixuuz in #1120
- fix(telemetry): ship the bucket-generation caveat with the numbers it qualifies by @chenmingwei23 in #1186
- fix(skills): make app-provided skills visible to the skill scanner by @NicholasRBowers in #1260
- feat: add Notes, a git-backed markdown notebook, as a builtin app by @michellemxm in #970
- fix(mcp-apps): pace the reveal per element so the draw-on is perceptible by @iamwhatever in #1265
- fix(lessons): accept every channel namespace in api_lessons_create by @chenmingwei23 in #1270
- ci: label fork PRs for reviewer visibility in the pulls list by @iamwhatever in #1261
- fix: self-heal a stray auth-staging path so gateway boot doesn't crash (#561) by @iamwhatever in #1214
- feat: advisory host-resource guard for heavy work by @iamwhatever in #1217
- fix(i18n): gate on diffs, not stored totals, and make the logs readable by @dwu96 in #1257
- feat(mcp-gateway): fail closed on unverifiable peers on macOS by @chenmingwei23 in #1251
- feat(chat): render model-emitted links as favicon + page title by @dwu96 in #1220
- fix(apps): render app hero art in Library rows by @chenmingwei23 in #1216
- ci: authenticate fork-review diff fetch with basic auth, not bearer by @iamwhatever in #1272
- feat: redesign the Crews page as a roster with an editor sheet by @CrysisDeu in #1274
- docs(rfc): orchestrator chat sessions — engineered pipeline, decision-only agent by @CrysisDeu in #1280
- fix(desktop): grant the macOS mic entitlement so voice input can prompt by @bolichen97 in #1292
- fix(telegram): size messages by rendered HTML and record API latency by @chenmingwei23 in #1281
- feat(artifacts): start a new blank document from the Artifacts page by @NicholasRBowers in #910
- feat(apps): add PPTX Maker as an opt-in builtin app by @bolichen97 in #1079
- docs(autopilot): bind the "Autopilot" name in the orchestrator prompt + design doc by @iamwhatever in #1277
- fix(chat): steer mid-stream strands the streaming marker above the bubble by @krishdhasmana in #1279
- fix(i18n): repair the lint exemptions that reported machine values as copy by @dwu96 in #1290
- fix(issue-radar): stop bulk auto-merge failing on ready and merged PRs by @bolichen97 in #1291
- fix: file chips count whole file as additions on strReplace edits by @krishdhasmana in #1267
- docs(agents): require stateless MCP tools under shared backend by @iamwhatever in #1306
- fix(mcp-apps): slow the reveal and stop batching so progress reads as drawing by @iamwhatever in #1309
- fix(composer): strip trailing blank lines from pasted text by @iamwhatever in #1308
- fix(dev-fleet): explain why pods are unavailable off Linux, and stop reporting built worktrees as unbuilt by @chenmingwei23 in #1254
- refactor: extract shared read_bounded_json + _persist_turn_row helpers (#490, #1086) by @iamwhatever in #1314
- feat(chat): rove the session list with ArrowUp / ArrowDown by @kyleseaman in #1315
- fix(chat): resolve the real context window on a model switch, not one turn later by @kyleseaman in #1313
- feat(metrics): time SQLite store operations by @kyleseaman in #1221
- feat(i18n): translate the label tables the ALL-CAPS gate exposed by @dwu96 in #1209
- chore: strip task-log noise and redundant comments; codify comment style by @bolichen97 in #1278
- feat(connections): M1 provider registry + OAuth return-address relay by @pepmach in #1287
- feat(connections): M1 Connections page (services gallery + MCP tab) by @pepmach in #1229
- fix(chat): default the pinned-prompt banner off and stop it double-painting by @iamwhatever in #1317
- fix(security): scope two self-protection deny rules to command structure by @NicholasRBowers in #905
- fix(issue-radar): make connected-repo authz gate provider-case-aware by @iamwhatever in #1320
- fix(ci): include registry.json in i18n-render base export by @buluoray in #1321
- feat(apps): auto-approve a builtin app's calls to its own MCP server by @buluoray in #1307
- fix(babysit): stop monitor loops and long turns dying silently by @NicholasRBowers in #1266
- fix(backend): attribute messaging channels in SEL + totalize MCP cron create (#815, #391) by @iamwhatever in #1311
- docs: rewrite Kiro Crew README by @kyleseaman in #82
- fix(deps): bump fast-uri to 3.1.5 (CVE-2026-18446) by @iamwhatever in #1336
- fix(deps): bump the fast-uri override past GHSA-7p8r-x3mc-p8w7 by @dwu96 in #1338
- fix(security): rename the standing auto-approve key and unify ad-hoc durations by @NicholasRBowers in #1084
- feat: theme the onboarding mascot border from its Figma layer by @michellemxm in #1333
- fix(markdown-panel): make its diff split toggle split, and light up correctly by @dwu96 in #1337
- feat(crew): per-crew triggers routing + select_crew orchestration by @iamwhatever in #1335
- fix: pool package-prefixed MCP-gateway agents + share profile slug constant (#925, #557) by @iamwhatever in #1312
- feat: chat header alignment, panel icons, sidebar collapse morph by @krishdhasmana in #1058
- fix(i18n): translate the zoom-level description in Settings → Display by @CrysisDeu in #1345
- fix(chat): keep tool-call labels in the active UI language by @xuejinT in #1342
- refactor(trust): share the trust-grant pattern helpers by @buluoray in #1347
- feat(crews): List view, clamped descriptions, modal editor by @CrysisDeu in #1331
- fix(link-preview): unfurl pages that exceed the read cap by @dwu96 in #1344
- ci: retire long-term Arbiter; fold one-way-door lens into Design Review by @iamwhatever in #1334
- fix(followup): demote disabled worktree button in unscoped sessions by @darko-mesaros in #1325
- docs(rfc): add a status-audited index and front matter to every RFC by @CrysisDeu in #1354
- feat(dashboard): session-first Artifacts panel by @xuejinT in #1343
- fix(settings): make the segmented control read as a group of choices by @CrysisDeu in #1357
- fix(dev-fleet): stop listing worktrees that no longer exist by @chenmingwei23 in #1352
- fix(papyrus): close four repo-config RCE paths and support Windows by @bolichen97 in #1316
- chore(cli): hide TUI command surface to avoid Kiro-CLI overlap by @iamwhatever in #1356
- fix(theme): stop Auto dark/light freezing in the desktop app by @CrysisDeu in #1358
- docs: show contributors as linked GitHub avatars in README by @bolichen97 in #1362
- fix(sandbox): stop denying link/linkat in the Linux seccomp filter by @iamwhatever in #1339
- test: make CI-flaky tests deterministic and halve suite runtime by @bolichen97 in #1353
- feat(memory): change the embedding model from the dashboard by @iamwhatever in #1149
- fix: keep subagent/workflow bars visible off their sidebar tab; project-picker path delimiter (#728, #1196) by @iamwhatever in #1319
- chore(themes): drop nine orphaned built-in-theme art assets by @bolichen97 in #1372
- chore(docs): Update security email contact address by @nadetastic in #1360
- fix(pptx-maker): require credential bodies so real rasters stop being blanked by @chenmingwei23 in #1365
- fix(telemetry): stamp the distribution channel at build time by @bolichen97 in #1384
- feat: move Privacy before Customize as its own mandatory chapter by @michellemxm in #1363
- feat(apps): add Mochi desktop companion as a builtin app by @buluoray in #1258
- test: stop fixtures leaking /tmp dirs and waiting out fixed budgets by @bolichen97 in #1382
- fix(scrub): remove 11 personal identifiers and close the vacuous alias gate by @chenmingwei23 in #1381
- fix(dev-fleet): declare the platforms the app actually runs on by @chenmingwei23 in #1376
- fix(agents): give installed-agent names full width in the list rows by @iamwhatever in #1370
- refactor(agents): drop dead routing-metadata editor, explain crew triggers by @iamwhatever in #1367
- feat(artifacts): reconcile the files and artifacts stacks in the chat side panel by @NicholasRBowers in #1083
- feat(routes): accept userless ssh:// registry urls (frontend/backend validation parity) by @tlobinger in #918
- feat(browser): native embedded browser panel with in-process CDP agent control by @iamwhatever in #1318
- fix(chat): preserve streamed-row identity across the chat_done transcript reload by @iamwhatever in #1369
- feat(i18n): render the surfaces the en-XA gate never visited by @dwu96 in #1294
- feat(shortcuts): make Search Everywhere activation configurable by @adlio in #1390
- fix(macos): stop File Explorer search tripping ~/Pictures & ~/Music TCC prompts by @adlio in #1389
- fix(prompt): stop the agent searching the entire home directory by @adlio in #1386
- fix(connections): hold the services gallery behind an opt-in flag by @pepmach in #1383
- feat(settings): tag Computer Use panel as macOS only by @iamwhatever in #1377
- fix(dashboard): stop a meta dict race aborting chat-history saves by @patrigao in #1322
- docs: restructure README Quick start into four install paths by @kyleseaman in #1392
- fix(scrub): replace four employee-alias workplace paths by @chenmingwei23 in #1395
- docs: add GOVERNANCE.md and MAINTAINERS.md by @kyleseaman in #1396
- docs: add contributor-facing sections to CONTRIBUTING.md by @kyleseaman in #1398
- fix(apps): derive a builtin app's identity from its agent for own-MCP auto-approve by @buluoray in #1399
- fix(pod-e2e): make the harness runnable on symlinked-HOME and BSD hosts by @chenmingwei23 in #1385
- refactor(sessions): make a channel conversation's dashboard tab that conversation by @NicholasRBowers in #1366
- feat: expose the public skill registry to the agent by @CrysisDeu in #1401
- fix(voice): call the TTS provider Amazon Polly, its actual name by @dwu96 in #1400
- feat(mcp-apps): opt-in rendering of MCP Apps in the right side panel by @iamwhatever in #1388
- fix(orchestrator): arm plan-review gate reliably and stop stage over-runs by @iamwhatever in #1387
- feat(apps): anonymous install receipt for official app installs by @pepmach in #1379
- feat(pod): macOS support via a launchd backend by @chenmingwei23 in #1391
- chore(apps): hide Crew Companion from the App Store by @iamwhatever in #1407
- feat(github): add issue forms for bug, feature, and docs reports by @kyleseaman in #1410
- docs: make GOVERNANCE.md and MAINTAINERS.md reachable by @kyleseaman in #1411
- docs: restore two README tables broken by #1392's column collapse by @kyleseaman in #1413
- feat(security): surface the third-party app execution gate in Settings by @CrysisDeu in #1414
- docs: add TENETS.md by @kyleseaman in #1419
- docs: use the two-word product name in prose by @kyleseaman in #1420
- feat(notes): add row actions, drag-to-file and a top-level new note by @michellemxm in #1323
- fix(issue-radar): finish the bulk-merge follow-ups and expire the label cache by @bolichen97 in https://github.com/kirodotdev/KiroCrew/pull/1402
- feat(apps): add the LaunchDarkly app to the curated registry by @CrysisDeu in https://github.com/kirodotdev/KiroCrew/pull/1425
New Contributors
- @dougclauson made their first contribution in #656
- @tlobinger made their first contribution in #920
- @darko-mesaros made their first contribution in #1045
- @nadetastic made their first contribution in #1360
- @adlio made their first contribution in #1390
Full Changelog: v0.1.1...v0.1.2