Commit Graph

17 Commits

Author SHA1 Message Date
Yunfei He cf5bf78d13 chore: remove force-added planning docs from branch
These are local design artifacts under .gitignore, not release content.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He cf62e97793 docs: document accepted limitations in kitty keyboard plan
Dual-listener race and useInput-only Ctrl+C scope match Ink's design.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He df8d74a91e docs: fix kitty Ctrl+C exit handling in plan
- useInput now calls app.exit() for kitty Ctrl+C when exitOnCtrlC=true
- Add PTY test and fixture branch for kittyCtrlCExit scenario

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 95b14d4b48 docs: fix PTY test build ordering in kitty keyboard plan
Build runtime before running PTY tests — fixtures resolve through dist/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 3412f9acce docs: tighten queryThenKey fixture to assert input="a"
Prevents false pass if query response leaks to handler.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 463161d97c docs: remove unused Text import from kitty plan lifecycle test
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 19e852b133 docs: address Codex review feedback on kitty keyboard plan
- Fix lifecycle test imports to use @vue-tui/runtime/internal
- Add internal.ts exports for kitty-keyboard functions (Task 3.6b)
- Fix capslock-empty fixture to not check key.capsLock modifier flag
- Add render-level mount/unmount integration tests (createApp path)
- Add query response suppression PTY test with queryThenKey fixture

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 7bf7263040 docs: add kitty keyboard implementation plan
10 tasks covering: kitty-keyboard.ts module, parse-keypress filter,
useInput Key extension, render.ts wiring, ~96 tests across 3 files.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 31e3d0b333 docs: final spec fixes from Codex round 7
- Note uppercase test uses Ink's codepoint-65 form (terminal variant)
- Specify ignore?: boolean on Keypress type
- Update late-response description to use ignore flag path

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 7fb1a9fee5 docs: fix query response handler leak and race documentation
- Add ignore flag to parseKeypress return + useInput early-return check
- Remove contradictory "exactly once" delivery claim
- Honestly document dual-delivery race as accepted behavior (matches Ink)
- Replace end-to-end delivery test with query response suppression test

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 76d23bc494 docs: add query response filter to kitty keyboard spec
Filter \x1b[?<digits>u in parseKeypress to swallow terminal capability
responses that leak to useInput via late-response or dual-listener race.
Add 2 unit tests for the filter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 410dc21809 docs: clarify raw mode ownership in kitty keyboard spec
Controller does not acquire/release raw mode — matches Ink's approach.
Detection may time out in cooked mode; auto mode degrades gracefully.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 3d6a754092 docs: address Codex round 3 feedback on kitty keyboard spec
- Fix test file paths to match co-located convention (src/io/, not tests/io/)
- Remove contradictory "no conflict" wording before race condition note
- Fix late-response test description: bytes flow to input (harmless), not "discarded"

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 86730496a4 docs: address Codex round 2 feedback on kitty keyboard spec
- Fix "full" / "Complete" wording to scope parser support accurately
- Clarify partial query response definition (needs digits, not just prefix)
- Document dual-listener race condition honestly (matches Ink's behavior)
- Note mitigation: init before mount, detection usually completes before effects

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He b04952183f docs: address Codex review feedback on kitty keyboard spec
- Fix teardown ordering to match Ink (after Vue unmount, before cursor restore)
- Document parser support limitations for advanced flags
- Add stdin.unshift risk note and end-to-end delivery test requirement
- Add 9 missing test cases (opt-in no-op, custom flags, split response, etc.)
- Re-export kittyFlags constant for Ink parity

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 6ddf1cba78 docs: add kitty keyboard protocol design spec
Covers protocol lifecycle (enable/disable/auto-detect), useInput Key
interface extension, and ~85 tests to backfill. Matches Ink's
implementation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:50:48 +08:00
Yunfei He 39b124e86d docs: add Ink test parity design spec (~290 tests across 4 parts)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:39:24 +08:00