Commit Graph
224 Commits
Author SHA1 Message Date
Mohamed Boudra 56399bcb42 Merge branch 'dry-review' 2026-01-24 19:04:39 +07:00
Mohamed Boudra e9b1021cb9 Remove unused components and clean up codebase
- Remove orchestrator.tsx and orchestrator-messages-view.tsx
- Remove conversation-selector.tsx
- Remove thinking-sheet.tsx and agent-thought-content.tsx
- Remove home-header.tsx
- Update message.tsx and agent-stream-view.tsx
- Add tool call detail improvements
- Add lz-string dependency for compression
2026-01-24 19:04:21 +07:00
Mohamed Boudra b498c9ea81 Add streaming ASR partial transcripts and reset hosts to env default
- Stream partial transcripts to the client during dictation for live feedback
- Use OpenAI semantic VAD instead of manual commit intervals for better word boundaries
- Append silence tail on finish to flush final utterance through VAD
- Skip committing silence-only audio tails
- Reset hosts to env-defined daemon when env var is present, overriding stored state
2026-01-24 19:01:14 +07:00
Mohamed Boudra 9b82c02fd2 Add welcome onboarding and remove default localhost host 2026-01-24 17:01:12 +07:00
Mohamed Boudra b86075040d Update files 2026-01-24 16:10:58 +07:00
Mohamed Boudra 657644b5e7 Update files 2026-01-24 14:08:01 +07:00
Mohamed Boudra b919a3cdd9 Revamp Changes pane view + ship menus and stabilize e2e selectors 2026-01-24 08:52:31 +07:00
Mohamed Boudra 2b55d3ae6a Add Changes overflow menu and primary action toolbar 2026-01-23 22:59:31 +07:00
Mohamed Boudra a0cab29e1a Merge branch 'lockdown-dictation-e2e' 2026-01-23 18:55:21 +07:00
Mohamed Boudra 0ff0293a97 Stream dictation via OpenAI Realtime and simplify retry UI 2026-01-23 18:55:14 +07:00
Mohamed Boudra eab8713c24 Persist base branch for Paseo worktrees and gate merge action 2026-01-23 15:27:42 +07:00
Mohamed Boudra 0852f4e6d0 Update files 2026-01-23 15:10:36 +07:00
Mohamed Boudra a6869d55c1 Update files 2026-01-23 13:29:30 +07:00
Mohamed Boudra 53155ebcc9 feat(app): checkout diff pane styling and e2e test support
- Style diff file cards edge-to-edge with single divider between files
- Remove monospace font from filenames for better readability
- Add checkout-ship e2e test for app
- Export Page type from e2e fixtures
- Add checkout query hooks for diff, status, and PR status
2026-01-23 08:37:15 +07:00
Mohamed Boudra 42fb56890b Match thinking badge behavior to tool badge 2026-01-21 15:13:34 +07:00
Mohamed Boudra ddbcc272f1 feat: migrate from wsUrl to endpoints + add relay transport and pairing 2026-01-21 14:55:23 +07:00
Mohamed Boudra ae9a98223f refactor: rename conversation to voice conversation throughout stack 2026-01-21 11:43:16 +07:00
Mohamed Boudra ebb97a0184 feat(app): inline desktop file explorer preview 2026-01-21 11:16:35 +07:00
Mohamed Boudra 513138ac13 Fix e2e daemon isolation and fast model defaults 2026-01-20 13:36:06 +07:00
Mohamed Boudra facd99ab13 Fix dictation lifecycle and add real STT e2e 2026-01-20 13:09:22 +07:00
Mohamed Boudra d9c487dd54 feat: add Tauri desktop app support and terminal management 2026-01-20 10:09:35 +07:00
Mohamed Boudra d964415eba feat(server): improve task CLI with steering, execution order, and planner guidance
- Fix steering notes to check scope task instead of leaf task
- Fix NOT_DONE replan to use scope for bird's eye view
- Pass reason to planner prompt ("Why you were called" section)
- Add execution-order.ts with reusable computeExecutionOrder and buildSortedChildrenMap
- Make 'tree' an alias for 'plan' command
- Add comprehensive help text for run command and acceptance criteria
- Add planner guidance for propagating requirements to subtasks
2026-01-17 11:46:38 +07:00
Mohamed Boudra 420f25f1e9 feat: add download toast, e2e permission tests, and update favicons
- Add download toast component with progress indicator and auto-dismiss
- Add download store for managing file download state
- Add e2e tests for permission prompts (allow/deny flows)
- Add global setup for e2e tests with isolated daemon instance
- Update favicon assets with new design
- Refactor agent-stream-view to use shared tool-call-details component
- Simplify file-explorer-pane component
- Clean up unused screenshots and PRODUCTION.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-16 20:23:07 +07:00
Mohamed Boudra f733f2852d fix(app): adjust agent list item spacing 2026-01-16 16:25:53 +07:00
Mohamed Boudra ed50c168ad refactor(app): unified panel state machine for mobile sidebars
Replace separate sidebar stores with a unified panel store that uses a
discriminated union state machine on mobile. This makes it impossible
for both the agent list and file explorer sidebars to be open at the
same time on mobile.

