feat(neo-tui): real port for app.suspend, app.session.new, scoped overlay routing#17
Merged
Merged
Conversation
…rlay routing Round 13 of the senpi --neo legacy-feature port lands three more pieces of the legacy action surface as real behavior and tightens the routing for actions that legitimately do nothing outside their parent overlay. - app.suspend (Ctrl+Z) now actually suspends the TUI via SIGTSTP. New AppAction::Suspend + TerminalEventOutcome::Suspend + run_suspend helper. The run loop tears down the TUI (raw mode off, alt screen off, bracketed paste off, Kitty flags popped) and shells out 'kill -TSTP $$' on Unix so the user lands at the shell prompt; 'fg' re-enters the TUI. Non-Unix platforms surface a chat error. - app.session.new now fires the real Command::NewSession instead of stubbing as unimplemented. New AppAction::NewSession + Command::NewSession. - Session / tree / models overlay-scoped actions (27 ids) get dedicated predicates (is_session_overlay_scoped_action, is_tree_overlay_scoped_action, is_models_overlay_scoped_action) and matching note_*_overlay_scoped_action helpers that name the parent overlay so the user understands the chord is scoped instead of getting a generic 'not yet wired' string. - ADVERTISED_BUT_UNIMPLEMENTED_ACTIONS shrunk from 30 entries to 1 (app.clipboard.pasteImage), the legitimate remaining gap. - Stripped narrative 'Round N / real port' comments per pi-comment-checker priority 4. Behaviour explained by tests, not by trailing comments. Extracted small note_and_dispatch helper (3 call sites) so execute_action stays under clippy's 100-line cap. Tests: 345 passing (was 341 after round 12). New: ctrl_z_app_suspend_ dispatches_real_suspend_action, app_session_new_fires_new_session_ command, session_overlay_scoped_actions_route_through_scoped_helper, tree_overlay_scoped_actions_route_through_scoped_helper, models_ overlay_scoped_actions_route_through_scoped_helper. Updated unimplemented_slash_command_visibly_notifies_user to target app.clipboard.pasteImage since app.session.new is real. cargo fmt --check, cargo clippy --package senpi-neo-tui --all-targets -- -D warnings, and npm run check (899 files) all green.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Round 13 of the
senpi --neolegacy-feature port. Landsapp.suspend,app.session.new, and scoped-overlay routing for 27 actions as real behavior. Strips narrative comments per pi-comment-checker priority 4.Concrete changes
app.suspend(Ctrl+Z) → real SIGTSTP. NewAppAction::Suspend+TerminalEventOutcome::Suspend+run_suspend. The run loop tears down the TUI and shells outkill -TSTP $$on Unix;fgre-enters with state intact. Non-Unix surfaces a chat error.app.session.new→ realCommand::NewSession. NewAppAction::NewSession+Command::NewSession { id }. Reuses the backend's existing session-create flow.note_session_overlay_scoped_action/note_tree_overlay_scoped_action/note_models_overlay_scoped_actioninstead of falling into the generic "not yet wired" string. The notes name the parent overlay.ADVERTISED_BUT_UNIMPLEMENTED_ACTIONSshrunk from 30 → 1 (onlyapp.clipboard.pasteImageremains).// Round N / real port:comments per pi-comment-checker priority 4. Extracted smallnote_and_dispatchhelper (3 call sites; not single-call-site) soexecute_actionstays under clippy's 100-line cap.Tests
345 passing (was 341 after Round 12). Five new tests cover suspend / new-session dispatch and the three scoped-overlay predicates:
ctrl_z_app_suspend_dispatches_real_suspend_actionapp_session_new_fires_new_session_commandsession_overlay_scoped_actions_route_through_scoped_helpertree_overlay_scoped_actions_route_through_scoped_helpermodels_overlay_scoped_actions_route_through_scoped_helperUpdated
unimplemented_slash_command_visibly_notifies_userto targetapp.clipboard.pasteImagesinceapp.session.newis real.Gates
cargo fmt --package senpi-neo-tui -- --check— greencargo clippy --package senpi-neo-tui --all-targets -- -D warnings— greencargo test --package senpi-neo-tui -j 1— 345 passednpm run check(899 files) — greenSummary by cubic
Adds real Ctrl+Z suspend, a working “new session,” and scoped overlay routing in
neo-tui, cutting unimplemented actions to one and improving user feedback.New Features
app.suspend) sends SIGTSTP; terminal restores afterfg. Non-Unix shows a chat error.app.session.newnow firesCommand::NewSession.Refactors
ADVERTISED_BUT_UNIMPLEMENTED_ACTIONSfrom 30 to 1 (app.clipboard.pasteImage).note_and_dispatchand removed narrative comments to keepexecute_actionlean.Written for commit 470247d. Summary will update on new commits. Review in cubic