Skip to content

fix: double terminal prompt + StageStrip state management#45

Open
felixflores wants to merge 4 commits into
mainfrom
feat/tmux-fix-and-state-mgmt
Open

fix: double terminal prompt + StageStrip state management#45
felixflores wants to merge 4 commits into
mainfrom
feat/tmux-fix-and-state-mgmt

Conversation

@felixflores

Copy link
Copy Markdown
Contributor

Summary

  • Fix double terminal prompt on new sessions by adding fresh_session flag to KuboExecBackend that skips scrollback restoration for newly created sessions
  • Refactor StageStrip from StatefulWidget to ConsumerStatefulWidget watching Riverpod providers directly, fixing stale UI after abot dismiss
  • Reduce FacetShell's StageStrip construction from ~60 lines to ~18

Test plan

  • Create new session — verify single prompt appears
  • Reconnect to existing session — verify scrollback is preserved
  • Dismiss abot from Kubos tab — verify StageStrip updates immediately
  • 91 Rust tests pass, clippy clean, dart analyze clean, WASM build succeeds

- Add fresh_session flag to KuboExecBackend to skip capture-pane
  for newly created tmux sessions (prevents duplicate prompt)
- Convert StageStrip from StatefulWidget to ConsumerStatefulWidget
- Replace 19 prop-drilled parameters with direct provider watches
- Sidebar tab state now single-sourced from sidebarProvider
- Variant actions (dismiss/integrate/discard) call providers directly
- Add regression test for pre_populate + push duplicate scenario
StageStrip now owns its own dialogs, provider mutations, and file
picker calls internally. FacetShell's StageStrip construction drops
from 18 lines to 4 (cardKeys + onScroll + onToggleCollapse).

Actions moved: focusFacet, openSession, deleteSession, addAbotToKubo,
createAbotSession, createNewKubo, openBundle, openBundleInKubo,
openKuboFromDisk, removeAbotFromKubo, and the shared name dialog.

FacetShell retains landing-page actions (used by KuboLandingPage and
EmptyStateLandingPage) plus CSS-transform logic that only it can do.
- Add --host CLI flag for external hostname (WebAuthn RP origin)
- Allow setup tokens for first passkey registration (remote)
- Unwrap publicKey wrapper from webauthn-rs options for simplewebauthn
- Use connect_with_local_defaults() for Docker (Colima compatibility)
- Remove unused cred_count in register_options
- Delete browse.rs (native OS file/directory pickers)
- Delete file_browser_dialog.dart (unused custom browser)
- Remove /sessions/open, /kubos/open endpoints
- Remove /api/browse, /api/pick-* endpoints
- Remove config dir picker routes (/api/config/bundle-dir, kubos-dir)
- Add download endpoints: GET /kubos/:name/download, /abots/:name/download
- Add download button to kubo action bar in sidebar
- Simplify settings panel (remove dir picker UI)
- Simplify landing pages (remove "Open from disk" buttons)
- Replace Save As native picker with name input dialog
- Add flate2 + tempfile deps, tests for download module
- Fix Docker socket test to skip when unavailable
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.

2 participants