Repository navigation
Document agent tabs design decisions in CLAUDE.md - #267
Closed
patrickdappollonio wants to merge 2 commits into
Closed
patrickdappollonio wants to merge 2 commits into
patrickdappollonio wants to merge 2 commits into
Conversation
…ry-bar newline key The web terminal now inserts a soft newline (LF / Ctrl-J) on Shift-Enter instead of submitting. xterm collapses Enter and Shift-Enter to CR before the data layer, so the two are intercepted at the key-event layer via attachCustomKeyEventHandler. The decision lives in pure, unit-tested termkeys.ts helpers (softNewline, softNewlineAction) and the component is a thin applicator: it cancels the key, owner-gates the write, replicates the scroll/clear side effects the early return skips, and consumes any armed Ctrl/Alt latch. The chord is left alone mid-IME-composition so a CJK confirm keystroke is never rewritten. Because a soft keyboard can't produce Shift-Enter, the mobile accessory bar gains a dedicated newline key. The bar is reorganized: modifier/special keys (incl. newline) on top, navigation (cursor arrows plus PgUp/PgDn) below, with a divider separating the focus-keeping arrows from the keyboard-dismissing page keys. Both newline entry points share one writeSoftNewline helper so their landing behavior can't drift. The TUI deliberately does not disambiguate Shift-Enter (it would require the Kitty keyboard protocol and would break verbatim PTY passthrough); Ctrl-J is the supported soft-newline key there. Documented in CLAUDE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Capture the load-bearing decisions for the upcoming agent-tabs feature as design tenets: tabs are provider sessions in one shared worktree, exactly one leftmost tab resumes, primary-vs-secondary close semantics, per-tab provider defaulting to the project provider, additive agent_tabs SQLite storage kept out of portable config, tab-id keyed runtime state, and how tabs honor the existing TUI and web UI tenets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Adds an Agent Tabs subsection to the CLAUDE.md design tenets (under "Agents and Providers"), capturing the locked design decisions for the upcoming agent-tabs feature so future work does not drift.
Documented decisions:
continueis directory-scoped. Singleresume_eligible_tabsource of truth;should_resume_sessiondelegates to it.ctrl+p(TUI) /⋯(web), effective next launch.agent_tabsSQLite table (backward compatible), never portable config; the primary has no row.providers, pins, resume-fallback, activity maps) keyed by tab id, with the primary tab id == session id.⋯-menu/destructive-confirm/touch-target/working-bob).Base is
server-mode(this is unreleased server-mode work). Docs-only; no code changes. The full design spec, implementation plan, and an interactive HTML mockup live underdocs/superpowers/(gitignored) alongside this.🤖 Generated with Claude Code