Commit Graph

3738 Commits

Author SHA1 Message Date
Peter Steinberger
5155348790 fix: polish session picker filtering (#1271) (thanks @Whoaa512) 2026-01-20 16:46:15 +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
93b19c9936 fix: repair model compat + editor ctor 2026-01-20 16:19:49 +00:00
Peter Steinberger
df0229257a fix(tui): update CustomEditor ctor 2026-01-20 16:06:21 +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
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
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
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
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
Peter Steinberger
2a056e9add feat: add update channel status
Co-authored-by: Richard Poelderl <18185649+p6l-richard@users.noreply.github.com>
2026-01-20 14:19:03 +00:00
Peter Steinberger
374310b880 fix: tolerate pi-tui type exports 2026-01-20 14:17:39 +00:00
Peter Steinberger
527002ad90 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
John Rood
9cd22a43ae fix(browser): register refs from AI snapshot for act commands
When using the default AI snapshot format without explicit options like
interactive/compact/labels, refs were not being registered because
snapshotAiViaPlaywright returns raw text without ref registration.

This caused 'Unknown ref' errors when subsequently using act commands
with refs like e12 that appeared in the snapshot text.

The fix extracts refs from the AI snapshot using buildRoleSnapshotFromAiSnapshot
and registers them via rememberRoleRefsForTarget so act commands can resolve them.

Fixes #1268
2026-01-20 14:13:48 +00:00
Peter Steinberger
3ce735b749 fix: merge login shell PATH for gateway exec 2026-01-20 14:04:13 +00:00
Peter Steinberger
f796a5deef fix: accept pi-tui editor ctor variants 2026-01-20 14:02:36 +00:00
Peter Steinberger
7884419bbe chore: fix lint/format 2026-01-20 13:52:59 +00:00
Peter Steinberger
bfc4e77190 fix: update ui ed25519 + bluebubbles actions 2026-01-20 13:43:27 +00:00
Peter Steinberger
98d4797cc6 feat: add dev update channel 2026-01-20 13:41:30 +00:00
Peter Steinberger
0c25a871fc fix: run doctor config flow once 2026-01-20 13:27:51 +00:00
Peter Steinberger
d585a39645 fix: add /skill fallback for native limits
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com>
2026-01-20 13:20:29 +00:00
Peter Steinberger
44a3a7f5fc Merge pull request #1247 from sebslight/fix/perplexity-web-search-provider
Config: accept Perplexity for web_search
2026-01-20 13:18:18 +00:00
Peter Steinberger
0883136a38 refactor: centralize channel ui metadata 2026-01-20 13:11:49 +00:00
Peter Steinberger
7411ed831d chore: update deps 2026-01-20 13:06:16 +00:00
Peter Steinberger
6eace493e9 fix: tighten tls fingerprints and approval events 2026-01-20 13:04:20 +00:00
Peter Steinberger
246028dfc6 fix: validate ws tls fingerprint 2026-01-20 13:04:20 +00:00
Peter Steinberger
e8d5d2f816 feat: enrich presence with roles 2026-01-20 13:04:20 +00:00
Peter Steinberger
2f75397400 feat: add discovery role hints 2026-01-20 13:04:19 +00:00
Peter Steinberger
a127a7ad40 feat: add remote gateway tls fingerprint 2026-01-20 13:04:19 +00:00