Peter Steinberger
2e7e135bc0
fix: config form semantics + editor ctor ( #1315 ) (thanks @MaudeBot)
2026-01-20 20:14:22 +00:00
Peter Steinberger
b012b1105e
fix: unblock discord listener concurrency
2026-01-20 19:30:32 +00:00
Peter Steinberger
9f856abfe7
fix: align tui editor with pi-tui API
2026-01-20 16:51:44 +00:00
Peter Steinberger
40e928a4c4
Merge pull request #1271 from Whoaa512/feat/session-picker-mvp
...
feat: session picker MVP - fuzzy search, derived titles, relative time
2026-01-20 16:46:48 +00:00
Peter Steinberger
faa5838147
fix: polish session picker filtering ( #1271 ) (thanks @Whoaa512)
2026-01-20 16:46:15 +00:00
Peter Steinberger
8bf484bdad
fix: update pi-ai/pi-tui usage
2026-01-20 16:38:08 +00:00
CJ Winslow
36719690a2
test: add coverage for readLastMessagePreviewFromTranscript
...
Also add CHANGELOG entry and perf docs for session list flags.
2026-01-20 16:37:09 +00:00
CJ Winslow
f2666d2092
refactor: extract shared fuzzy filter utilities for list components
2026-01-20 16:37:08 +00:00
CJ Winslow
a28c271488
TUI: optimize fuzzy filtering and consolidate time formatting
...
- Extract formatRelativeTime to shared utility for reuse across components
- Optimize FilterableSelectList with pre-lowercased searchTextLower field (avoids toLowerCase on every keystroke)
- Implement custom fuzzy matching with space-separated token support and word boundary scoring
- Use matchesKey utility for consistent keybinding handling (arrows, vim j/k, ctrl+p/n)
- Fix searchable-select-list to support vim keybindings consistently
- Fix system-prompt runtimeInfo null check with nullish coalescing operator
2026-01-20 16:37:08 +00:00
CJ Winslow
1d9d5b30ce
feat: add last message preview to session picker
...
Read the final user/assistant message from session transcripts and display
it in the picker alongside the session update time. Allows quick previews
of what's in each session without opening it.
2026-01-20 16:36:51 +00:00
CJ Winslow
14f56a4e18
TUI: use editor keybindings for select cancel action
...
Replace hardcoded escape sequence checks with the pi-tui keybindings API to ensure consistent cancel handling across different terminal configurations.
2026-01-20 16:36:51 +00:00
CJ Winslow
687c41e838
TUI: display relative time for session updates in picker
...
Show "just now", "5m ago", "Yesterday" etc. instead of absolute timestamps
for better readability in the session picker list.
2026-01-20 16:36:51 +00:00
CJ Winslow
262e35c219
refactor: clean up FilterableSelectList per code review
...
- Remove dead input handlers (onSubmit/onEscape never triggered)
- Store maxVisible as instance property instead of bracket access
- Remove unused filterInput theme property
2026-01-20 16:36:51 +00:00
CJ Winslow
95f0befd65
feat: add fuzzy filter to TUI session picker
...
Users can now type to filter sessions in real-time:
- FilterableSelectList component wraps pi-tui's fuzzyFilter
- Matches against displayName, label, subject, sessionId
- j/k navigation, Enter selects, Escape clears filter then cancels
- Uses derivedTitle from previous commit for better display
Refs #1161
2026-01-20 16:36:51 +00:00
Peter Steinberger
0b0d8b2406
fix: repair model compat + editor ctor
2026-01-20 16:19:49 +00:00
Peter Steinberger
8c666666ef
fix(tui): update CustomEditor ctor
2026-01-20 16:06:21 +00:00
Peter Steinberger
c6812c6af4
fix: harden compat and editor ctor
2026-01-20 15:16:05 +00:00
Peter Steinberger
760b1e8fc6
fix: update model compat + tui editor
2026-01-20 15:02:25 +00:00
Peter Steinberger
d18319a57d
fix: align CustomEditor with pi-tui Editor API
2026-01-20 14:35:42 +00:00
Peter Steinberger
41f6d06967
fix: align tui editor init ( #1298 ) (thanks @sibbl)
2026-01-20 14:32:46 +00:00
Peter Steinberger
30fd7001f2
fix: tolerate pi-tui type exports
2026-01-20 14:17:39 +00:00
Peter Steinberger
da4b124480
fix(browser): register AI snapshot refs ( #1282 )
...
thanks @John-Rood
Co-authored-by: John Rood <62669593+John-Rood@users.noreply.github.com>
2026-01-20 14:14:36 +00:00
Peter Steinberger
a0180f364d
fix: accept pi-tui editor ctor variants
2026-01-20 14:02:36 +00:00
Peter Steinberger
6f9861bb9b
chore: update deps
2026-01-20 13:06:16 +00:00
Peter Steinberger
32a668e4d9
refactor: streamline TUI stream assembly updates
2026-01-20 08:57:42 +00:00
Peter Steinberger
074db1905a
fix: refactor TUI stream assembly ( #1202 , thanks @aaronveklabs)
...
Co-authored-by: Aaron <aaron@vektor-labs.com>
2026-01-20 08:36:54 +00:00
Aaron
9609a3af40
fix: check for error before early return in extractContentFromMessage
...
Addresses Codex review feedback - ensures error messages are surfaced
even when content is missing/undefined
2026-01-20 08:36:36 +00:00
Aaron
476087f879
fix(tui): buffer streaming messages by runId to prevent render ordering issues
...
Fixes #1172
- Add per-runId message buffering in ChatLog
- Separate thinking stream from content stream handling
- Ensure proper sequencing (thinking always before content)
- Model-agnostic: works with or without thinking tokens
2026-01-20 08:36:36 +00:00
Peter Steinberger
81d392a2d7
refactor: extract TUI syntax theme and fix changelog
2026-01-19 05:32:53 +00:00
Peter Steinberger
c578fca687
fix(tui): generic empty-state for searchable pickers (PR #1201 , thanks @vignesh07)
...
Co-authored-by: Vignesh Natarajan <vigneshnatarajan92@gmail.com>
2026-01-19 05:16:06 +00:00
Vignesh Natarajan
dd18765b50
feat(tui): add fuzzy search to session and agent pickers
...
Use SearchableSelectList for /sessions and /agents pickers,
matching the /models picker behavior.
- Session picker: search by session key, display name, or date
- Agent picker: search by agent ID or name
🤖 AI-assisted (Claude)
2026-01-19 05:16:06 +00:00
Peter Steinberger
3e06fe84dc
feat: add TUI code block syntax highlighting ( #1200 ) (thanks @vignesh07)
2026-01-19 05:07:23 +00:00
Peter Steinberger
640e19988f
Merge pull request #1200 from vignesh07/feat/tui-syntax-highlighting
...
feat(tui): add syntax highlighting for code blocks
2026-01-19 05:05:51 +00:00
Vignesh Natarajan
145adf540f
fix: make syntax highlighting tests environment-agnostic
...
Tests now verify structure and content preservation rather than
checking for specific ANSI escape codes, which may not be present
in CI environments without TTY/color support.
2026-01-18 16:40:06 -08:00
Peter Steinberger
d9384785a3
fix: stabilize ci checks
2026-01-19 00:34:26 +00:00
Vignesh Natarajan
0e3c9e4a0e
feat(tui): add syntax highlighting for code blocks
...
Add syntax highlighting to markdown code blocks in the TUI using
cli-highlight with a VS Code Dark-inspired color theme.
Features:
- 191 languages supported via highlight.js
- Auto-detection fallback for unknown languages
- Graceful fallback to plain styling on errors
- VS Code Dark-inspired color palette
Colors:
- Purple: keywords (const, function, if, etc.)
- Teal: built-ins (console, Math, print, etc.)
- Orange: strings
- Green: numbers, comments
- Yellow: function names
- Blue: literals (true, false, null)
- Red: diff deletions
- Light blue: variables, parameters
🤖 AI-assisted (Claude) - fully tested locally
2026-01-18 16:24:14 -08:00
Peter Steinberger
1e5569d56a
fix: refine TUI model search rendering
2026-01-19 00:15:16 +00:00
Peter Steinberger
46dcda1d0c
fix: preserve fuzzy ranking in model picker ( #1198 ) (thanks @vignesh07)
2026-01-18 23:26:42 +00:00
Vignesh Natarajan
950f8a04ea
fix: prioritize exact substring matches over fuzzy in model search
...
- Exact substring in label (earliest position wins)
- Word-boundary prefix matches
- Description substring matches
- Fuzzy matching as fallback
This ensures 'opus' shows claude-3-opus before openrouter models.
2026-01-18 23:18:28 +00:00
Vignesh Natarajan
de44e0ad33
feat(tui): add fuzzy search to model picker
...
- Add SearchableSelectList component with fuzzy filtering
- Integrate with /models command for quick model search
- Support up/down navigation while typing
- Uses pi-tui's fuzzyFilter for intelligent matching
2026-01-18 23:18:28 +00:00
Peter Steinberger
e7e34c442e
fix: smooth TUI waiting shimmer ( #1196 ) (thanks @vignesh07)
2026-01-18 22:37:36 +00:00
Vignesh Natarajan
e85d2dff97
TUI: pick waiting phrase once per waiting session
2026-01-18 22:19:47 +00:00
Vignesh Natarajan
fac66d4dda
TUI: waiting shimmer helper + tests
2026-01-18 22:19:47 +00:00
Vignesh Natarajan
2e99369113
TUI: add animated waiting status with shimmer
2026-01-18 22:19:47 +00:00
Peter Steinberger
54d7551b53
refactor(usage): centralize responseUsage mode
2026-01-18 06:01:25 +00:00
Peter Steinberger
2dabce59ce
feat(slash-commands): usage footer modes
2026-01-18 05:35:35 +00:00
Peter Steinberger
67f63ecd7e
chore: remove tracked artifacts
2026-01-18 02:55:07 +00:00
Peter Steinberger
1420d113d8
refactor: migrate extensions to plugin sdk
2026-01-18 02:55:07 +00:00
Peter Steinberger
bbb71c9198
refactor: prune legacy group targets
2026-01-17 09:01:47 +00:00
Peter Steinberger
837eea4ebd
fix: refresh TUI session info after runs
2026-01-17 08:22:32 +00:00