Commit graph

201 commits

Author SHA1 Message Date
Mark Ruvald Pedersen
70c16d8a49 fix(web): use wss:// for HTTPS connections and apply cargo fmt
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
- Fix WebSocket protocol to use wss:// for HTTPS (ngrok) and ws:// for HTTP (localhost)
- This resolves the issue where Send button doesn't work when accessed via ngrok
- Apply cargo fmt to fix Rust code formatting issues

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 17:35:56 +05:30
shah
92825e57d6 fix: resolve project path display bug for directories with hyphens
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
This fixes a bug where project paths containing hyphens (e.g.,
`~/projects/flipside/data-discovery`) were incorrectly displayed
with hyphens replaced by slashes (`~/projects/flipside/data/discovery`).

The root cause was that `get_project_path_from_sessions()` only
checked the first line of JSONL session files for the `cwd` field.
Some session files have `null` or empty `cwd` values on the first line.

Changes:
- Modified `get_project_path_from_sessions()` to check up to 10 lines
  for a valid, non-empty `cwd` value instead of just the first line
- Added comprehensive unit tests covering the bug scenario and edge cases
- Fixed missing `installation_type` field in `claude_binary.rs` that
  was causing compilation errors

Tests: All 8 new unit tests pass

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-11 17:58:53 +05:30
Mohammed
e518c12671 fix(tauri): add windows support for claude binary detection
Some checks are pending
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
This commit adds support for detecting the Claude binary on Windows. The previous implementation used Unix-specific commands and paths, which caused the application to fail to locate the Claude binary on Windows systems. This commit introduces conditional compilation for Windows and Unix-like systems to fix the issue.
2025-10-10 14:28:34 +05:30
Mark Ruvald Pedersen
e3fff0d3b6 refactor: rename claudia to opcode throughout web server code
- Rename binary from claudia-web to opcode-web in Cargo.toml
- Update all references in justfile (web commands)
- Update console output messages in web_server.rs and web_main.rs
- Update documentation in web_server.design.md

This completes the project rename from Claudia to Opcode.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 14:13:30 +05:30
Mark Ruvald Pedersen
1f9f09f901 feat(web): add Claude installations endpoint and debug command
- Add /api/settings/claude/installations endpoint to web server
- Implement list_claude_installations handler
- Add 'just debug' command for troubleshooting Claude binary detection

This fixes the HTTP 404 error when accessing Claude Installation settings
in web mode. The debug command helps users verify their Claude installation
is detected correctly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 14:13:30 +05:30
Mark Ruvald Pedersen
84e8e90f50 fix(rust): resolve edition2024 dependency issue and compilation errors
- Pin image crate to 0.25.1 to avoid edition2024 requirement from moxcms
- Add missing installation_type field to ClaudeInstallation struct
- Update Cargo.lock with compatible dependencies

The moxcms-0.7.6 crate requires edition2024 which is not available in
stable Rust 1.82. Pinning the image crate to 0.25.1 avoids this
dependency while maintaining functionality.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 14:13:30 +05:30
Mark Ruvald Pedersen
726ffdb222 fix: resolve TypeScript compilation errors after rebase
- Remove unused tauriOpen import in ClaudeCodeSession
- Replace invoke() with apiCall() in api.ts for web compatibility
- Fix unused variable warnings

These changes ensure the frontend builds correctly with the new
web server mode while maintaining compatibility with Tauri desktop mode.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 14:13:30 +05:30
Mark Ruvald Pedersen
1b08ced83b feat: implement web server mode
Add comprehensive web server functionality to Claudia, enabling Claude
Code execution from mobile browsers while maintaining feature parity
with the desktop Tauri app.

Enable users to access Claude Code from mobile devices via web browser,
addressing the limitation of desktop-only access. This allows for:
- Mobile development workflows
- Remote access to Claude Code functionality
- Browser-based Claude execution without desktop app installation
- Cross-platform compatibility

- **Axum web server** with WebSocket support for real-time streaming
- **Dual-mode event system** supporting both Tauri desktop and DOM web
  events
- **Session management** with HashMap-based tracking of active WebSocket
  connections
- **Process spawning** for actual Claude binary execution with stdout
  streaming
- **REST API** mirroring all Tauri command functionality

- `web_server.rs`: Main server w/ WebSocket handlers and REST endpoints
- Real Claude binary execution with subprocess spawning
- WebSocket message streaming for real-time output
- Comprehensive session state management
- CORS configuration for mobile browser access

- `apiAdapter.ts`: Environment detection and unified API layer
- `ClaudeCodeSession.tsx`: Enhanced with DOM event support for web mode
- WebSocket client with automatic failover from Tauri to web mode
- Event dispatching system compatible with existing UI components

- **Build system**: `just web` command for integrated build and run
- **Binary detection**: Bundled binary first, system PATH fallback
- **Message protocol**: JSON-based WebSocket communication
- **Event handling**: Session-scoped and generic event dispatching
- **Error handling**: Comprehensive error propagation and UI feedback

-  Basic WebSocket streaming and session management
-  REST API endpoints for all core functionality
-  Event handling compatibility between Tauri and web modes
-  Error handling and WebSocket connection management
-  Process spawning and output streaming
-  Comprehensive debugging and tracing

- Session-scoped event dispatching needs refinement for multi-user
  scenarios
- Process cancellation requires additional implementation
- stderr handling not yet fully implemented
- Limited to single concurrent session per connection

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-10 14:13:30 +05:30
Vivek R
a05eb3cba0 "Update Claude Code Review workflow" 2025-10-10 12:50:49 +05:30
Vivek R
b8bf8bb626 "Update Claude PR Assistant workflow" 2025-10-10 12:50:49 +05:30
Izzo, Anthony M
821abadfab Fix missing installation_type field in ClaudeInstallation struct
Some checks are pending
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
- Add missing installation_type field to ClaudeInstallation initialization in find_nvm_installations() function at line 222
- This field is required by the struct definition but was omitted from one instance in the NVM discovery code
- The missing field caused Rust compilation to fail with error E0063 during tauri build
- Set installation_type to InstallationType::System to match other NVM installations in the same function
- Fixes build failure for aarch64-apple-darwin target and other platforms
2025-10-10 11:02:33 +05:30
Junyoung Eom
246e0c83e4 feat: improve Claude binary detection for active NVM environments
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
- Add support for NVM_BIN environment variable detection
- Prioritize currently active NVM environment over other installations
- Consolidate NVM-related logic in find_nvm_installations function
- Maintain backward compatibility with existing detection methods

This change helps users who manage Node.js versions with NVM by
ensuring Claudia detects the Claude binary from the currently
active Node.js environment, resolving issues where the wrong
Claude version might be selected despite having multiple NVM
installations available.
2025-09-26 14:27:34 +05:30
axin7
9f03d77a97 fix(input): improve IME composition handling across input components
- Add IME composition state tracking to prevent premature submission during input composition
- Handle onCompositionStart/End events in text inputs and textareas
- Replace onKeyPress with onKeyDown to better handle IME interactions
- Add proper IME detection in FloatingPromptInput for enhanced input handling
- Fix issues with Enter key triggering actions during IME composition in:
  - AgentExecution task input
  - ClaudeCodeSession fork dialog
  - TimelineNavigator checkpoint creation
  - WebviewPreview URL input
  - FloatingPromptInput main textarea

This ensures proper input behavior for users of CJK input methods and other IME systems.
2025-09-26 14:17:40 +05:30
axin7
83096a300c fix(ui): improve message scroll behavior to ensure bottom content visibility
- Implement dual-phase scrolling: virtualizer positioning + native scroll to bottom
- Reduce excessive bottom padding from pb-40 to pb-20 for better viewport usage
- Unify scroll behavior across auto-scroll, history loading, and manual scroll
- Fix issue where streamed content bottom couldn't reach viewport
2025-09-26 14:17:40 +05:30
anrgct
97c6651a7f fix: ligth-theme use white bash block
Some checks are pending
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
2025-09-26 11:52:49 +05:30
anrgct
938406e2e1 fix: light-theme use white code block 2025-09-26 11:52:49 +05:30
Vivek R
d9859ac522 feat(agents): enable editing existing agents
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
Add Edit action to card menu; reuse CreateAgent in edit mode; refresh list after save.
2025-09-07 17:42:00 +05:30
Vivek R
316cd89387 agents: remove temporary debug logs; fix manual import/export flows
- Frontend: Replace unsupported `read_text_file` with backend import/export; align filters to `.opcode.json`
- Backend: Normalize BOM and trim whitespace on file import
2025-09-07 17:42:00 +05:30
Vivek R
50fef7258b
Update README with recent demo
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
2025-09-05 21:26:15 +05:30
Vivek R
34e6c3663b agents: remove sidecar execution path; always use system binary
Some checks are pending
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
Delete sidecar helpers and imports

Replace conditional with direct spawn_agent_system

Avoid sidecar env issues with Node
2025-09-04 21:23:24 +05:30
Vivek R
8de67006c3 chore: bump version to v0.2.1
Some checks are pending
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
2025-09-03 22:52:07 +05:30
Vivek R
283cb500b4 fix: update discord invite link 2025-09-03 22:38:31 +05:30
Vivek R
2350ed427e chore: sync version/config for v0.2.0
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
2025-08-31 20:32:27 +05:30
Vivek R
f42acb7c92 style(shimmer): update rotating-symbol color to purple (#8B5CF6) 2025-08-31 17:44:42 +05:30
Vivek R
12915189c5 feat(ui): use bundled app icon as favicon; remove legacy vite/tauri icons\n\n- Remove <link rel=icon> pointing to /vite.svg in index.html\n- Programmatically set favicon to bundled asterisk-logo.png in src/main.tsx\n- Delete unused public icons: vite.svg and tauri.svg\n\nRationale: keeps assets bundled, avoids reliance on /public, and aligns app branding. 2025-08-31 17:43:11 +05:30
Vivek R
c305cfa5ce docs(agents): clarify comment in fetch_github_agents for .opcode.json agent files
Some checks are pending
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
2025-08-31 17:29:09 +05:30
Vivek R
1cdfea75e0 chore(cc_agents): rename agent config files from .claudia.json to .opcode.json
Aligns with new .opcode.json convention used across the app.
2025-08-31 17:29:09 +05:30
Kiran Johns
37a615c081 added anonymised posthog events 2025-08-31 17:25:39 +05:30
Vivek R
0726d6c1ec docs(readme): update project README 2025-08-31 16:46:59 +05:30
Vivek R
0e4d10c6c1 chore: update package configuration 2025-08-31 16:46:27 +05:30
Vivek R
adbe87e76c feat(ui): update app screens and analytics; remove unused asset 2025-08-31 16:46:27 +05:30
Vivek R
ce8566332b chore(tauri): update app metadata and configuration 2025-08-31 16:46:26 +05:30
Vivek R
b5ae4928f1 chore(icons): refresh app icons and add platform assets 2025-08-31 16:46:26 +05:30
Mufeed VH
6b63e50da0
Rename claudia -> opcode + Add disclaimer
Some checks are pending
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
Updated logo URL and added notice about project affiliation.
2025-08-30 19:32:33 +05:30
Vivek R
0675aafcc4 Rename Gooey to opcode across app and docs 2025-08-30 17:32:57 +05:30
Vivek R
f005827d5c Rename Claudia to Gooey across app and docs
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
2025-08-26 02:43:32 +05:30
Vivek R
2562bdc2d7 docs: add Discord invite link to README
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
2025-08-14 17:53:35 +05:30
Vivek R
1fa2106d72 feat(theme): default to gray theme when no preference exists
Some checks are pending
Build Linux / Build Linux x86_64 (push) Waiting to run
Build Test / Build Test (Linux ARM64) (push) Waiting to run
Build Test / Build Test (Linux) (push) Waiting to run
Build Test / Build Test (Windows) (push) Waiting to run
Build Test / Build Test (macOS) (push) Waiting to run
Build Test / Build Test Summary (push) Blocked by required conditions
- Use  as the initial theme and when no saved preference is found

- Applies  class on first load for consistent styling
2025-08-14 01:33:30 +05:30
Vivek R
4a6b1684bc perf(api): mirror app settings in localStorage to avoid startup flicker
- Read from localStorage in  when available

- Mirror writes in  for instant availability on next launch

- Keeps DB as source of truth; localStorage is a best-effort cache
2025-08-14 01:33:30 +05:30
Vivek R
a842181870 feat(startup): add startup intro overlay and user preference toggle
- Introduce  overlay shown on app launch

- Integrate visibility controlled via  setting

- Add toggle in  with immediate persistence and analytics event

- Add shimmer overlay and brand text animation utilities to
2025-08-14 01:33:30 +05:30
Vivek R
6775ee2d0c chore(ci): make release workflow reusable for every release
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux ARM64) (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
2025-08-12 14:50:59 +05:30
Vivek R
0ddae3e34e ci: update build-test workflow and tauri cargo files 2025-08-12 14:00:37 +05:30
Vivek R
ee4dc494f5 feat(titlebar): integrate custom titlebar UI; update app entry and global styles
Some checks failed
Build Linux / Build Linux x86_64 (push) Has been cancelled
Build Test / Build Test (Linux) (push) Has been cancelled
Build Test / Build Test (Windows) (push) Has been cancelled
Build Test / Build Test (macOS) (push) Has been cancelled
Build Test / Build Test Summary (push) Has been cancelled
2025-08-11 15:11:35 +05:30
Vivek R
a9e74f6e5b feat(titlebar): macOS-style traffic light controls and action dropdown
- Window minimize/maximize/close via Tauri API\n- Hover-revealed control icons, improved spacing\n- Agents/Usage buttons with tooltips and motion\n- More options dropdown for Claude, MCP, About
2025-08-11 15:11:35 +05:30
Vivek R
b16218cee5 feat(ui): transparent window and rounded corners for Tauri
- Add drag-region helpers (.tauri-drag/.tauri-no-drag)\n- Apply transparent background and clip-path rounding\n- Define theme tokens and typography utilities\n- Refine scrollbars and markdown editor/prose styles
2025-08-11 15:11:35 +05:30
Vivek R
0331489a74 chore(session): simplify restored SessionSummary fields
- Only set minimal first_message for restored sessions; drop placeholder metrics
- Align with API expectations and avoid misleading defaults
2025-08-11 15:11:35 +05:30
Vivek R
11c24e78be refactor(ui): remove unused props/imports and delegate project path selection to tabs\n\n- Remove unused icons/components and dead handlers (e.g., directory selection) across UI components\n- Drop unused callbacks from props (onBack, onMCPClick, onUsageClick, etc.)\n- Fix createAgentsTab reference in App.tsx\n- Silence TypeScript lints by renaming unused vars (e.g., _error, _className)\n- Centralize project path selection in tab controls 2025-08-11 15:11:35 +05:30
Kiran Johns
9a692feec1 fix corners and added titlebar drag 2025-08-11 15:11:35 +05:30
Kiran Johns
7ced717b86 implement tab and session persistence
- Add tab persistence service to save/restore tabs to localStorage
- Add session persistence service to save/restore chat session data
- Update TabContext to restore saved tabs and session data on app startup
- Add settings toggle to enable/disable tab persistence
- Fix TypeScript errors in AgentRunWithMetrics interface
- Sessions now resume properly when app is reopened

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 15:11:35 +05:30
Kiran Johns
5d210e2b9e added custom tooltips 2025-08-11 15:11:35 +05:30