Commit Graph

6964 Commits

Author SHA1 Message Date
Peter Steinberger
cfac26639a fix: align tui editor with pi-tui API 2026-01-20 16:51:44 +00:00
Peter Steinberger
d8fa4e1077 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
5155348790 fix: polish session picker filtering (#1271) (thanks @Whoaa512) 2026-01-20 16:46:15 +00:00
Peter Steinberger
584e91a66e fix: auto-enable plugins on startup 2026-01-20 16:38:37 +00:00
Peter Steinberger
725e3d1d6b chore: update a2ui bundle hash 2026-01-20 16:38:08 +00:00
Peter Steinberger
16a3b32557 fix: update pi-ai/pi-tui usage 2026-01-20 16:38:08 +00:00
CJ Winslow
fcab2c3608 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
d467ad5c68 refactor: extract shared fuzzy filter utilities for list components 2026-01-20 16:37:08 +00:00
CJ Winslow
d08cf3deff 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
f5f5ffe784 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
7c394e5ff2 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
420203a170 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
f11d9fcaae feat: add search param to sessions.list RPC
Server-side filtering backup for client-side session picker search.
Case-insensitive substring match on displayName, label, subject,
sessionId, and key.

Closes #1161
2026-01-20 16:36:51 +00:00
CJ Winslow
c09a1ff44f 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
0a2d6e9cc3 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
CJ Winslow
4ad5b044df feat: add heuristic session title derivation for session picker
Enable meaningful session titles via priority-based derivation:
1. displayName (user-set)
2. subject (group name)
3. First user message (truncated to 60 chars)
4. sessionId prefix + date fallback

Opt-in via includeDerivedTitles param to avoid perf impact on
regular listing. Reads only first 10 lines of transcript files.

Closes #1161
2026-01-20 16:36:51 +00:00
Peter Steinberger
28b09ccf80 chore: bump version to 2026.1.20 2026-01-20 16:36:37 +00:00
Peter Steinberger
34acbd3541 test: cover beta fallback update logic 2026-01-20 16:36:37 +00:00
Peter Steinberger
5924bc960c fix: prefer stable release when beta lags 2026-01-20 16:36:04 +00:00
Peter Steinberger
cbfcd77afb refactor(macos): split exec approvals handler 2026-01-20 16:24:44 +00:00
Peter Steinberger
93b19c9936 fix: repair model compat + editor ctor 2026-01-20 16:19:49 +00:00
Peter Steinberger
aed917aecf style(macos): fix swiftformat lint 2026-01-20 16:19:37 +00:00
Peter Steinberger
df0229257a fix(tui): update CustomEditor ctor 2026-01-20 16:06:21 +00:00
Peter Steinberger
d6ac5b66ce fix(macos): disambiguate AnyCodable usage 2026-01-20 16:05:08 +00:00
Peter Steinberger
8bdbde5095 fix: stabilize gateway tests 2026-01-20 16:02:46 +00:00
Peter Steinberger
5f3f0510fa feat: sync plugin updates with update channel 2026-01-20 16:00:42 +00:00
Peter Steinberger
fcec6dd950 fix: clarify doctor auto-enable hint 2026-01-20 15:58:30 +00:00
Peter Steinberger
a7776dfd84 fix: allow custom skill config bag
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
2026-01-20 15:57:08 +00:00
Peter Steinberger
b246c0358b fix: default Anthropic API cache TTL to 1h 2026-01-20 15:48:53 +00:00
Peter Steinberger
6d6b95009e chore: update a2ui bundle hash 2026-01-20 15:48:52 +00:00
Peter Steinberger
ee79a9455a fix: silence macos warning noise 2026-01-20 15:48:52 +00:00
Peter Steinberger
58a97f5b85 fix: update device identity signing 2026-01-20 15:48:52 +00:00
Peter Steinberger
b2e4f416f4 fix: bridge gateway anycodable payloads 2026-01-20 15:48:52 +00:00
Peter Steinberger
5a2695c792 chore: refresh swift package resolved 2026-01-20 15:48:52 +00:00
Peter Steinberger
4ef7723916 fix: harden compat and editor ctor 2026-01-20 15:16:05 +00:00
Peter Steinberger
8c2a478c6d fix: shorten bonjour gateway service type 2026-01-20 15:10:06 +00:00
Peter Steinberger
67c0a00346 docs: refresh development channels timestamp 2026-01-20 15:10:06 +00:00
Peter Steinberger
4dde256a78 Merge pull request #1308 from dougvk/fix/preserve-command-arg-casing
fix(session): preserve command argument casing
2026-01-20 15:04:28 +00:00
Peter Steinberger
887abab62c fix: update model compat + tui editor 2026-01-20 15:02:25 +00:00
Peter Steinberger
e8a1a29d27 docs: add WhatsApp family binding example 2026-01-20 15:00:25 +00:00
Peter Steinberger
c1af1f5609 docs: clarify sandbox env + recreate guidance 2026-01-20 15:00:25 +00:00
Peter Steinberger
586ec8999f fix: guard closeIdleConnections typing 2026-01-20 14:58:31 +00:00
Peter Steinberger
0159fb4202 fix: close idle gateway http connections 2026-01-20 14:56:30 +00:00
Peter Steinberger
6e7dfc4e8f fix: guard ZAI compat on openai-completions api 2026-01-20 14:39:58 +00:00
Peter Steinberger
e0945c9531 fix: align CustomEditor with pi-tui Editor API 2026-01-20 14:35:42 +00:00
Peter Steinberger
a3e884851c feat: improve /new model hints and reset confirmation 2026-01-20 14:35:20 +00:00
Peter Steinberger
105baba19c fix: align tui editor init (#1298) (thanks @sibbl) 2026-01-20 14:32:46 +00:00
Peter Steinberger
44d24083a4 refactor: split matrix provider modules 2026-01-20 14:32:04 +00:00
Peter Steinberger
4d7e948014 fix: clean up lint leftovers 2026-01-20 14:25:18 +00:00
Peter Steinberger
470d32bf33 fix: drain openresponses test responses 2026-01-20 14:20:04 +00:00