Mobile state machine (mobileView):
- 'agent': Main agent view (no overlay panel)
- 'agent-list': Agent list sidebar (left overlay)
- 'file-explorer': File explorer sidebar (right overlay)

Desktop retains independent boolean toggles since sidebars sit
alongside content rather than overlaying it.

Key changes:
- Created stores/panel-store.ts with unified state
- Deleted stores/sidebar-store.ts and explorer-sidebar-store.ts
- Updated all components to use new panel store
- Animation contexts derive isOpen from unified state
2026-01-16 16:19:49 +07:00
Mohamed Boudra ef853914d5 feat: improve agent stream view UI, fix history replay timestamps, and enhance planner/worker loop 2026-01-15 15:10:08 +07:00
Mohamed Boudra aa090748a6 chore: sync all local changes 2026-01-14 19:23:27 +07:00
Mohamed Boudra 70e2d66dd5 feat: persist draft messages and UI refinements
- Add dedicated draft-store with AsyncStorage persistence for drafts
  that survive app refresh/crash
- Reduce markdown bold weight from bold to medium (500)
- Various theme and component style updates
- Server bootstrap and config improvements

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-14 10:07:54 +07:00
Mohamed Boudra 4803589ea1 Add copy button for assistant turns in agent stream
- Add TurnCopyButton component that copies all assistant messages from a turn
- Detect turn boundaries (before user message or end of stream when not running)
- Lazily compute turn content on click to avoid render-time overhead
- Ghost icon style with hover effect (color lightens)
2026-01-13 12:06:33 +07:00
Mohamed Boudra 2fa7ec17cb WIP: Refactor and polyfill updates
- Add crypto polyfill for Expo
- Update daemon client and websocket server
- Simplify codex agent tests
2026-01-13 11:06:21 +07:00
Mohamed Boudra 868f9fb571 WIP: Large refactor checkpoint
- Refactored daemon client and RPC layer
- Added new client package structure in server
- Removed legacy hooks (use-daemon-request, use-session-rpc, use-websocket)
- Added use-daemon-client hook
- Added e2e test infrastructure with Playwright
- Updated agent providers and session handling
- Removed codex-sdk patches
2026-01-12 13:30:20 +07:00
Mohamed Boudra f81fd1c01a Add command autocomplete and stream spacing updates 2026-01-11 22:36:34 +07:00
Mohamed Boudra ebabcc09e5 feat: add opencode provider and refactor stream model to head/tail architecture 2026-01-11 16:00:25 +07:00
Mohamed Boudra 7fe10f9b4a Prompt is too long 2026-01-11 09:29:00 +07:00
Mohamed Boudra f5810c18ac feat(app): add text selection and fix shell error display
- Add selectable prop to all Text components in tool call content areas
- Add ShellErrorResultSchema to parse tool_result error format
- Update ShellToolCallSchema to extract content from error results
- Also handle tool_result extraction in formatValue as fallback
2026-01-11 00:20:29 +07:00
Mohamed Boudra 018e3b6a8c feat(app): extract tool call details for inline/sheet display
- Create ToolCallDetailsContent component for shared content rendering
- Add useToolCallDetails hook for parsing tool call data
- Desktop (md+): expand tool call details inline below badge
- Mobile (xs/sm): open bottom sheet on tap (unchanged behavior)
- Remove unused props from ToolCall component

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-11 00:10:26 +07:00
Mohamed Boudra a0abf4a79f feat(app): add Read tool call display with file path and content
- Add ReadToolCallSchema to parse Read tool calls (file_path, offset, limit)
- Display file path immediately from input (before result arrives)
- Show offset/limit range when specified
- Display file content in scrollable area when result completes

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-10 23:55:44 +07:00
Mohamed Boudra 9048198045 fix(app): use gesture handler ScrollView in tool call sheet 2026-01-10 23:51:06 +07:00
Mohamed Boudra 5aebb418df fix(app): auto-grow text input on iOS
Remove explicit height style on iOS TextInput - only use minHeight/maxHeight
to allow native auto-sizing. Web still uses explicit height for controlled
sizing via onContentSizeChange measurement.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-10 23:47:37 +07:00
Mohamed Boudra f073be0b98 feat(app): improve tool call sheet with word-level diff and better UX
- Add word-level highlighting using LCS algorithm for edit diffs
- Match diff colors to explorer sidebar (GitHub-style rgba backgrounds)
- Use discriminated union for tool call parsing (shell, edit, generic)
- Add horizontal scroll for bash/command output instead of wrapping
- Remove status badge from bottom sheet header
- Fix sheet snap points (60%/95%) and disable dynamic sizing
- Add min-width to diff viewer for full-width backgrounds

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-10 23:37:13 +07:00
Mohamed Boudra 42129926ae feat(app): add maestro tests, download progress, and task hierarchy
Add Maestro E2E test flows for app launch and sidebar interactions. Implement download progress tracking with speed/ETA display in file explorer. Extend task CLI with parent-child hierarchy, body content from stdin, and ancestor context in task show. Fix explorer sidebar gesture to allow horizontal scrolling while preserving close swipe. Replace hardcoded monospace font with Fonts.mono constant. Fix RefreshControl to only show spinner on manual pull-to-refresh.
2026-01-10 22:44:57 +07:00
Mohamed Boudra 584b0413a5 refactor: unify layout widths and font sizes
- Add MAX_CONTENT_WIDTH (820px) constant for consistent chat/form widths
- Bump theme font sizes (base now 16px) for better readability
- Apply max width to stream view, input area, and new agent form
- Position new agent form at bottom of scroll area
- Remove working directory helper text
- Add cmd+b sidebar toggle when textarea is focused
2026-01-09 19:11:35 +07:00
Mohamed Boudra 2d03e86bcb feat: use mnemonic-id for worktree names
Replace prompt-based slugifying with mnemonic-id package for generating
human-readable worktree names like "hungry-hippo". Names are generated
when the worktree toggle is enabled rather than derived from the prompt.
2026-01-09 19:00:41 +07:00
Mohamed Boudra b90c17a919 perf: optimize agent stream view rendering
- Separate streaming item from FlatList data array to prevent full
  re-diffs on every streaming chunk
