Skip to content

test: colocate session popup input tests - #102

Merged
zatevakhin merged 2 commits into
refactor/componentsfrom
refactor/phase10-session-popup-tests
Aug 30, 2026
Merged

test: colocate session popup input tests#102
zatevakhin merged 2 commits into
refactor/componentsfrom
refactor/phase10-session-popup-tests

Conversation

@zatevakhin

Copy link
Copy Markdown
Collaborator

Scope

This publishes the corrected, independently approved two-commit Phase 10 Session Select popup test-placement range on exact base refactor/components@22e12dcde17812a02465cdc3fbb09759e738644b:

  • 6334afe5e3d408fadb555d5991e1fce81f094c5atest: colocate session popup input tests
  • ccff072aadb29835b284382311b2de6a203596a7test: preserve session popup toggle routing

The aggregate changes only src/features/sessions/input/popup.rs and src/runtime/mod.rs (+318/-239). It moves pure movement, filtering, group-collapse, delete-no-op, and typed popup-result coverage to the owner while retaining root adapter/routing/effect coverage in runtime. There are no production, seam, command/effect, routing, dependency, workflow, or user-visible behavior changes.

Boundary and metrics

  • Owner popup tests: 6 -> 10, with zero App::new() fixtures.
  • Runtime Session popup tests: 39 -> 29.
  • Runtime popup App::new() fixtures: 39 -> 29.
  • Full suite: 1,176 -> 1,170.
  • Root coverage remains for RenderState-derived page steps; ToggledGroup; local, known-remote, and missing-remote OpenSession; local Delete and remote Dismiss; Ctrl-O request/collapse; Load More command construction; popup close; disconnected Ctrl-N; delegate-tab and Tab/BackTab routing; global chords; and New Session behavior.

Review correction

The initial Linus review found that ordinary Enter-on-header ToggledGroup adaptation was no longer covered at the root. The separate second commit restores popup_header_toggle_routes_through_root_adapter, covering collapse/expand, exact empty effects, popup retention, cursor clamping, and separation from start-page collapse state. Corrected aggregate Linus re-review is Approved with no findings.

Validation

Publication gates pass at exact head ccff072aadb29835b284382311b2de6a203596a7:

  • cargo fmt --all -- --check
  • cargo check --all-targets --all-features
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo build --all-targets --all-features
  • all-target/all-feature debug and release suites: 1,170/1,170, zero failed/ignored
  • default suite: 1,170/1,170
  • focused owner 10/10, runtime Session popup 29/29, handlers 49/49, application 62/62
  • aggregate scope, git diff --check, and protected-path audits

REFACTOR.md remains ignored/local-only and is excluded from this PR. AGENTS.md, CLAUDE.md, and stuff/ are untouched and excluded. Live ACP/backend and interactive terminal UI smoke remain unavailable and are not claimed.

The bounded New Session owner test-placement slice is explicitly out of scope and has not started.

@coderabbitai

coderabbitai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: dea16552-69eb-4d03-adc2-c3237aef43e6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@zatevakhin
zatevakhin merged commit 2c48d23 into refactor/components Aug 30, 2026
4 checks passed
zatevakhin added a commit that referenced this pull request Sep 1, 2026
* test: colocate session popup input tests

* test: preserve session popup toggle routing
zatevakhin added a commit that referenced this pull request Sep 5, 2026
* refactor: introduce application runtime crate

* refactor: split runtime lifecycle modules

* test: colocate runtime module coverage

* refactor: route legacy tools through shared parser

* refactor: centralize tool detail behavior

* fix: keep tool detail parsing production-aligned

* test: retain UTF-8 replay coverage

* refactor: move legacy state helpers to app

* test: cover ACP replay edge cases

* fix: make ACP replay cards idempotent

* fix: dedupe terminal ACP thinking replays

* test: migrate phase 2 slice 4 response coverage

* test(ui): use native ACP fixtures

* refactor: remove legacy server message reducer

* test: restore native session state coverage

* fix: discover nested session parents on load

* refactor: extract phase 3 domain types

* refactor: extract session domain types

* refactor: extract semantic tool details

* test: cover semantic tool detail regeneration

* refactor: complete semantic tool previews

* fix: keep tool detail parsing filesystem-free

* refactor: extract chat domain entries

* refactor: extract model and profile domain types

* refactor: remove model profile protocol bridges

* refactor: remove domain compatibility bridges

* refactor: extract auth domain core

* test: cover oauth auth-method command serialization

* refactor: separate session page wire types

* test: strengthen session page adapter coverage

* test: align session adapters with active ingress

* refactor: separate session mutation results

* fix: preserve rejected undo frontier

* refactor: separate oauth domain state

