fix: detect kiro status from live controls and osc signals - #4372
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe Kiro detection metadata now targets engine version 2 and release Suggested reviewers: Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to No concrete merge-blocking behavior issue remains in the Kiro detection manifest update. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
|
✅ Action performedReview finished.
|
|
6c7cc36 to
b1365ed
Compare
|
@coderabbitai review |
|
✅ Action performedReview finished.
|
|
@vinayshah1998 Thank you for the contribution! Could you add a few things such as
Thanks! |
Hey @JJLiebig thanks for giving this a look! Just added some more details for you, and some screenshots. Let me know if you'd like any more information |
JJLiebig
left a comment
There was a problem hiding this comment.
The Kiro detection update is accurate and well-scoped. It replaces broad whole_recent matching with bounded live regions, keys idle off the current prompt line, and requires the real approval option rows plus the live footer, so stale transcript text no longer overrides active controls. OSC title and progress give working detection a fallback when the footer/controls scroll away. Bundled and published manifests are byte-identical at 2026.09.19.1, min_engine_version = 2 is right for OSC, and all CI checks pass. The qualification matrix and before/after captures are thorough, and the remaining gaps (legacy V1 approval, native macOS/Windows) are disclosed. Approving.
|
Merging this now, @ogulcancelik when you rebase #3964, carry the new kiro detection content into vendor/agent-registry/agents/kiro/detection.toml + refresh lock.json, don't resolve by reverting it. Should be no issue for clankers but just making the note anyway. |
Merged upstream/master b88e811..2836010. Zero conflicts: all six overlapping files split into disjoint regions (mouse.rs navigator scrollbar/row-click work, state.rs navigator fields and close-tab confirmation, config/model.rs clear_pane keybinding, config-reference.json keys.clear_pane, AGENTS.md detection policy, tests/mod.rs mod close_tab). No src/protocol/wire.rs change, so no protocol conflict. Notable upstream fixes absorbed: - distinguish agent completion from startup and session changes (herdrdev#4457) - honor droid scrollback clear requests in panes (herdrdev#4432) - refresh forwarded ssh agents after reconnect (herdrdev#4443) - index navigator tabs and panes per endpoint (herdrdev#4426) - preserve session layouts across shutdown and restore failures (herdrdev#4400) - confirm closing the last tab in the tui (herdrdev#4409) - reject terminal-less attach before starting a session (herdrdev#4395) - drain event subscriptions and report history loss (herdrdev#4225) - preserve explicit worktree workspace membership (herdrdev#4301) - keep workspace navigation visible in terminal theme (herdrdev#4408) - preserve delayed mouse reports with confirmed keyboard input (herdrdev#4247) - detect codex status with custom interrupt keys (herdrdev#4196) - detect kiro status from live controls and osc signals (herdrdev#4372) - recover the cursor during animated redraws (herdrdev#4404) - stabilize windows cursor redraws and settle deadlines (herdrdev#4389) - show every agent and terminal in the go to picker (herdrdev#4384) - add configurable pane screen and scrollback clearing (herdrdev#4383) - reveal selected agent when cycling the sidebar (herdrdev#4355) - preserve request ids in socket error responses (herdrdev#4353) - enable ssh compression for remote connections (herdrdev#4340) - correct grok activity detection with custom or disabled osc signals (herdrdev#4337) - preserve windows mouse capture during refresh (herdrdev#4319)
Summary
Kiro panes should show working while a turn runs, blocked while an answer or approval is needed, and idle at the prompt. This PR updates the detection rules so old transcript text does not override those current controls.
Approval menus match their selected options and current footer instead of a heading that long tool details can push out of view. The rules cover clipped footers, trust menus, and request editing. Long feedback uses a complete editor-frame match anchored at the end of the detection buffer, so a closed editor cannot leave the pane blocked.
The bundled manifest and catalog copy are identical, at version
2026.09.19.1with minimum engine version2. No Rust, protocol, permission-policy, hook-installation, or session-restore changes.Before and after
Before the approval fix, a real V3 multiline approval could read idle. The same pending approval reads blocked with the current rules. In this comparison, "before" is the previous PR rule, not the stock released manifest.
Long feedback also stays blocked. This editor's detection-buffer text was unchanged across the manifest hot reload.
Current qualification matrix
Tests used Herdr
0.9.0on Linux aarch64 and Kiro CLI2.22.2-nightly.4with an OSC-capable TUI build. The final manifest was checked against captured inputs and through live hot reload. V3 is the primary target.Live means a real Kiro backend and UI. Controlled means mocked ACP events in the real TUI, or explicit VT input through Herdr's parser. Those checks do not claim a live backend failure.
Validation
just ci 'test(detect::)'passed: formatting, all-target Clippy/compilation, 96 detection tests, maintenance, architecture, and integration-asset checks.Full local
just cistopped on the unchanged Linux ACL fixture for UID 65534, which this sandbox does not map. It reported 2,537 passes before that failure and fail-fast cancellation. The full local gate is not claimed green; no test or CI policy was weakened.Supporting screenshots
These are captured terminal frames rendered to PNG, not desktop photographs. Captions and recorded-API annotations sit outside the terminal content. Local metadata is redacted. The test sessions used isolated config/state and were removed afterward.
Narrow V3 approval and trust menus
V3 question, crew, and historical-text checks
V3 working and cancellation
Controlled signal and priority checks
refs #4203