Commit Graph
53 Commits
Author SHA1 Message Date
Mohamed Boudra c615d422ca Update files 2026-01-27 13:48:04 +07:00
Mohamed Boudra 766585d1cb Update files 2026-01-27 13:06:01 +07:00
Mohamed Boudra c233c99cd3 Update files 2026-01-26 18:03:51 +07:00
Mohamed Boudra be235e14d7 Update files 2026-01-25 20:40:00 +07:00
Mohamed Boudra 084177da16 Persist agent deletion and support subdir worktree cleanup 2026-01-24 23:34:09 +07:00
Mohamed Boudra 6503d3b408 Update files 2026-01-24 22:05:44 +07:00
Mohamed Boudra c71134c78e Merge branch 'fix/e2e-home-routing' 2026-01-24 21:25:22 +07:00
Mohamed Boudra 8fe30eae75 feat(checkout): add merge-from-base and push operations for worktree branches 2026-01-24 21:24:48 +07:00
Mohamed Boudra dc4839e2c0 Fix agent routing and E2E create flow 2026-01-24 20:20:56 +07:00
Mohamed Boudra 3e2d403f1b fix agent create: keep draft view until agent ready 2026-01-24 19:29:56 +07:00
Mohamed Boudra 6ecf88b502 refactor agent route for draft→chat transition 2026-01-24 19:18:07 +07:00
Mohamed Boudra b86075040d Update files 2026-01-24 16:10:58 +07:00
Mohamed Boudra d9c487dd54 feat: add Tauri desktop app support and terminal management 2026-01-20 10:09:35 +07:00
Mohamed Boudra f733f2852d fix(app): adjust agent list item spacing 2026-01-16 16:25:53 +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 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 BoudraandClaude Opus 4.5 4f3b2317ab wip: tool call structure investigation and e2e tests
- Add debug logging for tool call payloads in agent-stream-view
- Add e2e tests to verify tool call structure for Claude and Codex agents
- Include sidebar toggle and horizontal scroll improvements from previous work

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 10:30:29 +07:00
Mohamed BoudraandClaude Opus 4.5 ecd9ddb4a2 feat(sidebar): add "View More" button and all agents screen
- Make AgentList a pure display component (remove sorting/slicing logic)
- Add listFooterComponent prop to AgentList for extensibility
- Add SIDEBAR_AGENT_LIMIT (15) in sidebar, show "View More" when exceeded
- Create /agents screen showing full sorted agent list
- Update settings page styling

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 00:14:27 +07:00
Mohamed BoudraandClaude Opus 4.5 edb3258ae9 feat(sidebar): add interactive drag-to-open gesture
Sidebar now follows the finger during swipe-to-open gesture from anywhere
on the screen. Uses shared animation context between AppContainer and
SlidingSidebar for synchronized translateX values.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 12:46:53 +07:00
Mohamed BoudraandClaude Opus 4.5 719ef75f3d fix(agent-list): use gesture-handler FlatList for scroll compatibility
Import FlatList from react-native-gesture-handler instead of react-native
so it properly coordinates with parent gesture handlers. This allows
vertical scrolling inside the sidebar while still supporting swipe-to-close.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:55:26 +07:00
Mohamed BoudraandClaude Opus 4.5 9c09f32dca perf(agent-list): limit sidebar to 15 agents for fast rendering
Agents requiring attention are sorted to the top before slicing.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:22:00 +07:00
Mohamed BoudraandClaude Opus 4.5 dbf9b7e75d feat(sidebar): restructure layout and fix agent selection highlighting
- Move New Agent button to top header, Settings button to bottom footer
- Settings screen now uses MenuHeader for consistent hamburger menu
- Remove default background from agent list items (only show on hover/selected)
- Fix selected agent highlighting by parsing serverId:agentId from pathname
  instead of using useLocalSearchParams (which doesn't update on same-pattern route navigation)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:06:23 +07:00
Mohamed BoudraandClaude Opus 4.5 344ef87b10 fix(agent-list): close sidebar immediately on agent tap
Move onAgentSelect callback before navigation so the sidebar closes
instantly instead of waiting for the navigation to complete.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 21:21:33 +07:00
Mohamed BoudraandClaude Opus 4.5 020d244b26 feat(app): add sliding sidebar navigation for mobile
- Homepage now shows "New Agent" form, agent list moves to sidebar
- Hamburger menu replaces back arrow on all screens
- Mobile: full-screen sidebar overlay with swipe-to-close gesture
- Desktop: fixed 320px sidebar, toggle via hamburger
- Smooth bezier-eased animations (220ms)
- Sidebar closes on agent select (mobile only)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 21:16:27 +07:00
Mohamed Boudra a12af74c7b refactor(app): simplify agent list UI and remove unused sidebar component 2026-01-03 19:39:24 +07:00
Mohamed Boudra b3a1729df2 Use replace navigation for agent switches 2026-01-01 16:55:58 +07:00
Mohamed BoudraandClaude Opus 4.5 fe5e86d514 Add agent list sidebar on large screens
Show AgentList as a left sidebar (280px) when viewing an agent on
screens >= 768px wide. The current agent is highlighted with a
primary-colored border and accent background.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 11:43:14 +07:00
Mohamed BoudraandClaude Opus 4.5 eb48ae0f6b Make Running and Finished status mutually exclusive
Running takes priority over Finished indicator.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 23:14:54 +07:00
Mohamed Boudra c4b9a68c6b Replace needs attention with finished status 2025-12-23 23:11:48 +07:00
Mohamed BoudraandClaude Opus 4.5 6a9b57ae0c Simplify agent list UI and add bearer token auth for Codex MCP
- Replace SectionList with FlatList in agent list, sorting attention items to top
- Persist server selection preference in create agent modal
- Add bearer token authentication support for agent-control MCP endpoint
- Pass bearer token through Codex wrapper script for MCP auth

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:11:51 +07:00
Mohamed Boudra fb30160cda feat: add batch clear attention and orchestrator mode instructions 2025-12-20 05:57:54 +00:00
Mohamed BoudraandClaude 0f1758709d feat: add "Requires Attention" agent grouping feature
Implement a new UI section that surfaces agents requiring user attention at the top of the agent list. This includes agents that are running, have pending permissions, or have errors.

**Backend changes:**
- Add `requiresAttention` field to agent projections and SDK types
- Implement logic in AgentManager to detect attention states (running, pending permissions, errors)
- Add WebSocket message handler to notify clients of attention state changes
- Update session state to include attention tracking

**Frontend changes:**
- Add "REQUIRES ATTENTION" section in agent-list component with visual prominence
- Update useAggregatedAgents hook to expose `requiresAttention` agents
- Enhance session store to track and update attention states
- Add real-time updates via WebSocket for attention state changes
- Update type definitions across agent directory and stream types

Verified working via Playwright MCP testing on localhost:8081.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 11:27:08 +00:00
Mohamed BoudraandClaude 21d43bc249 perf: eliminate cascading rerenders with granular Zustand selectors
- Delete useDaemonSession hook that selected entire session object
- Move drafts to top-level store (not nested in sessions)
- Refactor all components to use granular useSessionStore selectors
- Fix infinite loop bugs from selector fallbacks (use stable constants)

Before: 15-20 component rerenders per keystroke
After: ~1-2 rerenders per keystroke

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:37:23 +07:00
Mohamed BoudraandClaude e346b4c026 Replace reconnecting badge with pull-to-refresh
UX improvements:
- Remove misleading "Reconnecting..." badge overlay
- Implement native pull-to-refresh gesture on agent list
- Add manual refresh capability via pull gesture

Technical changes:
- Add refreshSession() method to session context
- Add refreshAll() to useAggregatedAgents hook
- Integrate RefreshControl in AgentList component
- Use isRevalidating state for refresh indicator
- Apply theme colors to RefreshControl for consistency

Benefits:
- Familiar iOS/Android UX pattern
- No UI overlays blocking content
- Clear user action (pull) → clear feedback (refresh)
- Accurate state representation (syncing vs reconnecting)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 02:57:38 +00:00
Mohamed Boudra 34e0e21657 chore: add session perf instrumentation 2025-12-02 09:20:02 +00:00
Mohamed Boudra 755b314e51 Use FlatList for home agent list 2025-12-02 08:17:53 +00:00
Mohamed BoudraandClaude a01c3f9b73 Flatten home screen agent list and sort by activity
The agent list on the home screen now displays all agents in a single flat
list rather than grouped by host. Each row shows a host badge next to the
agent title so users can still identify which host an agent belongs to.
Agents are sorted globally by status (running first) then by most recent
activity, providing a unified view across all hosts.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 20:18:49 +01:00
Mohamed Boudra 0db0e1ad23 Clarify automatic host reconnection 2025-11-26 19:33:43 +01:00
Mohamed Boudra 5807f62f1a Remove active host dependency from UI actions 2025-11-26 18:04:40 +01:00
Mohamed Boudra 04d51fbe10 Rename daemon UI copy to host 2025-11-26 17:26:25 +01:00
Mohamed Boudra 59967aad87 chore: land multi-daemon rollout 2025-11-26 08:47:49 +00:00
Mohamed BoudraandClaude 4ab79b1a50 feat: add multi-daemon support with session routing and connection management
Introduce DaemonRegistry and DaemonConnections contexts for managing multiple server connections. Add session directory for aggregating agents across daemons, with automatic routing based on agent/server context.

Key changes:
- Add daemon profile management (add/edit/remove/set default)
- Implement connection state tracking with reconnection and exponential backoff
- Create useAggregatedAgents hook for unified agent list across daemons
- Add useDaemonSession and useDaemonRequest hooks for daemon-scoped operations
- Update agent routes to include serverId for proper session routing
- Add connection health indicators on home screen and settings
- Persist session snapshots per daemon for faster hydration on reconnect
- Guard screens gracefully when target daemon is offline
- Add React Query for consistent loading/error state management

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 08:25:02 +01: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 b046dae799 refactor: rebrand project from voice-dev to paseo across all packages and configs 2025-11-15 20:45:09 +01:00
Mohamed Boudra 2a02f41182 refactor: implement agent cancellation and deletion with UI controls
Add cancel button during agent runs, real-time mode toggle in all states, and agent deletion via long-press action sheet. Server now handles cancel_agent_request and delete_agent_request messages, cleaning up agent state and notifying clients.
2025-11-15 18:13:04 +01:00
Mohamed Boudra edcfdf970d refactor(ui): extract diff viewer and tool call parsers into reusable components 2025-11-15 16:28:57 +01:00
Mohamed BoudraandClaude 8cf808b14d refactor(agent): consolidate agent system into unified AgentManager with provider-based architecture
Replace separate ACP and agent-types modules with unified AgentManager using provider pattern. Migrate Claude and Codex implementations to provider-specific clients. Streamline session-agent integration, remove old ACP notification types, and introduce agent timeline events. Delete obsolete documentation and test files. Add AgentRegistry for persistence and agent-stream-based communication pattern.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-15 02:06:09 +01:00