Commit Graph
1767 Commits
Author SHA1 Message Date
can1357 c6b83c1d96 perf(coding-agent): accelerated session selector with tiered search
- Implemented tiered search strategy using synchronous literal matching for immediate results and debounced asynchronous fuzzy matching to prevent input blocking.
- Cached session search data and introduced an indexed `FuzzyText` structure to reduce redundant string processing.
- Added comprehensive test suite verifying search convergence, stale task orphaning, and selection stability.
- Enhanced `tui` fuzzy matching utilities to support prebuilt search indexes for improved multi-match performance.
2026-07-11 15:52:35 +02:00
can1357 59d08172c1 feat(coding-agent): introduced model hub for unified management and search
- Replaced the legacy model selector with a full-screen Model Hub, introducing mouse support and a fuzzy-searchable browser.
- Integrated comprehensive model management, including role assignment, thinking-level visualization, and manual provider discovery.
- Implemented a cancellable OAuth login flow and integrated it directly into the Model Hub for provider authentication.
- Centralized model logic and migrated existing tests to support the new component architecture.
2026-07-11 15:10:53 +02:00
can1357 1eab12e286 feat(tui): constrained mid-prompt skill completion matching
- Implement `midPromptSkillTokenMatches` to restrict when mid-prompt slash tokens trigger skill completions, ensuring stray prose does not keep the popup active.
- Require skill tokens to be a prefix of the `skill:` namespace, an explicit `skill:` fuzzy query, or a prefix of the bare skill name.
- Update the editor to use this shared logic for filtering suggestions and guarding stale autocomplete acceptances.
2026-07-11 14:54:28 +02:00
can1357 cf1b3fc3fb chore: bump version to 16.4.4 2026-07-11 12:30:26 +02:00
can1357 f7930048d5 chore: bump version to 16.4.3 2026-07-11 07:55:17 +02:00
can1357 fd2d4616a6 chore: bump version to 16.4.2 2026-07-11 00:17:35 +02:00
can1357 395e4a5fcf chore: bump version to 16.4.1 2026-07-10 20:50:59 +02:00
can1357 7cbe9fc0a8 feat(tui): implemented grid-based rendering engine for complex math layouts
- Introduced a grid-based rendering engine to support complex LaTeX environments like matrices, cases, and arrays.
- Added advanced layout capabilities including stretched delimiters, multi-line radicals, and limits-based stacking for operators.
- Implemented logic to propagate color scopes and font styles across box boundaries.
- Exported math font commands and structural glyph painting to facilitate consistent rendering in 2-D contexts.
2026-07-10 20:50:40 +02:00
can1357 a0f7266fbc chore: bump version to 16.4.0 2026-07-10 14:11:05 +02:00
can1357 eae4580a36 chore: update changelogs 2026-07-10 13:40:13 +02:00
can1357 6813fa128f test: aligned ai and tui test contracts with recent stream and paint changes
- Asserted the terminal [DONE] sentinel frame in raw SSE capture since onSseEvent observers receive every wire frame as it arrives.
- Included updatedAtMs in credential block persistence expectations per the broker snapshot contract from issue #4980.
- Taught VirtualTerminal the no-ED2 destructive paint bytes: ED3 history clears now invalidate the offset-keyed text cache instead of bypassing emulation, keeping legacy full-clear recreation only for the WASM trap workaround.
- Refreshed the advisor parity comment for UUIDv7 provider session ids.
2026-07-10 13:21:06 +02:00
can1357 0dbb59a14b test(tui): cover stale cells after destructive repaint 2026-07-10 12:37:46 +02:00
roboomp 6db9ab606a fix(tui): prevented destructive paint flicker
Replayed destructive full paints from home without issuing ED2 before the transcript rows, so resume and resize settles do not expose a blank viewport on terminals without synchronized output.

Kept ED3 as the single native-history clear path and updated renderer regression coverage for the new byte contract.

