Commit Graph
61 Commits
Author SHA1 Message Date
Mohamed Boudra 925752c8a3 Update files 2026-02-08 17:50:43 +07:00
Mohamed Boudra b4a93955e3 Update files 2026-02-08 09:15:39 +07:00
Mohamed Boudra b80f4e0e93 Update files 2026-02-07 22:14:10 +07:00
Mohamed Boudra 9130ee3134 Update files 2026-02-07 21:21:32 +07:00
Mohamed Boudra e3fad77d5b Unified tool call display schema, compaction timeline, and auth fixes
- Replace extractPrincipalParam, parseToolCallDisplay, getToolKindFromName
  with a single unified parseToolCallDisplay on the server, consumed by
  both server (activity-curator) and app
- Parse tool calls exactly once and pass ToolCallDisplayInfo down to all
  consumers (message, sheet, details, stream view)
- Add compaction timeline item: detect SDKStatusMessage (compacting) and
  SDKCompactBoundaryMessage, show loading/completed marker in timeline
- Suppress compact summary user message in live stream (flag) and JSONL
  resume (isCompactSummary check)
- Add CompactionMarker component with scissors icon and token count
- Hide sub-agent tool calls from timeline, collapse into Task metadata
- Add Bot icon for Task tool calls
- Fix stripShellWrapperPrefix to strip /bin/zsh -lc wrappers without cd
- Replace CLAUDE_SESSION_TOKEN with CLAUDE_CODE_OAUTH_TOKEN
2026-02-07 21:13:24 +07:00
Mohamed Boudra 31f449a5fc Update files 2026-02-07 00:31:07 +07:00
Mohamed Boudra 0878d0fb2e Update files 2026-02-07 00:19:51 +07:00
Mohamed Boudra f2c88ae073 app: restore per-turn copy actions and refine message copy UI 2026-02-06 21:49:09 +07:00
Mohamed Boudra eb04c8b3e2 Update files 2026-02-04 14:44:21 +07:00
Mohamed Boudra b75276ec27 Merge branch 'fix/diff-padding' 2026-02-04 13:33:57 +07:00
Mohamed Boudra f1ef10dfee Update files 2026-02-04 13:31:30 +07:00
Mohamed Boudra 9bff1fbbfc Update files 2026-02-04 13:24:17 +07:00
Mohamed Boudra c4e37cb326 Update files 2026-02-04 13:18:58 +07:00
Mohamed Boudra 1f895e0e8d Update files 2026-02-04 12:58:25 +07:00
Mohamed Boudra 94b12ba8e3 Update files 2026-02-04 10:35:08 +07:00
Mohamed Boudra 2623328872 refactor: redesign permission request UI with improved spacing and icons 2026-02-03 09:32:42 +07:00
Mohamed Boudra 4db2e91cdd refactor: simplify tasks display and improve spacing in stream view 2026-02-02 22:42:21 +07:00
Mohamed Boudra 30f1682ca1 refactor: rename plan to tasks and extract task entries from tool calls 2026-02-02 22:09:17 +07:00
Mohamed Boudra c615d422ca Update files 2026-01-27 13:48:04 +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 42fb56890b Match thinking badge behavior to tool badge 2026-01-21 15:13:34 +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 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 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 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 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 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 BoudraandClaude Opus 4.5 66881511b6 refactor: simplify tool call display and path handling
- Remove displayName from tool calls, use name directly with icon
- Add medium font weight for tool call badges
- Strip workspace root from file paths at parsing level using Zod schema
- Add accentBorder to tool call badges and git diff file blocks
- Fix user message alignment and vertical spacing
- Deduplicate stripCwdPrefix into tool-call-parsers.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 12:38:04 +07:00
Mohamed BoudraandClaude Opus 4.5 9d7e44851c feat(file-explorer): add parallel thumbnail loading and file preview
- Implement parallel thumbnail queue (2 concurrent) for gallery view
- Add BottomSheetModal file preview with 80% snap point
- Add pull-to-refresh for directory listings
- Fix image loading race conditions with Set-based in-flight tracking

