close
Skip to content

Releases: kirodotdev/KiroCrew

v0.6.0-insider.1

v0.6.0-insider.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Sep 06:28
d7ad499

What's Changed

  • refactor: extract shared hardened gh runner for all gh spawn paths (#342) by @bolichen97 in #2407
  • feat(security): operator keystone extension for OAuth consent-endpoint allowlist (#1341) by @bolichen97 in #2402
  • fix: redact model-authored tool titles on all deny surfaces (#2274) by @bolichen97 in #2389
  • feat(chat): message-level pinning with pinned messages panel by @RohanK6 in #1676
  • ci(review): expand Opus to correctness blocking + sync fork prompt by @iamwhatever in #2379
  • feat(mcp-pool): Toggle all switch for poolable MCP servers by @chenmingwei23 in #2433
  • fix(knowledge): make the three auto-ingest paths opt-in by @bolichen97 in #2448
  • fix(dev-fleet): report slow actions as indeterminate, not as a fake percentage by @chenmingwei23 in #2439
  • test(dashboard): make chat-pins transient-I/O test portable on Windows by @iamwhatever in #2454
  • feat(voice): add a push-to-talk key for voice input by @CrysisDeu in #1608
  • feat(watchdog): detect a stalled turn from outside the turn's read loop by @chenmingwei23 in #2466
  • feat: receive images, voice and files on the Weixin channel by @chenmingwei23 in #2444
  • fix(dev-fleet): refuse the sync when pip cannot reinstall into the live venv by @chenmingwei23 in #2445
  • fix(prepare-pr): re-mirror the local review gate onto the current CI contract by @iamwhatever in #2456
  • feat(voice): show info banner + mic-click modal on remote instances by @cixuuz in #2471
  • refactor: centralize title hydration by @JoernZheng in #2467
  • fix(test_wait_tool_early_end): scope the wait-tool fake clock to the wait loop thread by @tlobinger in #2460
  • fix(terminal): complete subcommands for tools the user installed by @dwu96 in #2429
  • feat: first-party fixed-argv carve-out in sandbox fail-close (#1563) by @bolichen97 in #2428
  • feat: verify internal-API session claims via unix-socket peer creds (#302) by @bolichen97 in #2424
  • fix: re-vet cron jobs at fire time; move SEL key to trust/ (#1881) by @bolichen97 in #2421
  • build: target Node 24 LTS with a single 22+ floor everywhere (#1070) by @bolichen97 in #2415
  • feat: pin tunnel sessions to daemon-verified tailnet peer (#1762) by @bolichen97 in #2411
  • fix(appstore): compute app trust fields server-side (#580) by @bolichen97 in #2408
  • fix: detect and audit tier downgrades in nested-sandbox passthrough (#691) by @bolichen97 in #2406
  • fix: per-root hardlink-scan budgets with loud truncation (#646) by @bolichen97 in #2387
  • fix: make revocation generation cover refresh tokens (#2028) by @bolichen97 in #2388
  • ci: gate vendored _vendor tree behind a sha256 manifest (#492) by @bolichen97 in #2392
  • fix(dashboard): restore isort-clean import order in the dashboard auth module by @iamwhatever in #2479
  • feat(instances): carry the kiro-cli context so a sent session resumes by @iamwhatever in #2260
  • revert: withdraw multi-account Telegram until a bot is governable (#2203) by @chenmingwei23 in #2476
  • docs(autosde): forbid new work on the gateway boot path by @CrysisDeu in #2472
  • docs: revise perpetual-agent RFC after a first-principles re-read by @CrysisDeu in #2506
  • fix: restore leading slash on git-mangled diff header paths (#2493) by @bolichen97 in #2517
  • fix: attach clipboard images despite text/html and synthesize filenames (#2489) by @bolichen97 in #2520
  • test(acp): stop the leaked stderr-drain task from mocked _spawn tests by @SebastianYuSun in #2509
  • test(website): cover six app surfaces that had no tests at all by @CrysisDeu in #2514
  • feat(cloud): durable launch jobs + owner-only API for EC2 crew setup by @iamwhatever in #2059
  • feat(browser): make the built-in browser the default for chat by @iamwhatever in #2082
  • fix: reject unknown tag ids on board columns instead of silent drop (#1897) by @bolichen97 in #2568
  • fix: surface permanent turn-failure reasons in Telegram replies (#1831) by @bolichen97 in #2565
  • refactor(i18n): run the unit-literal scan as a gate, not a vitest test by @k33bz in #2562
  • fix(chat): drop the sessions sidebar's pinned Split View button by @chenmingwei23 in #2557
  • fix(dev-fleet): actionable error when no trusted git resolves (#2530) by @bolichen97 in #2553
  • fix: seed artifact companion composer on first open by @fanhongy in #2529
  • fix: detect kiro-cli API-key auth in the readiness probe by @jtoloui in #2527
  • fix(cli): match macOS framework Python in stop/restart gateway detection by @mnaameh in #2523
  • fix: self-heal dangling storageState in playwright config at load time (#2491) by @bolichen97 in #2522
  • feat: deep-link a notification by ts on the notifications page (#2018) by @bolichen97 in #2518
  • feat(ci): summarize filed issues, per-issue and in the ship report by @CrysisDeu in #2511
  • fix: match multi-word chat-history queries token-wise by @patrigao in #2508
  • test(subagent): drop the Windows-tick duration floor from the turn-duration test by @SebastianYuSun in #2505
  • fix(side): render the side panel through the shared chat transcript by @chenmingwei23 in #2503
  • fix(dashboard): stop a hung usage fetch parking the credit pill forever by @isotope14 in #2498
  • feat: stagger gateway startup after a recent loopstall crash dump by @rubencu in #2486
  • fix: audit safety-override renew fail-closed before commit (#2453) by @bolichen97 in #2484
  • fix: audit deactivate of an already-lapsed safety override grant (#2475) by @bolichen97 in #2483
  • fix: label the prune merged-scan as scanning and drop danger styling while it runs (#2451) by @bolichen97 in #2482
  • feat(knowledge): global budget, rate limit, source cap, and configurable extraction model by @iamwhatever in #2468
  • fix(cloud): keep EC2 UserData dist-check free of ${...} so !Sub accepts it by @iamwhatever in #2596
  • fix(preview): report a target that is this gateway instead of a blank frame by @kyleseaman in #2080
  • feat(webhooks): reach inbound webhooks from Settings, not the nav rail by @kyleseaman in #2056
  • fix(chat): keep link-preview favicons visible on every theme by @kyleseaman in #2593
  • fix(voice): keep the draining transcript after a manual dictation stop by @CrysisDeu in #2469
  • fix(markdown): stop CJK punctuation being swallowed into bare URLs by @CrysisDeu in #2171
  • docs(autosde): freeze the chat session row's line count by @CrysisDeu in #2512
  • ci: split Opus review into discovery and validation passes by @CrysisDeu in #2332
  • fix: surface the wedged thread's stack in doctor and boot replay by @rubencu in #2490
  • style: restore import order in dashboard token_auth (unblocks all PRs) by @chenmingwei23 in #2478
  • fix(security): check bash operands verb-independently in the normalizer by @iamwhatever in #2603
  • fix(ui): solid glass fallback when backdrop-filter is unsupported (#1817) by @bolichen97 in #2569
  • fix(terminal): stop scanning PTY output on the way to the browser by @buluoray in #2152
  • fix(test): make the reduced Windows scope green for frontend-only PRs...
Read more

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 04:59
e683282

Your AWS account gets a control room and your whole fleet gets one centrally published security policy. Chat grows up: sessions open as tabs, an idle sidebar folds itself away, and approvals can be answered in bulk or refused one call at a time. Dictation now works out of the box with no install, agents can seed and steer other agents' sessions, and a script-installed Kiro Crew updates itself atomically instead of asking you to re-run the installer.

Before you upgrade

Five changes can alter something you already configured. Everything else that changed is in the full 0.5.0 changelog.

  • Dictation providers consolidate into one local provider — the whisper, mlx, parakeet and faster providers are retired and a saved setting falls back to the new in-process local one, which downloads its own model on first use. The default model is base (148 MB); a stored turbo still resolves but pulls 1.6 GB. Run kirocrew doctor to see which stored defaults an earlier build materialized for you.
  • Snapshot-to-S3 is retiredkirocrew snapshot --to s3://…, --aws-profile and the s3:// fetch path are gone. Cloud backup moves to the AWS Control app; snapshots gain restore-into-live-state in exchange.
  • App execution trust is now bound to the code you consented to — a grant records the repository it covers, so an app whose name later resolves to different code is refused, and a legacy grant that cannot be tied to a repository asks for one-time re-consent.
  • Some commands that ran silently now ask first — looking like a help or version probe no longer counts as approval, and durable "always allow" grants no longer cover structured non-shell tools.
  • Knowledge moves into Agent Capabilities, and the standalone Auto-Triage Pipeline app is retired.

Your AWS account gets a control room

  • AWS Control — A new built-in app puts your AWS accounts on one surface: an Accounts page with a health light and reconnect guidance per account, and a per-account console with Library, Drive, Backup, Bill and Access views over a private, versioned, owner-only S3 bucket — consent-gated, with audited mutations.
  • A cloud drive you can browse — The drive is its own page: browse and create folders, delete a folder and everything under it, and see the share ledger alongside.
  • Restore a snapshot into live state — Replace or merge a snapshot into the running install, per component, with a rollback ledger to undo it.

One policy for the whole fleet

  • Centrally published security policy — An administrator can publish one security_policy.json at a URL and have every host fetch, cache and periodically refresh it. A policy change binds fleet-wide with no restart and no host visit; an unreachable source serves the cached copy, and a bad document is rejected rather than lowering the running ceiling.
  • Enterprise MCP governance — On an enterprise Kiro account with an admin-configured MCP registry, org-level MCP controls (including a version pin) now take effect. Personal accounts are unaffected.
  • A tamper-evident audit log under concurrency — Two Kiro Crew processes writing at once no longer break the audit chain's verification.

Dictation that just works

  • No-install local dictation — One whisper.cpp model stays resident in the gateway: a short utterance transcribes in tens of milliseconds, live text appears as you speak, and a session keeps transcribing across pauses.

  • Silence stays silent — A filter drops the model's silence hallucinations and caption boilerplate instead of turning them into notes.

  • Settings apply without leaving the panel — Speech settings that need a gateway restart now offer the restart button inline.

  • Watch words settle — While you dictate, in-flight words fade in as they stabilize and flash when a revision changes them, so you can see the transcription firm up; the panel never mounts under reduced-motion.

Sessions become tabs

  • Session tabs — Keep several sessions open as tabs above the transcript: middle-click or modifier-click a sidebar row to open one, each tab shows live status, and the set persists per surface.

  • Dormant sessions fold away — Sessions idle past a threshold you choose collapse behind a "Dormant sessions (N)" expander per folder; pinned, running and unread rows always stay visible.

  • Deep-linkable settings — Settings pages live at real URLs like /settings/display/session-colors, so any screen can be bookmarked and shared.

  • A project folder shows its files — Project tabs gain a full expandable file tree with search and refresh, opening files in de-duplicated tabs with find and save chords that act on the tab you can see.

  • Wide notes — A markdown note can be lifted out of the reading column to full width, and the choice is remembered per device.

  • Ephemeral chats from the + New menu — The create menu gains an Ephemeral submenu: Incognito (reads memory, writes none) and Temporary (neither) sessions, one tap from the sidebar.

  • Agents can color their sessions — An agent's session_color tints every session it starts that has no color of its own, applied at render time so editing the agent re-tints them live; a manual pick always wins.

Approvals you can steer

  • Approve or reject everything at once — When several tool calls wait on you, one click answers all of them, and the confirmation lists every command it covers — not just the newest.

  • Reject once — Refuse a single tool call and still get asked about the rest, instead of rejecting the whole batch.

  • Commands you can read — A long shell call with no stated purpose shows a short readable digest of what it does; the verbatim command stays one hover away.

  • Approvals in the CLIkirocrew chat now shows tool permission prompts and lets you answer them, so a turn no longer hangs silently until it times out.

  • The approval bar teaches the modes — It now points at the approval-mode picker, so Reads, Trust and YOLO are discoverable instead of confirming every step forever.

  • Name-grants verify identity on every surface — An "always allow" for a shell command now checks, on every auto-approve path including headless runs, that each program name still resolves to the program it named; a shadowed or agent-writable resolution falls back to the prompt — or to the headless deny — instead of inheriting the grant.

  • Trusted Slack botsslack.trusted_bot_ids lets named bots through the bot filter for multi-gateway meshes, with a per-thread turn limit so two trusting gateways cannot answer each other forever.

Agents that drive other agents

  • Seed and steer peer sessionssession_send delivers a message into another session as its next turn, so a coordinator can direct peers instead of only opening, reading or stopping them.
  • A conductor for goals too big for one session — The built-in conductor agent decomposes a goal, stands up a session per work item, checks acceptance, and decides each next round — patrolling on a monitoring loop that survives tab closes and turn caps.
  • A durable workflow library — Promote a session's workflow into a global library, manage revisions and lineage from Agent Capabilities, and invoke saved definitions with /workflow; task-runner plans share the same library.
  • Watches that wake on change — A babysat pull request wakes its watcher on human comments, reviews and verdicts — not just check results — and the new interrupt controller turns polling monitors into wake-on-change interrupts for any script cron.
  • Auditable fan-outs — Wave digests name the model that actually served each member, the live panel flags a downgraded model while the run is still going, and a finished subagent's results survive a gateway restart.

Update itself, anywhere

  • Atomic self-updatekirocrew update installs the new version into a fresh, signature-verified tree and switches to it atomically, so a script-installed Kiro Crew updates itself.
  • Windows updates install in place — "Restart & Update" shows installer progress and relaunches the new build instead of nesting a copy and reopening the old one; kept Start Menu and Desktop shortcuts are repointed, and installs are much faster.
  • An honest About page — Settings › About shows when the last update check ran and when the next is due, reports your real OS and architecture, and the post-upgrade "What's new" modal shows the notes for the version you are actually running.
  • No more downgrade nags — Running ahead of your channel's published release no longer produces an older-build update offer, and a hotfix published on an old release line can never move a channel's update feed backward.

Secrets leave more files

  • kirocrew secrets import — Move plaintext credentials out of .env into the encrypted vault, leaving a secret:// reference behind; dry-run by default, --apply to commit.
  • Redaction happens before truncation — Credentials near a truncation boundary are redacted before the text is cut, so partial secrets stop leaking into audit rows, logs and dashboard payloads; hook output is redacted too.
  • Owner-only from the first byte — Windows config.json writes are locked to your account (over a thousand times faster than before), and secrets written during pod setup and snapshot restore are locked down before publication.

Phones and touch

  • One-click phone access — A single "Set up & show QR" action enables trust, restarts the gateway, publishes over Tailscale, and hands you a sign-in QR code — and a phone session now survives gateway restarts and updates instead of needing a fresh scan.
  • A sign-in link for a phone that lost its session — A signed-in device can mint a one-time link; the CLI recovery path remains when nothing else is signed in.
  • Video in the composer — Attach videos u...
Read more

v0.5.0-insider.11

v0.5.0-insider.11 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Sep 03:56
e683282

What's Changed

  • fix(release): backport the feed-advance guard to release/0.5.0 by @bolichen97 in #8602
  • chore(desktop): sync the electron lockfile version to 0.5.0 by @bolichen97 in #8605

Full Changelog: v0.5.0-insider.10...v0.5.0-insider.11

v0.5.0-insider.10

v0.5.0-insider.10 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Sep 01:18
a027d85

What's Changed

  • ci(release): add opt-in stable-rebuild lane so v0.5.0 ships a clean 0.5.0 stamp by @bolichen97 in #8568

Full Changelog: v0.5.0-insider.9...v0.5.0-insider.10

v0.5.0-insider.9

v0.5.0-insider.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 21:13
41ef555

What's Changed

  • fix(voice): quote the codesign team id, and say a retired STT provider once (#7331) by @bolichen97 in #7682

Full Changelog: v0.5.0-insider.8...v0.5.0-insider.9

v0.5.0-insider.8

v0.5.0-insider.8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Sep 07:44
55190df

What's Changed

Full Changelog: v0.5.0-insider.7...v0.5.0-insider.8

v0.5.0-insider.7

v0.5.0-insider.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Aug 00:42

v0.5.0-insider.6

v0.5.0-insider.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Aug 21:54

v0.5.0-insider.5

v0.5.0-insider.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Aug 09:53

What's Changed

  • docs(changelog): backport the 0.5.0 and 0.4.1 sections to main by @bolichen97 in #6742
  • fix(chat): verify the optimizer write-back landed instead of trusting execCommand by @leonlaiyc in #6696
  • ci: hand three more branches to a human when Actions may not open the PR by @leonlaiyc in #6709
  • fix(cron): require a JSON object where the handlers read fields off one by @leonlaiyc in #6730
  • fix(auto-improvement): honor stop during standalone calibration by @RohanK6 in #6714
  • test(dev-fleet): match the prune-shutdown fakes to the current remove signature by @RohanK6 in #6747
  • fix: warn when an agent-discovery scan parses zero of N candidate specs (#6727) by @CrysisDeu in #6749
  • feat(connections): make Disconnect revoke the local grant by @pepmach in #5899
  • fix(whatsapp): zero the JID proto's required fields so it serializes (#6756) by @CrysisDeu in #6762
  • fix(dev-fleet): stop flagging the whole fleet legacy on a duplicate upstream remote alias by @chenmingwei23 in #6770
  • test(e2e): stop clickSegment racing SegmentedControl's async mode by @RohanK6 in #6767
  • fix(chat): stop composer status bars covering the rename editor by @rnoack1 in #6779
  • refactor(prepare-pr): collapse resolve_profile tree readers behind TreeReader by @piyushrajyadav in #6729
  • fix(artifacts): share the store lock across instances on the same root by @adiarora06 in #3824
  • fix(meetings): map Windows/CLDR TZID names to IANA in the .ics parser (#5556) by @psantus in #5557
  • feat: pinnable browser live-view port via dashboard.browser_view_port (#6655) by @chenmingwei23 in #6679
  • fix(pod): give the gateway --no-tunnel and have a pod boot with it by @chenmingwei23 in #6580
  • feat(issue-radar): host the auto-triage pipeline as a per-repository dashboard by @chenmingwei23 in #6672
  • fix(agents): route remaining kirocrew.json reads through the hardened spec reader (#6736) by @chenmingwei23 in #6745
  • feat(dev-fleet): manual prune reaps closed-PR worktrees, reaper stays merged-only by @chenmingwei23 in #6776
  • fix: skip a history save whose session was permanently deleted under lock by @chenmingwei23 in #6707
  • fix(channels): render NewChannelDialog through the shared Modal by @chenmingwei23 in #6796
  • fix: preserve yolo duration across slot updates by @Pearcekieser in #6806
  • fix(dashboard): send an owner socket one slots frame, not two by @rnoack1 in #6795
  • fix(appstore): report the installed version on an app's detail page by @buluoray in #6836
  • fix(website): stop global chords at the shared Modal panel (#6800) by @bolichen97 in #6832
  • fix(acp): say which directories a failed spawn actually searched by @leonlaiyc in #5048
  • fix(chat): code every fork refusal, without making the three 404s tell apart by @leonlaiyc in #6195
  • chore(cli): remove confirmed dead code in the CLI surface by @iamwhatever in #6840
  • refactor(session): drop hasattr provider liveness probes by @DeryFerd in #6791
  • chore(mcp): remove confirmed dead code in the MCP subsystem by @iamwhatever in #6843
  • chore(cloud): remove confirmed dead code in the ops surface by @iamwhatever in #6842
  • feat: serve an installed app's store art from its own install directory by @buluoray in #6794
  • fix(packaging): retry electron-builder on a retryable HTTP status, not just an errno by @rnoack1 in #6841
  • fix(stt): type-check the config PUT's model and provider before the lookup by @leonlaiyc in #5993
  • fix(schedule): show WHICH day a cron fires, not just the hour by @rnoack1 in #6803
  • fix(chat): cancel QueueStack's fuse overhang in the status scroll box by @rnoack1 in #6790
  • test(browser): make relay cap fixture concurrent by @bolichen97 in #6846
  • test(sel): stabilize cross-process lock tests by @bolichen97 in #6855
  • perf(sidebar): memoize session rows and scope their store subscriptions by @CrysisDeu in #6703
  • fix(members): render the presence dot only while a member is working by @CrysisDeu in #6859
  • fix(subagent): bound cancellation drain for diagnostics writes by @dwu96 in #6306
  • fix(chat): stop a bounded switch refetch shrinking a painted transcript by @rnoack1 in #6839
  • fix(settings): update model and effort selectors optimistically by @jeeshofone in #6851
  • fix(chat): remove follow-up options only from generated suffix by @aniruddhaadak80 in #6092
  • docs: render artifact as 产物 in zh-CN instead of 工件 by @CrysisDeu in #6661
  • feat: move Knowledge into Agent Capabilities as a grouped tab by @CrysisDeu in #6687
  • fix(members): order the roster by the newest message, not file mtime by @CrysisDeu in #6862
  • perf(chat): structurally share turn grouping and index tool-row lookups by @CrysisDeu in #6724
  • perf(dashboard): coalesce chat_thinking dispatches to one per frame by @CrysisDeu in #6666
  • fix(autonudge): report a stop lookup miss instead of a false success by @rnoack1 in #6799
  • refactor(connections): move the disconnect ownership oracle out of the handler (#6188) by @CrysisDeu in #6778
  • fix(apps): fall back to local art when registry icon fails (#6804) by @bolichen97 in #6865
  • fix(agents): harden the two remaining raw agent-spec reads (#6726) by @bolichen97 in #6734
  • refactor(agents): route agent-spec reads through the hardened reader by @bolichen97 in #6725
  • fix(sel): open legacy lock keys in binary mode by @bolichen97 in #6849
  • fix(update): stop claiming a channel the running bytes never came from by @bolichen97 in #6810
  • fix(connections): reword disconnect feedback, drop slug echo (#6680) by @bolichen97 in #6784
  • fix: wire claude seam per-turn cost and token counts into TurnUsage by @bolichen97 in #6757
  • ci: commit the review CLI manifest and lockfile by @iamwhatever in #6867
  • feat: offer an agent hand-off when a remote crew will not connect by @buluoray in #6642
  • chore(channels): remove confirmed dead code in the messaging channels by @iamwhatever in #6876
  • fix(mcp): ask_question is non-blocking — correct every description that says otherwise by @iamwhatever in #6835
  • fix(dashboard): compose the stalled subagent row as one translated sentence by @adiarora06 in #4020
  • fix(dashboard): drop a slot's buffered stream text on slot_clear by @buluoray in #6881
  • chore(memory): remove confirmed dead code in the memory and skills surface by @iamwhatever in #6878
  • fix(members): mount the detail drawer with the chat side panel's motion by @CrysisDeu in #6882
  • docs: RFC and spec for a Crew agent SDK boundary isolating ACP by @iamwhatever in #6662
  • feat(ci): credit the reporters of issues that merged PRs closed by @iamwhatever in #6824
  • docs(system-specs): reconcile five feature specs and the channels module by @iamwhatever in #6826
  • chore(core): remove confirmed dead code in the core runtime by @iamwhatever in #6880
  • fix: per-path optimistic overlay for settings model pickers (#6875) by @CrysisDeu in #6884
  • fix: drain member thread unread flag so the crew members badge clears by @CrysisDeu in https://...
Read more

v0.5.0-insider.3

v0.5.0-insider.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Aug 08:02
0e9465f

What's Changed

  • refactor: extract shared hardened gh runner for all gh spawn paths (#342) by @bolichen97 in #2407
  • feat(security): operator keystone extension for OAuth consent-endpoint allowlist (#1341) by @bolichen97 in #2402
  • fix: redact model-authored tool titles on all deny surfaces (#2274) by @bolichen97 in #2389
  • feat(chat): message-level pinning with pinned messages panel by @RohanK6 in #1676
  • ci(review): expand Opus to correctness blocking + sync fork prompt by @iamwhatever in #2379
  • feat(mcp-pool): Toggle all switch for poolable MCP servers by @chenmingwei23 in #2433
  • fix(knowledge): make the three auto-ingest paths opt-in by @bolichen97 in #2448
  • fix(dev-fleet): report slow actions as indeterminate, not as a fake percentage by @chenmingwei23 in #2439
  • test(dashboard): make chat-pins transient-I/O test portable on Windows by @iamwhatever in #2454
  • feat(voice): add a push-to-talk key for voice input by @CrysisDeu in #1608
  • feat(watchdog): detect a stalled turn from outside the turn's read loop by @chenmingwei23 in #2466
  • feat: receive images, voice and files on the Weixin channel by @chenmingwei23 in #2444
  • fix(dev-fleet): refuse the sync when pip cannot reinstall into the live venv by @chenmingwei23 in #2445
  • fix(prepare-pr): re-mirror the local review gate onto the current CI contract by @iamwhatever in #2456
  • feat(voice): show info banner + mic-click modal on remote instances by @cixuuz in #2471
  • refactor: centralize title hydration by @JoernZheng in #2467
  • fix(test_wait_tool_early_end): scope the wait-tool fake clock to the wait loop thread by @tlobinger in #2460
  • fix(terminal): complete subcommands for tools the user installed by @dwu96 in #2429
  • feat: first-party fixed-argv carve-out in sandbox fail-close (#1563) by @bolichen97 in #2428
  • feat: verify internal-API session claims via unix-socket peer creds (#302) by @bolichen97 in #2424
  • fix: re-vet cron jobs at fire time; move SEL key to trust/ (#1881) by @bolichen97 in #2421
  • build: target Node 24 LTS with a single 22+ floor everywhere (#1070) by @bolichen97 in #2415
  • feat: pin tunnel sessions to daemon-verified tailnet peer (#1762) by @bolichen97 in #2411
  • fix(appstore): compute app trust fields server-side (#580) by @bolichen97 in #2408
  • fix: detect and audit tier downgrades in nested-sandbox passthrough (#691) by @bolichen97 in #2406
  • fix: per-root hardlink-scan budgets with loud truncation (#646) by @bolichen97 in #2387
  • fix: make revocation generation cover refresh tokens (#2028) by @bolichen97 in #2388
  • ci: gate vendored _vendor tree behind a sha256 manifest (#492) by @bolichen97 in #2392
  • fix(dashboard): restore isort-clean import order in the dashboard auth module by @iamwhatever in #2479
  • feat(instances): carry the kiro-cli context so a sent session resumes by @iamwhatever in #2260
  • revert: withdraw multi-account Telegram until a bot is governable (#2203) by @chenmingwei23 in #2476
  • docs(autosde): forbid new work on the gateway boot path by @CrysisDeu in #2472
  • docs: revise perpetual-agent RFC after a first-principles re-read by @CrysisDeu in #2506
  • fix: restore leading slash on git-mangled diff header paths (#2493) by @bolichen97 in #2517
  • fix: attach clipboard images despite text/html and synthesize filenames (#2489) by @bolichen97 in #2520
  • test(acp): stop the leaked stderr-drain task from mocked _spawn tests by @SebastianYuSun in #2509
  • test(website): cover six app surfaces that had no tests at all by @CrysisDeu in #2514
  • feat(cloud): durable launch jobs + owner-only API for EC2 crew setup by @iamwhatever in #2059
  • feat(browser): make the built-in browser the default for chat by @iamwhatever in #2082
  • fix: reject unknown tag ids on board columns instead of silent drop (#1897) by @bolichen97 in #2568
  • fix: surface permanent turn-failure reasons in Telegram replies (#1831) by @bolichen97 in #2565
  • refactor(i18n): run the unit-literal scan as a gate, not a vitest test by @k33bz in #2562
  • fix(chat): drop the sessions sidebar's pinned Split View button by @chenmingwei23 in #2557
  • fix(dev-fleet): actionable error when no trusted git resolves (#2530) by @bolichen97 in #2553
  • fix: seed artifact companion composer on first open by @fanhongy in #2529
  • fix: detect kiro-cli API-key auth in the readiness probe by @jtoloui in #2527
  • fix(cli): match macOS framework Python in stop/restart gateway detection by @mnaameh in #2523
  • fix: self-heal dangling storageState in playwright config at load time (#2491) by @bolichen97 in #2522
  • feat: deep-link a notification by ts on the notifications page (#2018) by @bolichen97 in #2518
  • feat(ci): summarize filed issues, per-issue and in the ship report by @CrysisDeu in #2511
  • fix: match multi-word chat-history queries token-wise by @patrigao in #2508
  • test(subagent): drop the Windows-tick duration floor from the turn-duration test by @SebastianYuSun in #2505
  • fix(side): render the side panel through the shared chat transcript by @chenmingwei23 in #2503
  • fix(dashboard): stop a hung usage fetch parking the credit pill forever by @isotope14 in #2498
  • feat: stagger gateway startup after a recent loopstall crash dump by @rubencu in #2486
  • fix: audit safety-override renew fail-closed before commit (#2453) by @bolichen97 in #2484
  • fix: audit deactivate of an already-lapsed safety override grant (#2475) by @bolichen97 in #2483
  • fix: label the prune merged-scan as scanning and drop danger styling while it runs (#2451) by @bolichen97 in #2482
  • feat(knowledge): global budget, rate limit, source cap, and configurable extraction model by @iamwhatever in #2468
  • fix(cloud): keep EC2 UserData dist-check free of ${...} so !Sub accepts it by @iamwhatever in #2596
  • fix(preview): report a target that is this gateway instead of a blank frame by @kyleseaman in #2080
  • feat(webhooks): reach inbound webhooks from Settings, not the nav rail by @kyleseaman in #2056
  • fix(chat): keep link-preview favicons visible on every theme by @kyleseaman in #2593
  • fix(voice): keep the draining transcript after a manual dictation stop by @CrysisDeu in #2469
  • fix(markdown): stop CJK punctuation being swallowed into bare URLs by @CrysisDeu in #2171
  • docs(autosde): freeze the chat session row's line count by @CrysisDeu in #2512
  • ci: split Opus review into discovery and validation passes by @CrysisDeu in #2332
  • fix: surface the wedged thread's stack in doctor and boot replay by @rubencu in #2490
  • style: restore import order in dashboard token_auth (unblocks all PRs) by @chenmingwei23 in #2478
  • fix(security): check bash operands verb-independently in the normalizer by @iamwhatever in #2603
  • fix(ui): solid glass fallback when backdrop-filter is unsupported (#1817) by @bolichen97 in #2569
  • fix(terminal): stop scanning PTY output on the way to the browser by @buluoray in #2152
  • fix(test): make the reduced Windows scope green for frontend-only PRs...
Read more