Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
457 commits
Select commit Hold shift + click to select a range
6c5a895
Add vitest dependency and exclude test files from build
chriswritescode-dev Dec 19, 2025
c8fa8ec
Fix compact command validation flow (#28)
chriswritescode-dev Dec 19, 2025
f853038
Import existing OpenCode config on initialization and fix schema types
chriswritescode-dev Dec 20, 2025
6d02355
Add todo tool rendering components for task management
chriswritescode-dev Dec 21, 2025
6393155
Fix pnpm resources (#29)
chriswritescode-dev Dec 21, 2025
55b2b39
Add message undo/refresh features and stop audio floating button (#30)
chriswritescode-dev Dec 21, 2025
15f2816
Bump version to 0.4.4
chriswritescode-dev Dec 21, 2025
9321434
Add message editing state management and UI improvements
chriswritescode-dev Dec 21, 2025
fc29ce5
Move TTS stop button from App to SessionDetail
chriswritescode-dev Dec 21, 2025
12ff19e
Use API as source of truth for branch switcher current branch
chriswritescode-dev Dec 21, 2025
97d0b9f
Add initial commit for local repos, filter sessions by directory, rem…
chriswritescode-dev Dec 21, 2025
04420cc
Add white border to send button in dark theme
chriswritescode-dev Dec 21, 2025
9dcf8b6
Update model and scroll buttons to match send button height with dark…
chriswritescode-dev Dec 21, 2025
12829ef
Improve mobile UX for message actions and scroll button; add revert m…
chriswritescode-dev Dec 21, 2025
19d7297
Add TTS settings configuration and context management
chriswritescode-dev Dec 22, 2025
8024e7a
Add web speech synthesizer utility
chriswritescode-dev Dec 22, 2025
1135ec4
Fix TypeScript linting error in webSpeechSynthesizer
chriswritescode-dev Dec 22, 2025
7d41556
Bump version to 0.4.5
chriswritescode-dev Dec 22, 2025
154f552
Improve branch switcher caching and repo list mobile layout
chriswritescode-dev Dec 22, 2025
e02856e
Fix button styling and repo list layout
Dec 22, 2025
338ea22
Adjust repo list container height calculations
chriswritescode-dev Dec 22, 2025
a17923f
Update README with TTS features and Mermaid diagram support
chriswritescode-dev Dec 22, 2025
eebeb70
Update UI styling for mode toggle and session indicators
chriswritescode-dev Dec 22, 2025
159afb2
Remove console.log debug statements and cleanup debug code
chriswritescode-dev Dec 25, 2025
424aa9e
Add RepoMcpDialog component for MCP server management
chriswritescode-dev Dec 25, 2025
2f520ba
Fix toast notification ID conflict in createConfig
chriswritescode-dev Dec 25, 2025
4650053
refactor RepoCard component layout and interaction
chriswritescode-dev Dec 25, 2025
e9fde65
Add global permission request system with centralized context and dialog
chriswritescode-dev Dec 26, 2025
108c837
Extract RepoDetail header into reusable component with mobile dropdow…
chriswritescode-dev Dec 26, 2025
76f9cb8
Bump version to 0.5.0
chriswritescode-dev Dec 26, 2025
56f2951
Use MoreVertical icon in dropdown menus to match RepoDetailHeader
chriswritescode-dev Dec 26, 2025
54345a0
Make branch switcher fill width in mobile dropdown menu
chriswritescode-dev Dec 26, 2025
29c83fe
Improve UI interactions and responsiveness across components
chriswritescode-dev Dec 26, 2025
5e540b2
Make branch switcher dropdown scrollable on mobile
chriswritescode-dev Dec 26, 2025
ab97f71
Bump version to 0.5.1
chriswritescode-dev Dec 26, 2025
7ee6c2b
Add diff expansion controls with ContentDiffViewer and CodePreview co…
chriswritescode-dev Dec 26, 2025
26faea4
Fix message editing state and stream detection logic
chriswritescode-dev Dec 26, 2025
87bfd02
Bump version to 0.5.2
chriswritescode-dev Dec 26, 2025
b362044
Hide BranchSwitcher on mobile, move to dropdown menu
Dec 27, 2025
44a1044
Update README screenshots with new images
chriswritescode-dev Dec 27, 2025
a1376ca
Reorganize screenshots section with table layout
chriswritescode-dev Dec 27, 2025
f9a32a7
Fix inline diff screenshot URL
chriswritescode-dev Dec 27, 2025
ab2efce
Add width constraint to inline diff screenshot
chriswritescode-dev Dec 27, 2025
be58930
Reduce inline diff screenshot width to 500px
chriswritescode-dev Dec 27, 2025
2da394b
Add height constraint to inline diff screenshot
chriswritescode-dev Dec 27, 2025
06850de
Fix inline diff to match mobile column layout
chriswritescode-dev Dec 27, 2025
f512951
Fix chat screenshot sizing in README
chriswritescode-dev Dec 27, 2025
9e99c30
Fix/permission request directory (#31)
chriswritescode-dev Dec 27, 2025
1b35c2d
Fix performance optimizations for permission handling and session man…
chriswritescode-dev Dec 27, 2025
1e65430
Remove duplicate session status fetching to fix race condition
Dec 27, 2025
9329170
Fix empty file editing in file browser
chriswritescode-dev Dec 27, 2025
9f00f22
Improve permission dialog UI and update Python package documentation
chriswritescode-dev Dec 27, 2025
3402627
Fix compaction toast to persist until completion
chriswritescode-dev Dec 27, 2025
5e0bef4
Bump version to 0.5.3
chriswritescode-dev Dec 27, 2025
151877c
Reorder branch switcher dropdown: view changes and add branch at top,…
chriswritescode-dev Dec 27, 2025
d122ad2
Add support for GitHub shorthand repo URLs
chriswritescode-dev Dec 28, 2025
6015d80
Add config rollback and startup error recovery
chriswritescode-dev Dec 29, 2025
f370eb7
Improve OpenCode config error handling and toast notifications
chriswritescode-dev Dec 29, 2025
101367b
Add MCP server search functionality to repo dialog
chriswritescode-dev Dec 29, 2025
56844ac
Add image and PDF attachment support with drag-drop and paste
chriswritescode-dev Dec 29, 2025
8f263fc
Bump version to 0.5.4
chriswritescode-dev Dec 29, 2025
f24f96a
Add Azure deployment scripts with YOLO mode and vision-disabled config
dzianisv Dec 30, 2025
8459ed2
feat: build OpenCode from VibeTechnologies/opencode fork
dzianisv Dec 30, 2025
babdefb
docs: explain why we use VibeTechnologies/opencode fork
dzianisv Dec 30, 2025
2ba3834
fix: download pre-built OpenCode from VibeTechnologies/opencode release
dzianisv Dec 30, 2025
eceb333
test: add integration tests for WebFetch context overflow fix
dzianisv Dec 30, 2025
20ee060
feat: support OPENCODE_FORK_REPO for runtime OpenCode installation fr…
dzianisv Dec 30, 2025
e1632f2
fix: use VibeTechnologies/opencode-manager as default repo for deploy…
dzianisv Dec 30, 2025
37797c6
chore: update pnpm-lock.yaml
dzianisv Dec 30, 2025
a5100a7
chore: remove stale axios dependency from lockfile
dzianisv Dec 30, 2025
b8e9825
fix: correct OpenCode fork build to use --single flag and proper bina…
dzianisv Dec 30, 2025
c84b3b0
fix: restore working directory after building OpenCode from fork
dzianisv Dec 30, 2025
847ac61
docs: add Azure VM deployment instructions and implementation details…
dzianisv Dec 30, 2025
4b89c56
feat: add kubectl and mount kubeconfig for k3s access
dzianisv Dec 31, 2025
fc88e08
fix: use default kubeconfig location without KUBECONFIG env var
dzianisv Dec 31, 2025
091b919
feat: add web terminal and auto-approve permissions
dzianisv Dec 31, 2025
5d8f219
Fix: Update terminal handling, CORS, and build configuration
dzianisv Jan 1, 2026
aace3af
fix(backend): improve version parsing to avoid matching IP addresses
dzianisv Jan 1, 2026
8b6e5a7
fix(terminal): improve logging and add repair script for missing work…
dzianisv Jan 1, 2026
f1b34b0
docs: add vibe coding article and improve deploy script
dzianisv Jan 1, 2026
afc35b9
Update documentation
dzianisv Jan 1, 2026
eabf894
feat: add voice interface (STT, TTS, Talk Mode) with multi-arch Docke…
dzianisv Jan 3, 2026
f064dda
fix: update pnpm lockfile
dzianisv Jan 3, 2026
7841c3c
fix: add TalkModeConfig to UserPreferences type
dzianisv Jan 3, 2026
b9a07d4
feat: add voice E2E test script for STT/TTS
dzianisv Jan 3, 2026
7107113
docs: add voice E2E test instructions to AGENTS.md, default to localhost
dzianisv Jan 3, 2026
c800635
fix: update secrets file with new tunnel URL on --update and --status
dzianisv Jan 3, 2026
3edd0e2
fix: get latest tunnel URL from cloudflared logs (not first)
dzianisv Jan 3, 2026
c8c6d53
feat: integrate Chatterbox TTS as a local text-to-speech provider
dzianisv Jan 3, 2026
14264a7
chore: remove .venv-chatterbox from git tracking and add to ignore list
dzianisv Jan 3, 2026
ee7a07c
fix: downgrade onnxruntime-web to 1.17.3 for VAD compatibility
dzianisv Jan 4, 2026
7805f5c
ci: build Docker image on push to main, update tagging strategy
dzianisv Jan 5, 2026
10f3ad2
ci: add workflow_dispatch trigger for manual runs
dzianisv Jan 5, 2026
6b68032
chore: use pre-built GHCR image instead of local build
dzianisv Jan 5, 2026
7e5968e
Enable Chatterbox TTS with CPU-only PyTorch
dzianisv Jan 5, 2026
7804498
Build amd64 only, free disk space before build (Chatterbox TTS needs …
dzianisv Jan 5, 2026
5700845
fix: allow Chatterbox TTS to work without API key requirement
dzianisv Jan 5, 2026
5a6e6fe
fix: preserve cloudflare tunnel URL on update and use dzianisv repo a…
dzianisv Jan 5, 2026
b42b3cf
fix: resolve stale closure bug in Talk Mode VAD callbacks
dzianisv Jan 5, 2026
d21eb99
feat: add Talk Mode E2E integration test
dzianisv Jan 5, 2026
cd87e65
fix: host VAD assets locally to avoid CORS issues with basic auth
dzianisv Jan 5, 2026
17ff6e5
feat: add Talk Mode test API for E2E browser testing
dzianisv Jan 5, 2026
b76e371
fix: improve browser test navigation and session handling
dzianisv Jan 5, 2026
e7fdcdc
feat: add E2E test infrastructure for CI-built Docker images
dzianisv Jan 5, 2026
1ba8f00
fix: add auth headers to health check in E2E test runner
dzianisv Jan 5, 2026
83cacec
fix: use refs for Talk Mode state to ensure test API gets latest values
dzianisv Jan 5, 2026
b6e8795
debug: add extensive logging to trace Talk Mode stop() calls
dzianisv Jan 5, 2026
2be0689
debug: log stack trace on stop()
dzianisv Jan 5, 2026
a1c8778
remove secrets from git
dzianisv Jan 5, 2026
a5a9d9a
fix: prevent TalkModeOverlay cleanup from calling stop() on dependenc…
dzianisv Jan 5, 2026
c3feafd
fix: poll messages via direct API fetch instead of React Query cache
dzianisv Jan 5, 2026
0ff2e77
fix: improve Talk Mode E2E test - better stop button handling and res…
dzianisv Jan 5, 2026
8aa5330
cleanup: remove debug logging from TalkModeContext
dzianisv Jan 5, 2026
82cdd50
fix: improve Talk Mode E2E test to fetch response from API when state…
dzianisv Jan 5, 2026
879776b
debug: add VAD error handling and logging to diagnose talk mode issues
dzianisv Jan 5, 2026
88b6d34
feat: replace ONNX VAD with streaming MediaRecorder + Whisper approach
dzianisv Jan 5, 2026
48cd41a
test: update browser E2E test for streaming VAD architecture
dzianisv Jan 5, 2026
e1d5006
test: add streaming VAD browser test and suppress noisy error logs
dzianisv Jan 5, 2026
2caddf2
test: add real audio injection E2E test for Talk Mode
dzianisv Jan 5, 2026
63ae1f5
feat: add native local development support with client mode
dzianisv Jan 6, 2026
5919487
feat: add isolated venv support for Chatterbox TTS
dzianisv Jan 6, 2026
8297b04
feat: auto-setup Chatterbox venv on first start
dzianisv Jan 6, 2026
a374f7f
fix: tunnel points to frontend port, add tunnel E2E tests
dzianisv Jan 6, 2026
bba4fd3
fix: allow all hosts in Vite dev server for tunnel support
dzianisv Jan 6, 2026
bb7e85f
feat: auto-register opencode server directory in client mode
dzianisv Jan 6, 2026
8a70842
test: add E2E test for auto-registration of opencode directory in cli…
dzianisv Jan 6, 2026
ff47b80
docs: add testing guide for client mode auto-registration (#2)
dzianisv Jan 6, 2026
3817951
feat: add application-level bearer token authentication
dzianisv Jan 6, 2026
bb50052
feat: save bootstrap token to ~/.config/opencode-manager.json
dzianisv Jan 6, 2026
8d8b4d3
feat: single-container deployment with built-in cloudflared tunnel an…
dzianisv Jan 7, 2026
9c52c9a
fix: force local build in docker-compose override for cloudflared
dzianisv Jan 7, 2026
fb57a5b
fix: use pre-built GHCR image instead of building on VM
dzianisv Jan 7, 2026
012232e
fix: add Authorization header to all frontend API calls
dzianisv Jan 7, 2026
a60c8f0
Revert "feat: add application-level bearer token authentication"
dzianisv Jan 7, 2026
dafa853
feat: add optional basic auth and redesign Talk Mode caption UI
dzianisv Jan 7, 2026
bfc804f
fix: route tunnel through backend to enable auth in dev mode
dzianisv Jan 7, 2026
3f9508b
feat: add comprehensive automated testing protocol with OCR
dzianisv Jan 7, 2026
65bb730
fix: improve test navigation and OCR API compatibility
dzianisv Jan 7, 2026
d0c90e4
feat: improve Talk Mode button detection and settings enable
dzianisv Jan 7, 2026
791ec27
fix: remove problematic settings enable step, improve success rate
dzianisv Jan 7, 2026
1e89b5b
feat: Add comprehensive QA testing system with OpenCode subagent (#3)
dzianisv Jan 7, 2026
dafcfa9
fix: add integration tests and safety warning for agent processes
dzianisv Jan 10, 2026
126ce7d
feat: add voice E2E testing pipeline for CI
dzianisv Jan 10, 2026
744d1a1
fix: voice E2E tests now verify real audio STT pipeline
dzianisv Jan 10, 2026
080b7fb
fix: cloudflare tunnel uses HTTP2 protocol to avoid QUIC/Tailscale co…
dzianisv Jan 10, 2026
5bd1387
docs: update AGENTS.md with voice testing workflow and tunnel notes
dzianisv Jan 10, 2026
12f69e9
fix: merge user's local OpenCode config with Manager config for provi…
dzianisv Jan 10, 2026
8c62174
fix: skip integration tests by default in bun test
dzianisv Jan 10, 2026
1f80410
docs: add voice mode E2E test documentation
dzianisv Jan 10, 2026
0185566
test: add voice-to-code integration test
dzianisv Jan 10, 2026
849885e
docs: fix database path and add pre-commit verification guidelines
dzianisv Jan 10, 2026
efaae4b
feat: add Coqui TTS (Jenny voice) as alternative TTS provider
dzianisv Jan 11, 2026
f08cbe8
ci: use free-disk-space action for larger Docker builds
dzianisv Jan 12, 2026
7f7b86d
Root cause: Race condition in the event handler.
dzianisv Jan 12, 2026
fd98fe0
feat: add browser push notifications for session completion and permi…
dzianisv Jan 14, 2026
3e9e733
fix: subscribe to SSE events for ALL repos, not just visited ones
dzianisv Jan 14, 2026
10b0b5d
feat: add notification subscribe button to dashboard
dzianisv Jan 14, 2026
45d50bb
fix: handle relative URLs in SSE connection for notifications
dzianisv Jan 14, 2026
0895a20
fix: use onmessage instead of addEventListener for SSE events
dzianisv Jan 14, 2026
a60f17a
feat: add opencode-attach shell function installer
dzianisv Jan 14, 2026
ae78bd6
chore: misc script improvements and AGENTS.md updates
dzianisv Jan 14, 2026
b6ac290
feat: auto-start opencode server in client mode if not running
dzianisv Jan 14, 2026
1668957
fix: simplify client mode - check port 5551, start if not found
dzianisv Jan 14, 2026
b330c01
fix: auto-cleanup orphaned processes before starting services
dzianisv Jan 15, 2026
620164a
feat: add npm package CLI with install-service and push notifications
dzianisv Jan 22, 2026
5c8e7f7
fix: add postinstall script to extract dist tarballs for npm installs
dzianisv Jan 22, 2026
0d68927
fix: extract dist tarballs to correct directories in postinstall
dzianisv Jan 22, 2026
703a787
feat: enable Cloudflare tunnel by default for install-service
dzianisv Jan 22, 2026
e81795f
fix: use shared database location ~/.lib/run/opencode-manager/opencod…
dzianisv Jan 22, 2026
b65a0ad
fix: share sessions with CLI by using system XDG_DATA_HOME
dzianisv Jan 22, 2026
5f99547
chore: update backend dist tarball
dzianisv Jan 22, 2026
956ac20
fix: postinstall extracts tarballs to correct paths
dzianisv Jan 22, 2026
308894c
fix: frontend tarball with correct path (frontend/dist)
dzianisv Jan 22, 2026
c7c0072
fix: convert WebM/Opus audio to WAV before transcription
dzianisv Jan 22, 2026
58ba23a
docs: add Feature Development Workflow to AGENTS.md
dzianisv Jan 23, 2026
1e52b22
fix: browser E2E test Web Audio injection and navigation timeouts
dzianisv Jan 23, 2026
0c8a50b
ci: fix E2E tests workflow for GitHub Actions
dzianisv Jan 23, 2026
ca2e7de
fix: remove unused imports in test files to pass lint
dzianisv Jan 23, 2026
60d1ac1
ci: use free-disk-space action for more aggressive cleanup
dzianisv Jan 23, 2026
8ac6ee7
ci: handle CI-specific test scenarios
dzianisv Jan 23, 2026
8494c0e
fix: resolve all eslint warnings and add repo seeding for E2E tests
dzianisv Jan 23, 2026
5054f3b
ci: add slim Docker target for E2E tests to fix disk space issue
dzianisv Jan 23, 2026
6ce0ee2
chore: remove Chatterbox TTS from Docker image (unused)
dzianisv Jan 23, 2026
52bcfc4
fix: handle 'auto' language setting in STT transcription
dzianisv Jan 23, 2026
d7ac228
docs: add mandatory Settings UI verification to prevent test gaps
dzianisv Jan 23, 2026
a253dd5
feat: add TTS button to messages and improve mobile UX
dzianisv Jan 24, 2026
0afb895
feat: add persistent Cloudflare tunnel and auto-read TTS (#9)
dzianisv Jan 24, 2026
ba9f627
docs: add post-deployment testing protocol reference to AGENTS.md
dzianisv Jan 24, 2026
ea07b6e
fix: resolve Talk Mode race condition in isEnabled check
dzianisv Jan 24, 2026
57862ad
feat: integrate @opencode-ai/sdk and add skills directory
dzianisv Jan 25, 2026
117a04d
refactor: migrate skills to Agent Skills standard format
dzianisv Jan 25, 2026
9027b15
refactor: move skills to ./skills/ per agentskills.io spec
dzianisv Jan 25, 2026
065efe4
docs: add Agent Skills reference to AGENTS.md
dzianisv Jan 25, 2026
64eb34e
Clean up
dzianisv Jan 25, 2026
b7226b9
fix: improve browser E2E test reliability
dzianisv Jan 25, 2026
6235249
fix: auto-cleanup stale repo entries on startup (closes #8)
dzianisv Jan 25, 2026
db7451a
build: update backend dist tarball
dzianisv Jan 25, 2026
ca34327
feat: add session summarization and tunnel URL with auth
dzianisv Jan 25, 2026
236daad
docs: add session sharing documentation (closes #7)
dzianisv Jan 25, 2026
c12c871
feat: add E2E test for npm package installation (closes #5)
dzianisv Jan 25, 2026
39889ac
docs: add warning about running E2E tests when user is connected remo…
dzianisv Jan 26, 2026
01b726b
fix: reduce SSE connections to prevent browser connection pool exhaus…
dzianisv Jan 26, 2026
97c0d3a
fix: use zod/v3 compatibility layer for hookform resolvers
dzianisv Jan 26, 2026
a003dfd
feat: replace TalkMode overlay with inline ContinuousVoiceButton
dzianisv Jan 26, 2026
ff9eb70
fix: browser E2E test - add directory param and stop voice before submit
dzianisv Jan 26, 2026
d45e877
feat: add GIF recording to browser E2E tests and TTS-aware voice mode
dzianisv Jan 26, 2026
f15d05c
ci: upload browser E2E test GIF as artifact
dzianisv Jan 26, 2026
d4cf105
chore: ignore .test directory
dzianisv Jan 26, 2026
a62a88e
fix: ensure GIF is always created in browser E2E test
dzianisv Jan 26, 2026
2c19708
feat: add reinstall-local.sh script for local development
dzianisv Jan 26, 2026
a16531b
fix: use /tmp for test repo in CI (writable by non-root user)
dzianisv Jan 26, 2026
74a078c
fix: use Puppeteer bundled Chrome when system Chrome not found
dzianisv Jan 26, 2026
2b1d3e3
fix: improve CI artifact upload path and add retry for voice button
dzianisv Jan 26, 2026
f2ad38a
fix: simplify artifact path to .test/ directory
dzianisv Jan 26, 2026
1062ade
debug: add step to list .test directory contents
dzianisv Jan 26, 2026
5c37aff
fix: enable STT/TalkMode settings in browser E2E test and fix artifac…
dzianisv Jan 26, 2026
8358082
fix: use pnpm workspace commands in reinstall-local.sh
dzianisv Jan 26, 2026
b6971f2
fix: use npm pack tarball for global install in reinstall-local.sh
dzianisv Jan 26, 2026
3dca2d5
fix: add missing dependencies to useEffect cleanup hook
dzianisv Jan 26, 2026
d5e4836
docs: add Talk Mode demo GIF to README
dzianisv Jan 26, 2026
bea3f51
feat: add Question tool UI support with dialog and inline rendering
dzianisv Jan 26, 2026
b85a889
fix: TypeScript error in QuestionContext and add auth to reinstall sc…
dzianisv Jan 26, 2026
948f19b
fix: browser E2E test navigation and QuestionContext TypeScript error
dzianisv Jan 26, 2026
28ec31b
fix: print tunnel URL with credentials at end of reinstall script
dzianisv Jan 26, 2026
881b389
fix: Question tool API calls use directory path instead of session ID
dzianisv Jan 26, 2026
bbd81a0
fix: browser E2E test blocking SSE and message POST issues
dzianisv Jan 26, 2026
89ef47b
docs: add explicit forbidden commands list for cloudflare tunnel prot…
dzianisv Jan 27, 2026
c175c93
fix: script path resolution for TTS/STT servers and add server tests
dzianisv Jan 27, 2026
3a1f1a3
fix: prefer continuous voice button in browser E2E test
dzianisv Jan 27, 2026
f2d4839
chore: consolidate TTS/STT tests - remove redundant test files
dzianisv Jan 27, 2026
7e6ac4e
feat: add TTS-STT round-trip verification test
dzianisv Jan 27, 2026
97beb68
chore: remove redundant integration tests
dzianisv Jan 27, 2026
b2665d7
feat: Recent Sessions Dashboard, Global Notifications & Quick Switche…
dzianisv Jan 27, 2026
9eafa04
fix: reinstall script to correctly package dist tarballs
dzianisv Jan 27, 2026
eec6a3c
fix: add Basic Auth fallback to read from auth.json file
dzianisv Jan 29, 2026
0e624a7
fix: detect opencode server running even with HTTP 500 errors
dzianisv Jan 30, 2026
10d9fa1
test: add endpoints file regression test for tunnel URL persistence
dzianisv Jan 30, 2026
d93bf55
refactor: consolidate endpoints file tests into 3 focused checks
dzianisv Jan 30, 2026
2421874
docs: add Telegram integration guide using owpenbot
dzianisv Jan 30, 2026
4104015
feat: add scheduled tasks feature (#16)
dzianisv Jan 30, 2026
ea1a0bf
test: add comprehensive tests for scheduler service and task routes (…
dzianisv Jan 30, 2026
dc0d996
docs: add scheduled tasks documentation (#16)
dzianisv Jan 30, 2026
1c62196
fix: remove stale tunnel entries from endpoints.json when starting wi…
dzianisv Jan 30, 2026
ef7d272
docs: update plan.md with bug fix and PR status
dzianisv Jan 30, 2026
b56dfa9
Revert "fix: remove stale tunnel entries from endpoints.json when sta…
dzianisv Jan 30, 2026
96b62f4
Revert "docs: update plan.md with bug fix and PR status"
dzianisv Jan 30, 2026
9b91862
docs: add product requirements document
dzianisv Jan 30, 2026
6d8422f
feat: add Tasks page UI for scheduled tasks (#16)
dzianisv Jan 30, 2026
cc8b9a1
fix: resolve lint errors in TasksPage
dzianisv Jan 30, 2026
3bb83e6
fix: use showToast instead of non-existent useToast hook
dzianisv Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 27 additions & 0 deletions .env.deploy.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# OpenCode Manager Remote Deployment
# Copy this to .env and fill in the values

# === Azure Deployment ===
AZURE_RESOURCE_GROUP=opencode-manager-rg
AZURE_LOCATION=westus2
AZURE_VM_NAME=opencode-manager-vm
AZURE_VM_SIZE=Standard_D2s_v5

# === Basic Auth ===
AUTH_USERNAME=admin
AUTH_PASSWORD=

# === GitHub Token (optional) ===
# Pass your GitHub token to the deployed opencode-manager
GITHUB_TOKEN=

# === OpenCode Provider API Keys (optional) ===
# Configure AI providers for OpenCode
ANTHROPIC_API_KEY=
OPENAI_API_KEY=
GEMINI_API_KEY=
OPENROUTER_API_KEY=

# === OpenCode Config (optional) ===
# Path to a local opencode.json config file to upload
# OPENCODE_CONFIG_FILE=./opencode.json
29 changes: 17 additions & 12 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
# OpenCode WebUI Configuration
# Copy this file to .env and customize as needed
# Default values are defined in: shared/src/config/defaults.ts

# ============================================
# Backend Server (Hono API)
# Backend Server Configuration
# ============================================
PORT=8080
PORT=5001
HOST=0.0.0.0
CORS_ORIGIN=http://localhost:5173
NODE_ENV=development
LOG_LEVEL=info

# ============================================
# OpenCode Server
# ============================================
OPENCODE_SERVER_PORT=5551
OPENCODE_HOST=127.0.0.1

# ============================================
# Database
# ============================================
DATABASE_PATH=./backend/data/opencode.db
DATABASE_PATH=./data/opencode.db

# ============================================
# Workspace Configuration
# ============================================
# Local workspace path for repositories and configs
WORKSPACE_PATH=~./workspace
WORKSPACE_PATH=./workspace

# ============================================
# Timeouts (milliseconds)
Expand All @@ -32,9 +36,8 @@ HEALTH_CHECK_INTERVAL_MS=5000
HEALTH_CHECK_TIMEOUT_MS=30000

# ============================================
# File Upload Limits
# File Limits (MB)
# ============================================
# File size limits in MB
MAX_FILE_SIZE_MB=50
MAX_UPLOAD_SIZE_MB=50

Expand All @@ -44,9 +47,11 @@ MAX_UPLOAD_SIZE_MB=50
DEBUG=false

# ============================================
# Frontend Configuration (for development)
# Frontend Configuration (Vite)
# These are optional - frontend uses defaults if not set
# ============================================
# Backend API URL - frontend connects to this
# Note: In development, Vite proxies /api requests to the backend
VITE_API_URL=http://localhost:8080

# VITE_API_URL=http://localhost:5001
# VITE_SERVER_PORT=5001
# VITE_OPENCODE_PORT=5551
# VITE_MAX_FILE_SIZE_MB=50
# VITE_MAX_UPLOAD_SIZE_MB=50
86 changes: 86 additions & 0 deletions .env.local.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# OpenCode Manager - Native Local Development
# Copy this file to .env for local macOS development without Docker
#
# Usage:
# pnpm start - Start normally (spawns opencode serve)
# pnpm start:client - Connect to existing opencode instance
# pnpm start:tunnel - Start with Cloudflare tunnel
#
# Or directly:
# bun scripts/start-native.ts --client --tunnel

# ============================================
# Backend Server Configuration
# ============================================
PORT=5001
HOST=0.0.0.0
CORS_ORIGIN=http://localhost:5173
NODE_ENV=development
LOG_LEVEL=info

# ============================================
# OpenCode Server
# ============================================
# Port to use when running opencode serve (normal mode)
# Or port to connect to (--client mode)
OPENCODE_SERVER_PORT=5551
OPENCODE_HOST=127.0.0.1

# Set to 'true' to connect to an existing opencode server
# instead of spawning one. Usually set automatically by start-native.ts --client
# OPENCODE_CLIENT_MODE=false

# ============================================
# Database
# ============================================
# Local SQLite database for settings and state
DATABASE_PATH=./data/opencode.db

# ============================================
# Workspace Configuration
# ============================================
# Where repos are cloned and managed
# For native mode, you might want to use a different path
WORKSPACE_PATH=./workspace

# ============================================
# Voice Services (Optional)
# ============================================
# Whisper STT - requires Python with faster-whisper
# WHISPER_PORT=5552
# WHISPER_HOST=127.0.0.1
# WHISPER_DEFAULT_MODEL=base
# WHISPER_VENV=./venv/whisper

# Chatterbox TTS - requires Python with chatterbox-tts
# CHATTERBOX_PORT=5553
# CHATTERBOX_HOST=127.0.0.1
# CHATTERBOX_DEVICE=auto
# CHATTERBOX_VENV=./venv/chatterbox

# ============================================
# API Keys (for AI providers)
# ============================================
# ANTHROPIC_API_KEY=sk-ant-...
# OPENAI_API_KEY=sk-...
# GEMINI_API_KEY=...
# OPENROUTER_API_KEY=...

# ============================================
# GitHub Token (for private repo access)
# ============================================
# GITHUB_TOKEN=ghp_...

# ============================================
# Timeouts (milliseconds)
# ============================================
PROCESS_START_WAIT_MS=2000
PROCESS_VERIFY_WAIT_MS=1000
HEALTH_CHECK_INTERVAL_MS=5000
HEALTH_CHECK_TIMEOUT_MS=30000

# ============================================
# File Limits (MB)
# ============================================
MAX_FILE_SIZE_MB=50
MAX_UPLOAD_SIZE_MB=50
Binary file added .github/social-preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 70 additions & 0 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Docker Build

on:
push:
branches: [main]
release:
types: [published]
workflow_dispatch:

permissions:
contents: read
packages: write

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Free disk space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true

- name: Show available disk space
run: df -h

- name: Checkout
uses: actions/checkout@v4

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=ref,event=branch
type=sha,prefix=
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest,enable={{is_default_branch}}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
target: runner
Loading