* fix: separate auth ui feedback

* test: tighten auth ui state coverage

* test: cover auth notice transitions

* test: cover auth ui notice resets

* refactor: introduce internal command seam

* fix: centralize session command mapping

* refactor: complete internal command bus migration

* fix: remove orphan pending command queue

* refactor: remove legacy protocol scaffolding

* fix: narrow legacy protocol cleanup

* refactor: separate mesh domain values

* fix: align remote session contracts

* fix: honor ACP session list contract

* refactor: separate delegation notification values

* refactor: split protocol contracts

* refactor: complete phase 3 acceptance cleanup

* refactor: extract diagnostics state

* refactor: extract auth state

* refactor: extract profiles state

* refactor: extract mesh state

* refactor: extract navigation state

* refactor: extract models state

* refactor: extract sessions state

* refactor: extract connection state

* refactor: extract composer state

* refactor: extract delegates state

* refactor: extract chat state owner

* refactor: extract render state

* refactor: centralize application effects

* fix: address application effect review

* fix: preserve phase 5 effect ordering

* fix: make effect scheduling fair

* fix: remove terminal event drain starvation

* refactor: split the ACP subsystem (#95)

* refactor: establish acp subsystem boundaries

* refactor: isolate acp jsonrpc transport contracts

* refactor: extract acp runtime and extensions

* refactor: route acp commands and transports

* test: close acp lifecycle contracts

* fix: preserve websocket prompt failures on teardown

* fix: satisfy websocket teardown lint

* fix: satisfy replay buffer clippy lint

* refactor: extract feature reducers (#96)

Squash-integrates the independently reviewed Phase 7 feature reducer extraction from refactor/feature-reducers.

* refactor: separate domain and rendering (#97)

Integrate the approved Phase 8 domain/rendering separation into refactor/components. Source validation and hosted CI are green; preserve the reviewed source branch for provenance.

* refactor: split input and UI by feature (#99)

Integrate the approved Phase 9 input and UI feature split into refactor/components. Source validation and hosted CI are green; preserve the reviewed source branch for provenance.

* test: harden persistence isolation (#100)

Integrate the independently approved Phase 10 persistence-safety baseline into refactor/components. The exact source is test-only, local and hosted validation are green, and the retained source branch preserves provenance.

* test: colocate start-page session input tests (#101)

* test: colocate start-page session input tests

* test: preserve session input adapter coverage

* test: colocate session popup input tests (#102)

* test: colocate session popup input tests

* test: preserve session popup toggle routing

* test: strengthen new session input contracts

Squash-integrates the independently approved corrected Phase 10 New Session test-contract range.

* test: colocate delegate input tests

Squash-integrates the independently approved Phase 10 Delegate input test-ownership slice after successful hosted CI.

* test: colocate delegate renderer tests

Moves seven Delegate-only Ratatui renderer contracts to the Delegate owner module while retaining root UI composition and cross-feature contracts.

* test: colocate elicitation and state tests (#106)

* test: colocate elicitation and state tests

* test: preserve state input edge contracts

* test: colocate chat renderer tests (#107)

* test: close ACP contract coverage (#108)

* test: close ACP contract coverage

* test: preserve exact ACP contract assertions

* refactor: complete architecture cleanup (#109)

* refactor: remove migration forwarding helpers

* refactor: remove temporary test re-exports

* refactor: enforce crate dead-code checks

* ci: enforce architecture boundaries

* docs: document module and event flow

* ci: close dead-code policy bypass

* ci: scan every crate inner attribute

* ci: remove architecture boundary check

* fix(tui): batch terminal events to reduce input lag

Replace cancellation-sensitive EventStream polling with a bounded terminal event queue and coalesce compatible input events between redraws.

Preserve scheduler fairness and rendering-dependent behavior by limiting batches by count and duration, deferring incompatible events, and pausing terminal input while the external editor is active.

* fix: address CodeRabbit security and correctness findings

Redact sensitive command data, harden Unicode and timestamp rendering, and clamp popup geometry for small terminals.

Make editor handoff and JSON-RPC requests failure-safe, preserve event ordering, and fix state, arithmetic, diagnostics, and protocol robustness issues.

* chore: flake.lock update

* fix(acp): keep long-running prompts correlated until completion

Exclude session/prompt from the generic WebSocket response timeout so terminal responses are not discarded after 60 seconds. Scope prom')pt failures by session, finalize failed turns, and ignore stale failures that could otherwise leave the UI stuck in streaming state.

* test(ui): add deterministic ratatui snapshot coverage

- add geometry-preserving buffer test helpers
- snapshot start, help, and diagnostics views
- replace crude text searches with cell and region assertions
- use fixed render state and log timings for deterministic tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant