Commit Graph

25 Commits

Author SHA1 Message Date
Shantur Rathore
85df6781c3 Session status implementation. 2025-11-12 23:11:23 +00:00
Shantur Rathore
2efd16796f Permissions 2025-11-12 10:07:30 +00:00
Shantur Rathore
89dbe43d87 Commit - use types from SDK 2025-11-11 21:06:37 +00:00
Shantur Rathore
34dec16e22 Fix Diff view + Caching 2025-11-11 11:09:06 +00:00
Shantur Rathore
c6b3686f13 add toasts, session usage tracking, and copy controls 2025-11-08 22:04:50 +00:00
Shantur Rathore
7193103646 Track tool part versions for reliable updates 2025-11-07 15:12:21 +00:00
Shantur Rathore
27da588d22 Track tool part versions for SSE updates 2025-11-07 13:41:07 +00:00
Shantur Rathore
5ccac400e4 Prevent streaming updates from re-rendering session UI 2025-11-03 20:07:17 +00:00
Shantur Rathore
37a47699e3 refine thinking part filtering 2025-10-30 16:31:13 +00:00
Shantur Rathore
70fe2cab01 fix: properly encode Unicode text in base64 attachments 2025-10-28 21:36:16 +00:00
Shantur Rathore
d5144da630 refactor: restyle markdown via tokens 2025-10-28 20:11:05 +00:00
Shantur Rathore
d18e44f721 Cache markdown render output per message part 2025-10-28 14:41:09 +00:00
Shantur Rathore
6597783e85 Stabilize message stream rendering caches 2025-10-28 13:48:56 +00:00
Shantur Rathore
79e4931b28 Precompute message display parts and pause scroll handling 2025-10-28 12:10:43 +00:00
Shantur Rathore
030fc4986e Remember last used binary and show environment variables 2025-10-26 11:30:29 +00:00
Shantur Rathore
c4a8a54bd7 Add context window percentage and subscription model detection to session info 2025-10-25 18:41:15 +01:00
Shantur Rathore
3edd852ee2 Implement compact, undo, and init commands
- Add compact command with proper API parameters (providerID, modelID)
- Implement undo command matching TUI behavior:
  - Find previous user message before revert point
  - Restore reverted message to prompt input
  - Filter messages client-side based on session.revert field
- Add init command with proper hex-encoded message ID generation
- Add session.revert field handling:
  - Parse revert field from API responses in fetchSessions and createSession
  - Update revert field via SSE session.updated events
  - Filter messages during render when revert point is set
- Add SSE event handlers for session.compacted and session.error
- Add force reload option to loadMessages for post-compact refresh
- Messages now filter instantly based on revert state without API reload
2025-10-24 17:41:55 +01:00
Shantur Rathore
6f31ffc467 Replace session picker modal with instance welcome view
Transform the session picker from a modal into a comprehensive welcome screen that displays instance metadata, session history, and creation options. The new view provides full keyboard navigation, shows MCP server status, OpenCode binary path, and project information in a compact, space-efficient layout.

Key features:
- Instance metadata sidebar showing folder, project, VCS, version, binary path, MCP status, and server info
- Session list with keyboard navigation (↑↓, PgUp/PgDn, Home/End, Enter)
- Cmd+Enter shortcut to create new session from anywhere
- Compact design with efficient space usage
- Visual MCP server status indicators (running/stopped/error)
- Scrollable layout that keeps "New Session" section accessible
2025-10-24 15:41:59 +01:00
Shantur Rathore
d17e8e56c8 Add agent attachments with @agent mentions 2025-10-24 13:02:43 +01:00
Shantur Rathore
79fe1c4b7b Convert file paths to file:// URLs for server compatibility 2025-10-24 00:55:20 +01:00
Shantur Rathore
b6dc4ba249 Fix file path format and initialization issues
- Remove leading slash from file paths (use relative paths from workspace)
- Server expects relative paths like 'file.md' not '/file.md'
- Convert isInitialized from let to signal to persist across renders
- Fix file picker not showing files on first open
- Paths from find.files() are already relative to workspace
2025-10-24 00:50:30 +01:00
Shantur Rathore
bdd9837538 Add file attachments with @ mentions and drag & drop support
- Create attachment type system with file, text, symbol, and agent sources
- Implement file picker with SDK integration (find.files, file.status)
- Add @ detection in prompt input to trigger file search
- Create attachment chips UI for managing attached files
- Add attachment state management per session
- Update message submission to include attachments
- Implement drag & drop support for adding files
- Show git-modified files first in file picker with +/- indicators
- Filter files as user types after @
- Clear attachments after successful message send
2025-10-23 22:46:29 +01:00
Shantur Rathore
3c5c4755b8 Add logs tab with real-time server output and consolidate syntax highlighting
- Implement dedicated Logs tab showing stdout/stderr from OpenCode server
- Add log level parsing (INFO, ERROR, WARN, DEBUG) with color coding
- Stream logs from main process to renderer via IPC events
- Persist scroll position and auto-scroll state per instance
- Synchronize instance IDs between renderer and main process
- Consolidate syntax highlighting to single shared highlighter instance
- Optimize markdown rendering with global highlighter initialization
- Fix code block copy button to always appear on right side
- Enable debug logging with --print-logs --log-level DEBUG flags
2025-10-23 11:14:35 +01:00
Shantur Rathore
7cf0f9a179 Add agent and model selection with automatic defaults and subagent support
- Implement automatic agent/model selection for new sessions (first agent, prioritize Anthropic default)
- Extract and restore agent/model from last assistant message when resuming sessions
- Add subagent support: child sessions can select subagents, parent sessions cannot
- Display subagent badge in agent dropdown for identification
- Truncate agent descriptions to 50 characters in dropdown
- Improve model search to include full provider/model ID path
- Auto-select input text on focus for easy model search
- Add getDefaultModel() with priority: agent model → Anthropic → first provider
2025-10-23 09:25:26 +01:00
Shantur Rathore
fa77b4e82e Working messages display 2025-10-22 22:10:51 +01:00