Fixes #5028
2026-07-10 06:00:31 +00:00
can1357 e8d0a93db6 chore: bump version to 16.3.15 2026-07-09 22:44:35 +02:00
can1357 5ddb0719ad chore: bump version to 16.3.14 2026-07-09 20:37:29 +02:00
can1357 4a20b51ca8 feat: implemented auto-sealing for transcript blocks and TUI row emission
- Added auto-sealing logic to `FinalizableBlock` to finalize displaceable snapshots when they enter the scrollback area.
- Updated TUI frame emission to publish committed rows and clamp them to segment bounds, ensuring accurate component updates.
- Introduced component tracking and cleanup in event controller tests to prevent resource leaks during finalization.
- Validated state transitions and post-emit synchronization through comprehensive new test suites for transcript and TUI components.
2026-07-09 20:37:09 +02:00
can1357 dd67447a03 chore: bump version to 16.3.13 2026-07-09 19:39:55 +02:00
can1357 72d4e03620 docs: normalized unreleased changelog entries for integrated fixes 2026-07-09 18:46:27 +02:00
can1357 2aee4bd3f7 fix(tui): applied DEC 2048 resize reports with colon subparameters
The mode 2048 in-band resize spec permits `:`-separated subparameters
on any field and requires clients to ignore them. The parser rejected
such reports outright (and the split-reassembly prefix pattern dropped
fragmented ones as garbage), so the grow-back report after an iOS soft
keyboard dismissal under tmux-over-SSH never applied: rows stayed
pinned at the keyboard-present height, with no accompanying OS resize
event to reconcile the cached in-band geometry.

Capture the leading digits of each field and skip the subparameter
tail; accept `:` in the reassembly prefix so split reports complete
instead of leaking their tails into the editor as keystrokes.

Fixes #4748
2026-07-09 18:27:21 +02:00
can1357 e07909fdaf fix(tui): replayed detected terminal appearance to late subscribers
ProcessTerminal.start() can parse the startup OSC 11 response before
InteractiveMode.init() registers its onAppearanceChange callback (init
awaits hooks/mode/draft restore between ui.start() and subscribing).
The dedup in #handleOsc11Response then suppresses the value forever and
theme auto-detection stays on the dark fallback despite a light
terminal. Replay the already-detected appearance to subscribers that
register after detection.

Adopted from PR #4883; hardened the test to stop the terminal before
asserting so a failure cannot leak a live terminal into later tests.

Fixes #4731
2026-07-09 18:27:21 +02:00
roboompandcan1357 80b186cd8c fix(tui): handled whitespace after no-arg commands
Treated whitespace-only slash command arguments like empty arguments so no-arg commands stay closed after repeated spaces.

Added provider coverage for the whitespace-only no-arg command path.
2026-07-09 18:27:21 +02:00
roboompandcan1357 58336f5886 fix(tui): stopped slash tab from reopening files
Prevented no-argument slash commands from falling through to empty-prefix file suggestions immediately after Tab completion.

Added an editor regression covering /quit Tab completion with files present in the project root.

Fixes #4808
2026-07-09 18:27:21 +02:00
can1357 f25ab54c59 chore: bump version to 16.3.12 2026-07-08 19:40:13 +02:00
can1357 53df3c82b7 style: applied biome formatting to merged sources 2026-07-08 15:37:43 +02:00
can1357 3ee194dcc7 chore: normalized changelog entries for merged pull requests 2026-07-08 15:35:00 +02:00
can1357 6af3c8080e fix(tui): preserve description-matched skill completion 2026-07-08 15:23:23 +02:00
can1357 b370f91695 merge PR #4620: fix(tui): accept mid-prompt slash skill autocomplete 2026-07-08 15:23:23 +02:00
can1357 10745dfc94 fix(tui): tighten slash autocomplete test 2026-07-08 15:19:40 +02:00
can1357 8c98fd4e22 merge PR #4641: fix: cramped slash autocomplete menu 2026-07-08 15:19:40 +02:00
can1357 ba7a8fc420 merge PR #4693: fix(tui): dispose stale session UI renderers 2026-07-08 15:19:40 +02:00
can1357 c2ae4a57b6 merge PR #4746: fix(tui): guard selector cursor symbol 2026-07-08 15:19:40 +02:00
can1357 8652682d0b merge PR #4607: fix(tui): hang wrapped box-drawing tree lines under their node text 2026-07-08 15:19:40 +02:00
roboomp 90b1b172f1 fix(tui): guarded selector cursor symbol
- Fell back to an ASCII cursor when legacy selector themes omit the symbols map.

