Skip to content

feat(ui): SPEC-V0-3-0-PANE-WIRE-001 MS-1 — pane action handlers wire (ClosePane / FocusNext/Prev carry from Sprint 1)#108

Merged
GoosLab merged 1 commit into
mainfrom
feature/SPEC-V0-3-0-PANE-WIRE-001
May 5, 2026
Merged

feat(ui): SPEC-V0-3-0-PANE-WIRE-001 MS-1 — pane action handlers wire (ClosePane / FocusNext/Prev carry from Sprint 1)#108
GoosLab merged 1 commit into
mainfrom
feature/SPEC-V0-3-0-PANE-WIRE-001

Conversation

@GoosLab
Copy link
Copy Markdown
Collaborator

@GoosLab GoosLab commented May 5, 2026

Summary

v0.3.0 Sprint 2 #5 — carry chain 종결. Sprint 1 의 MENU-WIRE-001 #100 이 5 stub 을 follow-up 으로 carry 한 뒤 #107 (Surface×3) 가 처리했고, 본 PR 이 마지막 묶음 인 Pane×3 (ClosePane / FocusNextPane / FocusPrevPane) 을 functional 로 변환한다.

  • lib.rs:2191~2199 의 3 info!("...deferred") stub → 실제 PaneTree 동작 호출
  • 신규 helper: close_focused_pane / focus_next_pane / focus_prev_pane (cx-bound, RootView)
  • 신규 cx-free helper: next_focus_in_leaves / prev_focus_in_leaves (wrap-around) + route_pane_command_to_kind (dispatch_command routing)
  • dispatch_command 의 pane.close / pane.focus_next / pane.focus_prev 분기 활성, 알 수 없는 pane.* 는 false 반환
  • palette/registry.rs 의 pane.close entry 는 이미 존재 (확인 후 추가 불필요)

Testing

  • 신규 unit tests +8 (T-PW 블록): wrap-around / single leaf / orphan fallback / unknown-id 검증
  • ui crate 1355 → 1363 PASS, 회귀 0 (additive only)
  • 3-gate: cargo fmt / cargo clippy -D warnings / cargo test --lib ALL PASS
  • LSP errors: 0

SPEC

  • .moai/specs/SPEC-V0-3-0-PANE-WIRE-001/spec.md (lightweight, 8 ACs, MS-1)
  • AC-PW-1~8 모두 PASS

Related

Test plan

🗿 MoAI email@mo.ai.kr

@GoosLab GoosLab enabled auto-merge (squash) May 5, 2026 00:58
…(ClosePane / FocusNext/Prev carry from Sprint 1) (AC-PW-1~8)

- ClosePane / FocusNextPane / FocusPrevPane on_action stubs → real helper calls
- close_focused_pane: calls PaneTree::close_pane + updates last_focused_pane to root_pane_id
- focus_next_pane / focus_prev_pane: in-order leaf rotation with wrap-around
- cx-free helpers: next_focus_in_leaves / prev_focus_in_leaves / route_pane_command_to_kind
- PaneCommand enum for dispatch routing (AC-PW-6)
- dispatch_command pane.* branch: 3 wired + 2 split passthrough + unknown → false
- palette/registry.rs: pane.close already present (no change)
- 8 new unit tests (T-PW block): 1355 → 1363 total, regression 0
- 3-gate: cargo fmt / clippy -D warnings / test all PASS

🗿 MoAI <email@mo.ai.kr>
@GoosLab GoosLab force-pushed the feature/SPEC-V0-3-0-PANE-WIRE-001 branch from 74c4310 to 20edf59 Compare May 5, 2026 02:32
@GoosLab GoosLab merged commit 809effc into main May 5, 2026
15 of 17 checks passed
@GoosLab GoosLab deleted the feature/SPEC-V0-3-0-PANE-WIRE-001 branch May 5, 2026 02:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant