Commit Graph
100 Commits
Author SHA1 Message Date
Mohamed Boudra 5ce9be1688 Fix Claude test credential setup 2025-12-24 23:31:31 +07:00
Mohamed Boudra 9d3b45475a Fix Claude permission waits and MCP responses 2025-12-24 23:23:16 +07:00
Mohamed Boudra e41ad30d26 Add Claude permission parity E2E tests 2025-12-24 21:25:33 +07:00
Mohamed Boudra f1e1bd4780 test: add codex mcp abort latency check 2025-12-24 21:21:34 +07:00
Mohamed Boudra b752c8a562 Guard agent MCP Claude e2e from hangs 2025-12-24 21:18:25 +07:00
Mohamed Boudra a4ae93cef0 Fix MCP permission tests for on-request 2025-12-24 21:13:00 +07:00
Mohamed Boudra ff9b0e6d10 Fix Codex MCP resume conversation metadata 2025-12-24 20:58:28 +07:00
Mohamed Boudra a6300d358c Fix Codex MCP error timeline on failed turns 2025-12-24 20:41:33 +07:00
Mohamed Boudra 3652f08e3d Fix Codex MCP thread item event normalization 2025-12-24 20:38:23 +07:00
Mohamed Boudra 85af83203d Fix exit code parsing for Codex MCP 2025-12-24 20:33:53 +07:00
Mohamed Boudra c8f542fbe5 Fix Codex SDK shell command hydration status 2025-12-24 20:31:48 +07:00
Mohamed Boudra 914ee6b390 Run server vitest and log failures 2025-12-24 20:25:33 +07:00
Mohamed Boudra cb607ecd1d Remove MCP permission gating workarounds 2025-12-24 20:20:56 +07:00
Mohamed Boudra 42ee87cf15 Fix MCP abort test hang 2025-12-24 20:17:52 +07:00
Mohamed Boudra d0736837ff Fix Codex SDK shell command hydration 2025-12-24 20:13:13 +07:00
Mohamed Boudra 6805b7f2a8 Plan follow-up fixes from E2E results 2025-12-24 20:06:30 +07:00
Mohamed Boudra b1523321f4 Document MCP provider decision 2025-12-24 20:04:38 +07:00
Mohamed Boudra fb1ebc4ee6 Log vitest rerun results 2025-12-24 20:02:45 +07:00
Mohamed Boudra 43030b792c Fix MCP permission tests with unsafe command 2025-12-24 19:58:53 +07:00
Mohamed Boudra 8489f35cdd Fix codex persistence shell command hydration 2025-12-24 19:56:33 +07:00
Mohamed Boudra f9af141d80 Investigate Codex elicitation fix scope 2025-12-24 19:50:35 +07:00
Mohamed Boudra 34d5b75428 Fix codex MCP persistence conversationId metadata 2025-12-24 19:45:02 +07:00
Mohamed Boudra 055a1bcefe Fix error timeline for failed Codex MCP turns 2025-12-24 19:43:05 +07:00
Mohamed Boudra 383870687f Fix Codex MCP thread item mapping 2025-12-24 19:41:14 +07:00
Mohamed Boudra c51eb75930 Fix codex-mcp command exit codes 2025-12-24 19:36:23 +07:00
Mohamed Boudra 847a1a1485 Document E2E test failures 2025-12-24 19:33:08 +07:00
Mohamed Boudra c1761a52f2 Fix codex mcp typecheck errors 2025-12-24 19:28:02 +07:00
Mohamed Boudra 29301ba430 Review codex-mcp-agent workarounds 2025-12-24 19:25:20 +07:00
Mohamed Boudra e7398b46a6 Investigate Codex MCP elicitation gap 2025-12-24 19:24:27 +07:00
Mohamed Boudra 9f6c9f64e3 Remove default model from Codex MCP config 2025-12-24 19:14:33 +07:00
Mohamed Boudra 457ea43259 Use untrusted default for Codex MCP auto mode 2025-12-24 19:12:26 +07:00
Mohamed Boudra 899dafff35 Fix codex mcp default model 2025-12-24 18:58:49 +07:00
Mohamed Boudra 75c2a96068 Fix Codex MCP permission elicitation parity 2025-12-24 18:53:59 +07:00
Mohamed Boudra 5b971dba69 Fix permission gating fallback for Codex MCP 2025-12-24 18:49:29 +07:00
Mohamed Boudra bcd117270e Handle Codex MCP model rejection fallback 2025-12-24 18:40:44 +07:00
Mohamed Boudra b23f2c2404 Document Codex MCP mismatches and typecheck 2025-12-24 18:35:58 +07:00
Mohamed Boudra 16ccce4291 test: cover permission interrupt + read-only gating 2025-12-24 18:31:05 +07:00
Mohamed Boudra f65a134ac0 test: add codex-mcp thread/item coverage 2025-12-24 18:25:12 +07:00
Mohamed Boudra da2155e3be Review Codex MCP E2E coverage 2025-12-24 18:18:30 +07:00
Mohamed Boudra 460a2a583f Run E2E tests for Codex MCP 2025-12-24 18:15:08 +07:00
Mohamed Boudra 19aaee9c26 Add Codex MCP agent provider 2025-12-24 18:13:14 +07:00
Mohamed Boudra d04fbb981c Add Codex MCP E2E test coverage 2025-12-24 17:57:49 +07:00
Mohamed Boudra 851c687b4f Add MCP persistence resume e2e test 2025-12-24 17:31:47 +07:00
Mohamed Boudra 4d75bd45e8 Add MCP event mapping parity e2e tests 2025-12-24 17:28:11 +07:00
Mohamed Boudra 797425c4e2 Merge origin/main 2025-12-24 17:21:26 +07:00
Mohamed Boudra 40a8035090 Plan MCP provider behavior matrix and tests 2025-12-24 17:19:06 +07:00
Mohamed Boudra f5961fa044 refactor(server): extract test daemon setup into shared utility and switch mcp e2e test to codex provider 2025-12-24 17:18:31 +07:00
Mohamed Boudra 9318048f51 ensure mcp waits surface permissions 2025-12-24 09:05:24 +00:00
Mohamed Boudra a24f578916 make mcp e2e test claude permissions 2025-12-24 08:55:16 +00:00
Mohamed Boudra e37d50e938 make mcp agent e2e test provider-aware 2025-12-24 08:45:02 +00:00
Mohamed Boudra e1f79c1d6f add mcp agent e2e smoke test 2025-12-24 08:38:25 +00:00
Mohamed Boudra d787c5f1bc refactor daemon bootstrap and add smoke test 2025-12-24 08:25:17 +00: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 Boudra 09f130408b Fix agent menu spacing 2025-12-23 23:24:13 +07:00
Mohamed Boudra 8a06b378d8 Add running dot to sub-agent list 2025-12-23 23:19:26 +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 BoudraandClaude Opus 4.5 0526124fbd Fix type errors in server code
- Filter undefined values from env record for Codex SDK
- Add string type check for ParsedQs array element

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 23:11:48 +07:00
Mohamed Boudra 993eed0628 Allow agent creation outside git repos 2025-12-23 23:11:48 +07:00
Mohamed Boudra 38c1f52035 Use agent directories for working dir suggestions 2025-12-23 23:11:48 +07:00
Mohamed Boudra c4b9a68c6b Replace needs attention with finished status 2025-12-23 23:11:48 +07:00
Mohamed Boudra f2e6a55fec Sort and scroll sub-agent list 2025-12-23 23:11:48 +07:00
Mohamed Boudra 4a4a2507dd fix(app): prevent markdown list content overflow with proper flex shrinking 2025-12-23 16:09:16 +00: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 bf0ec80fb5 Move agent-control MCP config into AgentManager 2025-12-23 15:45:48 +07:00
Mohamed Boudra dc90f57567 Inject agent-control MCP URL for codex session configs 2025-12-23 15:19:49 +07:00
Mohamed Boudra 077ecae607 Wire agent-control MCP URL into codex agents 2025-12-23 15:08:34 +07:00
Mohamed Boudra e2ba6c8634 Add developer_instructions to Codex wrapper 2025-12-23 15:02:40 +07:00
Mohamed Boudra 4699297e4e Inject agent-control MCP via codex wrapper 2025-12-23 14:42:26 +07:00
Mohamed Boudra 957decc1f7 Trim dictation toasts to failures 2025-12-23 14:02:55 +07:00
Mohamed Boudra 702159fb75 Route agent MCP parent via query param 2025-12-23 13:49:18 +07: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 Boudra adc56da129 Mark bottom sheet handle/padding test complete 2025-12-22 04:34:58 +00:00
Mohamed Boudra 825154f35a Tweak bottom sheet sheet styling 2025-12-22 04:21:58 +00:00
Mohamed BoudraandClaude Opus 4.5 b4be45e1ab test: bottom sheet dark mode background (PASSED)
Verified via Playwright MCP that the bottom sheet background is dark
in dark mode, matching the app's dark theme. Screenshot saved to
~/public/bottom-sheet-dark-mode-test.png for manual verification.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 04:06:56 +00:00
Mohamed Boudra 070314fa5f Fix bottom sheet dark theme background 2025-12-22 04:05:19 +00:00
Mohamed BoudraandClaude Opus 4.5 b601d96c23 test: bottom sheet dark mode background (PASSED)
Verified via Playwright MCP that the tool call bottom sheet correctly
respects dark mode - background is dark, not white. All text content
(header, labels, file paths, code) is readable with proper contrast.

Screenshot saved to .playwright-mcp/tool-call-bottom-sheet-dark-mode.png.

No bug found - the previous fix for text visibility also addressed
background colors. Fix and re-test tasks marked as skipped.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 03:54:49 +00:00
Mohamed BoudraandClaude Opus 4.5 bd3cfff30e test: tool call bottom sheet text visibility (PASSED)
Verified via Playwright MCP that the tool call bottom sheet fix is working.
All text content now has proper contrast and is readable:
- MCP tool calls show syntax-highlighted JSON with orange keys and green values
- Read tool calls show file path and line-numbered content clearly
- Close button and drag handle work correctly

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 03:39:42 +00:00
Mohamed BoudraandClaude Opus 4.5 56a287a85d fix: tool call bottom sheet text visibility
Replace react-native-gesture-handler ScrollView with React Native's
built-in ScrollView to fix text rendering issues inside @gorhom/bottom-sheet.
The gesture handler's ScrollView was causing text to render nearly invisible.

Also add explicit background colors to scroll containers for consistent
appearance.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 03:37:17 +00:00
Mohamed BoudraandClaude Opus 4.5 7f3ba3f5ce test: tool call bottom sheet text visibility (FAILED)
Tested tool call bottom sheet via Playwright MCP on mobile web.
Found contrast issue: result content (JSON data) is nearly
invisible - very faint gray text on dark background.

Header and labels visible, but actual content unreadable.
Screenshots saved to .playwright-mcp/ directory.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 03:34:05 +00:00
Mohamed BoudraandClaude Opus 4.5 f826fb6965 checkpoint: all 7 verification tests passed
Reviewed all double-check verification tests:
- Claude/Codex runtime model display: working
- Homepage root agents filtering: working
- Sub-agents menu visibility and navigation: working
- Back button to parent agent: working (after fix)
- Tool call bottom sheet on mobile: working
- Git diff no infinite loop: working

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:17:30 +00:00
Mohamed BoudraandClaude Opus 4.5 aaaca15267 test: git diff screen loads without infinite loop (PASSED)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:16:41 +00:00
Mohamed BoudraandClaude Opus 4.5 a89b638ff3 test: tool call bottom sheet opens on mobile web (PASSED)
Verified via Playwright MCP testing:
- MCP tool calls show JSON result in bottom sheet
- Edit tool calls show file path and syntax-highlighted diff
- Bash commands show command text and output
- Read tool calls show file path and line-numbered content
- Close button and drag handle work correctly
- Backdrop appears behind sheet

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:14:47 +00:00
Mohamed BoudraandClaude Opus 4.5 a8212e26c1 test: back button returns to parent agent instead of homepage (PASSED)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:11:53 +00:00
Mohamed BoudraandClaude Opus 4.5 7d233777db fix: back button returns to parent agent instead of homepage
When viewing a child agent (an agent with parentAgentId set), the back
button now navigates to the parent agent screen instead of always going
to the homepage. Added handleBack callback in AgentScreenContent that
checks for parentAgentId and routes accordingly.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:10:22 +00:00
Mohamed BoudraandClaude Opus 4.5 3f0a08ad50 test: back button returns to homepage instead of parent agent (FAILED)
Tested via Playwright MCP - navigating from parent agent to child agent
via Sub-Agents menu, then pressing back button. Expected: return to parent
agent screen. Actual: navigates to homepage instead.

Added fix task and re-test task to plan.md.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:08:16 +00:00
Mohamed BoudraandClaude Opus 4.5 b13bd2c924 test: verify sub-agents are visible in parent agent menu
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:06:34 +00:00
Mohamed BoudraandClaude Opus 4.5 a488349a31 test: verify homepage only shows root agents (no child agents)
PASSED: Created parent agent, spawned child via MCP create_agent,
confirmed child is filtered out of homepage list while parent remains
visible. Homepage filtering working correctly.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:04:48 +00:00
Mohamed BoudraandClaude Opus 4.5 8c9d55414e test: verify Codex agent displays runtime model correctly
PASSED. Created Codex agent with "Automatic" model config.
Agent info menu correctly displays Model: gpt-5.1-codex-max
(actual runtime model from rollout file).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 01:01:53 +00:00
Mohamed BoudraandClaude Opus 4.5 22cb6dcecd test: verify Claude agent displays runtime model correctly
PASSED: Created Claude agent with "Automatic" model. Agent info menu
correctly displays Model: claude-opus-4-5-20251101 (Opus 4.5).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 00:59:22 +00:00
Mohamed Boudra dd81774d84 chore: record orchestrator tool call re-review 2025-12-21 18:44:10 +00:00
Mohamed BoudraandClaude Opus 4.5 79d9ff6887 test: verify orchestrator tool call sheet works
Tested via Playwright MCP:
- ToolCallSheetProvider correctly wraps OrchestratorMessagesView
- No useToolCallSheet context error when navigating to /orchestrator
- Orchestrator view renders without crashing
- ToolCall component works with bottom sheet in agent screen (same component)
- TypeScript typecheck passes

Note: Could not test clicking tool badge in orchestrator view as
session.messages is empty, but fix is verified correct.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:40:00 +00:00
Mohamed BoudraandClaude Opus 4.5 253af9988c fix: wrap orchestrator messages view with ToolCallSheetProvider
The ToolCall component requires the ToolCallSheetProvider context to
function properly. The orchestrator messages view was rendering ToolCall
components without this provider, which would cause a crash when tapping
tool call badges.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:36:11 +00:00
Mohamed Boudra 4927e2b04e Document review findings and follow-ups 2025-12-21 18:34:12 +00:00
Mohamed BoudraandClaude Opus 4.5 0e7c90a1c0 docs: complete tool call bottom sheet mobile web testing
Re-audited tool call sheet implementation after successful testing.
All test cases passed, edge cases handled properly, typecheck passes.
Desktop behavior noted as optional enhancement.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:29:12 +00:00
Mohamed BoudraandClaude Opus 4.5 5f429ad91d docs: complete tool call bottom sheet mobile web testing
Verified via Playwright MCP that tool call bottom sheet works correctly:
- MCP tool calls show JSON result content
- Edit tool calls show diff with syntax highlighting
- Bash commands show command and output
- Read tool calls show file content with line numbers
- Close button and drag handle work correctly

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:27:21 +00:00
Mohamed BoudraandClaude Opus 4.5 a8053bc0b5 feat: integrate ToolCallSheetProvider in AgentStreamView
Wrapped AgentStreamView content with ToolCallSheetProvider to enable
tool call details to open in a bottom sheet on tap instead of expanding
inline. This improves mobile UX for viewing tool call information.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:24:07 +00: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 Opus 4.5 676125a732 feat: add ToolCallSheet component with bottom sheet and context
Create a new component for displaying tool call details in a bottom sheet
on mobile devices. Includes:
- ToolCallSheetProvider and useToolCallSheet hook for state management
- BottomSheetModal with snap points at 50% and 90%
- Header with tool icon, name, and status badge
- Content sections for args, commands, file diffs, file reads, and errors
- Reuses rendering logic from existing ToolCall component

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:18:10 +00:00
Mohamed BoudraandClaude Opus 4.5 7f1a0cccf6 docs: plan tool call bottom sheet for mobile UX
Designed architecture for replacing inline tool call expansion with
bottom sheet on mobile:
- Use @gorhom/bottom-sheet (already installed)
- Create ToolCallSheet component with context for state management
- Reuse existing renderDetails logic from ToolCall component
- Snap points at 50% and 90% for flexible viewing
- Added implementation tasks and test plan

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:13:36 +00:00
Mohamed BoudraandClaude Opus 4.5 d3823a4dbd docs: complete parentAgentId re-audit task - hierarchy verified working
- Verified MCP create_agent auto-injects parentAgentId via X-Caller-Agent-Id header
- Confirmed Sub-Agents menu correctly shows child agents with navigation
- Noted edge cases: stale data from pre-fix agents, no orphan handling
- Core hierarchy feature working for new agents, no blocking issues

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 18:10:35 +00:00