Also includes:
- message-input: add Cmd+Shift+D dictation toggle shortcut
- message: update user message bubble to darker zinc color
- Add PRODUCTION.md deployment guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 08:41:43 +07:00
Mohamed BoudraandClaude Opus 4.5 8023aed98b Fix working indicator padding and remove redundant streaming dots
- Align working indicator left padding with AssistantMessage (spacing[4])
- Remove isStreaming prop and "..." indicator from AssistantMessage
- The WorkingIndicator already shows agent is running, no need for duplicate

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 21:26:05 +07:00
Mohamed BoudraandClaude Opus 4.5 37da13a38b Fix markdown list text wrapping on Android
- Add custom list rendering rules in message.tsx for proper flex layout
- Remove flexWrap from list content styles (causes Android clipping)
- Use flex: 1 and flexShrink: 1 for natural text wrapping
- Add minWidth: 0 to content containers for proper shrinking

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 04:41:37 +00:00
Mohamed BoudraandClaude Opus 4.5 38a4c70aec Improve markdown styling and enable text selection on mobile
- Fix agent chat bottom scroll padding by adding overflow hidden to inputAreaContainer
- Create shared markdown-styles.ts with comprehensive styling for tables, headings, code blocks, blockquotes, and horizontal rules
- Enable text selection in AssistantMessage and AgentThoughtMessage by overriding markdown render rules with selectable={true}
- Path chips remain non-selectable to preserve onPress navigation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:32:52 +07:00
Mohamed BoudraandClaude Opus 4.5 09b7360a7e feat: update ToolCall to open bottom sheet on tap
- Import useToolCallSheet hook from new tool-call-sheet component
- Replace inline expansion with openToolCall() to show details in bottom sheet
- Remove ~300 lines of unused code (toolCallStylesheet, formatFullValue,
  buildLineDiffFromStrings, isStructuredToolResult, and inline rendering)
- Clean up unused imports (ScrollView, DiffViewer, DiffLine)
- Badge display unchanged - still shows icon, label, loading/error state

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:22:29 +00:00
Mohamed BoudraandClaude 53d91a319e fix(app): use pre-parsed props for Codex file edit diffs
ToolCall component had parsedEditEntries, parsedReadEntries, and
parsedCommandDetails props defined but never used them. Now prefers
these pre-parsed props when available, enabling Codex apply_patch
diffs to render correctly in the expanded view.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 01:04:33 +00:00
Mohamed BoudraandClaude 4001b7dc0a refactor: remove heuristic parsing, use pure type-based tool rendering
- Remove all heuristic parsing code from message.tsx (hasCommandDetails,
  commandSection, editSections, readSections, hasStructuredContent, etc.)
- Replace with simple raw JSON fallback for tools without structured results
- Fix server-side support for Claude SDK's old_string/new_string params
  (in addition to old_str/new_str)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 19:38:42 +00:00
Mohamed BoudraandClaude 38b08fec0c feat: add structured tool result types for better rendering
Server-side:
- Add StructuredToolResult discriminated union type with command, file_write,
  file_edit, file_read, and generic variants
- Implement buildStructuredToolResult in claude-agent.ts to detect tool types
  and emit properly structured results
- Update codex-agent.ts to emit structured command results

Client-side:
- Add type guard and extraction functions for structured results
- Render tool calls based on result.type when available:
  - command: show command, output, exit code
  - file_write/file_edit: show diff viewer with proper +/- format
  - file_read: show file content
  - generic: show raw JSON
- Fall back to heuristic parsing for backwards compatibility

This fixes file writes showing as "Command: success message" - they now
properly show as diffs with +line additions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 19:24:52 +00:00
Mohamed BoudraandClaude a7df671144 fix(app): deduplicate tool call expansion sections
Command output was being shown three times: as "Command", as "Read Result",
and as raw JSON "Result". Now:
- Skip "Read Result" when command output is already shown
- Skip raw JSON "Result" when we have structured content to display

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 19:05:41 +00:00
Mohamed Boudra 47a99f5668 Fix reasoning timeline UI and type errors 2025-11-23 14:12:53 +01:00
Mohamed Boudra 95bacf8fc7 feat: add git branch/worktree setup, message queueing, file explorer improvements, and server restart 2025-11-22 23:20:42 +01:00
Mohamed Boudra e26219c967 test: cover tool call hydration preview 2025-11-15 17:33:56 +01:00
Mohamed Boudra 900cc00c03 Highlight tool call pills 2025-11-15 13:49:16 +01:00