- Memoize renderStreamItem with useCallback
- Memoize AgentThoughtMessage component with React.memo

The main fix is rendering the streaming message in ListHeaderComponent
instead of prepending it to the data array, which was causing the
entire list to re-diff on every character streamed.
2026-01-09 18:00:34 +07:00
Mohamed Boudra 1a2498e9e7 refactor: remove terminal MCP, Playwright, and commands infrastructure
- Remove terminal/tmux MCP from voice LLM - it now only uses agent-control MCP
- Remove Playwright MCP auto-injection from Claude and Codex agents
- Remove commands state from session, store, and UI
- Remove present_artifact tool and guidelines from voice prompt
- Update agent-prompt.md examples to focus on agents instead of commands
- Remove @huggingface/transformers dependency and test scripts
- Add expandTilde utility to utils/path.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-09 13:01:26 +07:00
Mohamed Boudra 6f278cb6a6 refactor: remove old git-diff and file-explorer screens
- Delete standalone /git-diff and /file-explorer routes
- Update agent menu to open explorer sidebar instead of navigating
- Update file path clicks in chat to open sidebar
- Fix unnecessary re-renders in sidebar panes by using agents.has() instead of agents.get()

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-09 11:05:20 +07:00
Mohamed Boudra 3ba778eea7 wip: local changes and task backlog
- Refactor agent-form-dropdowns component
- Simplify app index routing
- Update agent-input-area and message-input
- Improve worktree utility with tests
- Add task backlog for upcoming work
2026-01-09 08:40:16 +07:00
Mohamed Boudra cc74d6d0d2 feat: remove import agent feature from UI
Remove the import agent functionality from the app while preserving
the underlying resume capability in the agent code.

Changes:
- Remove ImportAgentModal and import flow from create-agent-modal.tsx
- Remove "Import Agent" menu item from agent screen
- Remove "Import" button from home footer
- Remove resumeAgent from session context and store
- Remove list_persisted_agents WS messages from server
- Remove handleListPersistedAgentsRequest handler
- Clean up unused styles and types

The resumeAgent capability remains in the agent manager for potential
future use or internal tooling.
2026-01-08 21:48:48 +07:00
Mohamed Boudra d233115ab9 feat: add task management CLI and improve activity curation
- Add task store with dependency tracking and CLI (packages/server/src/tasks/)
- Extract principal param logic to shared util for server/app reuse
- Improve activity curator: collapse timeline, dedupe tool calls, simpler output
- Add MessageInput ref for focus control after agent cancel
- Include recent activity in wait timeout messages

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-08 14:56:10 +07:00
Mohamed Boudra a515f1fd03 feat: add drag-and-drop image upload and improve image previews
- Add FileDropZone component with overlay for web drag-and-drop
- Add useFileDropZone hook using native addEventListener for web
- Wire up drag-drop to agent screen to add images to input
- Improve image preview styling with visible border
- Show X button on hover with dark overlay for removal

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-01-07 18:05:02 +07:00