- Added a SelectList regression test for rendering with a runtime legacy theme.

Fixes #4745
2026-07-06 21:46:39 +00:00
can1357 b086c5d669 chore: bump version to 16.3.11 2026-07-06 17:48:50 +02:00
roboomp 568226abb9 fix(tui): disposed stale session ui renderers
Stopped new-session and session-switch UI paths from detaching active loader/render components without running their disposal hooks.

Added container and loader coverage for disposing children before destructive transcript/status replacement.

Fixes #4686
2026-07-06 08:49:02 +00:00
can1357 d8e568fad1 chore: bump version to 16.3.10 2026-07-06 08:13:30 +02:00
can1357 4f172fb27c feat(tui): relocated terminal restore registration to tui init
- Moved emergency terminal restore registration to the TUI terminal initialization logic.
- Ensured terminal restoration triggers correctly on fatal exits by moving registration out of a side-effect-heavy barrel module.
- Added a registration guard to prevent redundant postmortem handler attachments.
2026-07-06 08:07:24 +02:00
can1357 674cf01762 chore: bump version to 16.3.9 2026-07-06 04:19:29 +02:00
can1357 617966c193 chore: update changelogs 2026-07-06 04:17:21 +02:00
can1357 458dd490f6 fix(tui): corrected absolute path completion and submission logic
- Added fallback to file-path completion when a leading-slash token does not match a registered command.
- Updated autocomplete application logic to distinguish between path insertions and slash-command command-style completion.
- Prevented accidental submission when pressing Enter on an absolute-path suggestion.
- Added comprehensive test suites for path resolution and interaction behavior in the autocomplete provider and editor component.
2026-07-06 04:10:50 +02:00
Christian Stewart b9a12a815f fix(tui): keep autocomplete row fix behavior-preserving
Signed-off-by: Christian Stewart <christian@aperture.us>
2026-07-05 17:27:35 -07:00
Christian Stewart 22279bc03b fix: cramped slash autocomplete menu 2026-07-05 16:45:35 -07:00
roboomp ea7c911ff2 fix(tui): rejected stale mid-prompt skill autocomplete on non-matching tokens
The staleness guard previously accepted any clean trailing slash token, so
the 100 ms debounce window let a bare-`/` skill popup rewrite a
subsequently typed `/tmp` to `/skill:…`. Score the live token against
the selected skill's value and reject the branch when it would no longer
surface — Tab then falls through to file completion.

Fixes #4619
2026-07-05 19:22:56 +00:00
can1357 d806ac5e4c chore: bump version to 16.3.8 2026-07-05 19:43:28 +02:00
roboomp 5cdc525d0a fix(tui): accepted mid-prompt slash skill completions
- Matched trailing slash skill prefixes during autocomplete staleness checks so Tab and Enter apply the highlighted skill token.
- Cancelled mid-prompt skill autocomplete immediately when Backspace removes the triggering slash.
- Added regression coverage for Tab, Enter, and Backspace behavior.

Fixes #4619
2026-07-05 17:21:11 +00:00
can1357 0ca345185c chore: bump version to 16.3.7 2026-07-05 16:58:53 +02:00
can1357 34aea528a3 chore: update changelogs 2026-07-05 14:35:17 +02:00
can1357 e22fe1af52 chore: added queued-rows changelog entry and normalized changelog placement 2026-07-05 13:25:54 +02:00
can1357 b2467ecc16 fix-tui-image-budget-suppressed-key-eviction 2026-07-05 13:25:25 +02:00
can1357 757f573773 Merge PR #4279: fix(tui): evict purged image keys from ImageBudget key map (@metaphorics) 2026-07-05 13:25:25 +02:00