Commit Graph
65 Commits
Author SHA1 Message Date
Mohamed Boudra d128a32d2f Unify app connection state around host runtime 2026-02-20 10:37:59 +07:00
Mohamed Boudra 170ee27813 feat: improve agent workspace flows and directory suggestions 2026-02-16 23:19:01 +07:00
Mohamed Boudra 4948ba581a Update files 2026-02-13 05:08:26 +00:00
Mohamed Boudra 6fe1c9a338 fix: gate agent not-found on initialize and load all-agents via RPC 2026-02-09 16:50:25 +07:00
Mohamed Boudra 9a4afe82d2 Merge remote-tracking branch 'origin/main' into keyword-nav-plan 2026-02-04 12:55:39 +07:00
Mohamed Boudra 1e2fbb04ff Make agent titles regular and fix Cmd+B/Cmd+E hotkeys 2026-02-04 11:13:48 +07:00
Mohamed Boudra 49a9fdeabc Fix keyboard shortcuts and DRY agent status dot 2026-02-04 11:08:33 +07:00
Mohamed Boudra 10a2ef34a3 Update files 2026-02-04 09:29:26 +07:00
Mohamed BoudraandGitHub 469a25c724 feat: add live model and thinking option preferences UI (#8)
* feat: add live model and thinking option preferences UI

* refactor: remove agent variant support and clean up thinking options

* feat: live model + thinking presets (RPC)
2026-02-04 08:18:15 +07:00
Mohamed Boudra d158dcf77a Update files 2026-01-28 15:41:21 +07:00
Mohamed Boudra f7935f9cc1 Update files 2026-01-28 15:25:12 +07:00
Mohamed Boudra 96b211a2cf Update files 2026-01-28 13:25:48 +07:00
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