Commit Graph

41 Commits

Author SHA1 Message Date
ben
f9a2809f96 feat: proxy owpenbot via openwork-server (#499)
* feat: proxy owpenbot via openwork-server

Unify client surface by routing owpenbot through /owpenbot/* (+ /w/:id/owpenbot/*), and move QR/token flows off interactive CLI calls. Sandbox mode keeps owpenbot internal (no extra published port) while preserving health + config via the edge.

* chore(desktop): refresh Cargo.lock

Update the Tauri crate lockfile so linux CI can run with --locked.
2026-02-07 15:44:12 -08:00
ben
f3da381606 feat: minimal container sandbox + server tokens + toy UI (#494)
* feat(server): add scoped tokens, inbox/outbox, toy UI, and auth hardening

- TokenService with file-based persistence (tokens.json)
- /tokens CRUD (host auth), /whoami (client auth)
- Bearer token auth accepting OPENWORK_TOKEN or scoped tokens
- POST /workspace/:id/inbox (multipart upload)
- GET /workspace/:id/artifacts, /workspace/:id/artifacts/:id
- Toy UI at /ui with SSE, prompt send, inbox upload, outbox download
- Extended GET /capabilities with schemaVersion, serverVersion, approvals info
- Updated README with all new endpoints and auth model

* feat(headless): add sandbox runtime with Docker and Apple container backends

- --sandbox none|auto|docker|container CLI flag
- --sandbox-image, --sandbox-persist-dir, --sandbox-mount options
- Mount security: allowlist, blocked patterns, symlink resolution
- Docker backend: workspace/persist volumes, sidecar staging, entrypoint
- Apple container backend: --mount type=bind for ro mounts
- Sandbox mode proxies all OpenCode access through openwork-server
- Proxy health check (waitForHealthyViaProxy) avoids SDK auth issues
- Sandbox-specific check suite (runSandboxChecks) for --check mode
- Non-fatal verifyOpenworkServer in sandbox mode for version mismatches
- Updated README with sandbox docs and mount security

* feat(packaging): add Docker/docker-compose PaaS packaging

- Dockerfile (node:22-bookworm-slim, installs openwrk via npm)
- docker-compose.yml with workspace and data volumes
- README with usage instructions

* fix(headless): define sandbox owpenbot internal health port
2026-02-07 13:01:15 -08:00
ben
265ed971b5 fix(owpenbot): make token saves fast and resilient (#488)
* fix(owpenbot): make token saves fast and resilient

Persist Telegram/Slack tokens even when owpenbot is offline, bound adapter restarts to avoid long hangs, and refresh UI status with apply warnings.

* chore: update Cargo.lock

Keep desktop Cargo.lock in sync with the crate version so CI cargo --locked passes.
2026-02-06 21:18:45 -08:00
ben
9b87ccaba7 feat: multi-workspace hosting + workspace-scoped tasks sidebar (#485)
* feat(server): expose all workspaces and support mounted baseUrl

* feat(ui): keep tasks visible across workspaces

* feat(desktop): default engine runtime to openwrk

* feat(owpenbot): route chats by directory bindings
2026-02-06 14:49:17 -08:00
ben
05a0499f88 feat(workspace): scope OpenWork sharing via /w/:id mounts (#479)
* feat(workspace): add Share modal in workspace menu

* feat(workspace): share workspace from session view

* feat(workspace): store OpenWork token per workspace

* feat(workspace): scope OpenWork sharing via /w/:id mounts
2026-02-06 00:07:23 -08:00
Benjamin Shafii
e1df942970 feat(skills): add basic viewer/editor with server-backed reads 2026-02-05 23:55:14 -08:00
ben
39a46b5540 feat(owpenbot): add Slack Socket Mode bridge (#476) 2026-02-05 18:26:02 -08:00
ben
b999903ead Fix reload-required spam; add auto-reload + resume (#467)
* fix(app): scope and defer reload prompts

Avoid reload-required spam by ignoring .opencode/openwork.json, scoping detection to the active workspace, and deferring prompts until sessions go idle. Add per-workspace auto-reload + optional resume so agent/skill/command updates apply without tearing down the UX.

* chore(desktop): sync Cargo.lock

Keep Cargo.lock consistent with the desktop crate version so CI can run cargo test --locked on Linux.
2026-02-05 14:00:51 -08:00
Benjamin Shafii
3bbcacb256 feat(headless): improve cross-service observability 2026-02-04 12:54:08 -08:00
ben
1b272355de feat: auto-connect web sessions and sidebar workspace hub (#438) 2026-02-04 09:10:21 -08:00
Benjamin Shafii
a2b334ebe9 fix: align remote MCP auth with workspace directory 2026-02-02 23:41:13 -08:00
ben
2695ea631a Refactor onboarding for startup preferences (#400)
* refactor(app): align onboarding with startup preferences

* chore: refresh pnpm lockfile

* feat(web): proxy OpenCode through OpenWork
2026-02-02 15:48:37 -08:00
Benjamin Shafii
3aa9f41b49 fix: try owpenbot health on request host 2026-02-01 16:27:21 -08:00
Benjamin Shafii
103bcd3ef5 fix: pass owpenbot health port through openwork server 2026-02-01 16:24:26 -08:00
Benjamin Shafii
617297fb9f chore: bump patch versions for release 2026-02-01 16:18:18 -08:00
Benjamin Shafii
95246d5270 feat: surface sidecar diagnostics for troubleshooting and releases 2026-02-01 16:18:18 -08:00
Benjamin Shafii
20d2497c36 Merge branch 'fix/owpenbot-telegram-remote' into dev 2026-02-01 16:08:46 -08:00
Benjamin Shafii
23bbd80bf8 chore: add owpenbot debug logging 2026-02-01 16:06:52 -08:00
ben
57941ccc02 feat: proxy owpenbot token updates through openwork server (#391) 2026-02-01 15:36:52 -08:00
Benjamin Shafii
f05226e5ec feat: proxy owpenbot token updates through openwork server 2026-02-01 15:32:28 -08:00
ben
120c1069bb feat(openwrk): download sidecars on demand (#387) 2026-02-01 14:37:06 -08:00
ben
bf001a8384 fix: wire reload toast through OpenWork server (#362)
* feat(app): reload via OpenWork server

* feat(server): emit reload events for UI

* fix: resolve reload timeout and approval errors

- Add idleTimeout: 120 to Bun.serve() to prevent 10-second timeout on long operations
- Pass --approval auto flag when spawning OpenWork server from desktop app
- Suppress dead_code warning on OpenwrkStateFile.version field
2026-01-31 23:34:24 -08:00
ben
4c82424390 Use OpenWork server for scheduled tasks (#354)
* feat(server): expose scheduler jobs for remote clients

* fix(app): load schedules from openwork host
2026-01-31 13:09:39 -08:00
Benjamin Shafii
6b6092fe1c fix(server): change workspaceConfigs to let for reassignment 2026-01-31 10:13:14 -08:00
Benjamin Shafii
389c57871d feat(app): wire openwrk runtime for host switching 2026-01-31 09:54:17 -08:00
ben
727013e646 Merge pull request #347 from different-ai/fix/openwrk-integrity-verify
fix(headless): verify sidecar integrity and auth handoff
2026-01-30 23:05:51 -08:00
Benjamin Shafii
0780ba1604 fix(headless): validate sidecar versions and auth handoff 2026-01-30 23:03:49 -08:00
ben
96c71851f3 feat(server): enable engine reloads for headless refresh (#345) 2026-01-30 22:42:44 -08:00
ben
57450945ed feat(headless): ship openwrk as compiled binary (#339) 2026-01-30 15:49:42 -08:00
ben
2059a31f47 feat(headless): bundle openwork server for openwrk (#338) 2026-01-30 15:40:18 -08:00
ben
bd8d4b7592 Merge pull request #325 from different-ai/feat/opencode-credentials-exchange
feat(auth): secure opencode server access
2026-01-29 23:09:19 -08:00
Benjamin Shafii
a10cd57d08 feat(auth): secure opencode server access 2026-01-29 18:52:08 -08:00
Benjamin Shafii
e27bf694f2 feat(onboarding): add browser setup entry 2026-01-29 18:33:58 -08:00
ben
a6e9f1aec4 feat(context): improve context panel clarity (#319) 2026-01-29 18:33:57 -08:00
ben
da3ca79b90 feat(context): improve context panel clarity (#319) 2026-01-29 17:09:30 -08:00
Benjamin Shafii
c3e338a052 fix(owpenbot): align bun builds and sidecar startup 2026-01-28 21:20:26 -08:00
ben
28b1ff39e4 feat: host mode prefers OpenWork server for skills/plugins management (#304)
* feat: host mode prefers OpenWork server for skills/plugins management

- Add hostToken support to OpenWork server client (X-OpenWork-Host-Token header)
- Add includeGlobal query param to listSkills and listPlugins
- Host mode now uses OpenWork server first for:
  - refreshSkills (with includeGlobal for global skills)
  - refreshPlugins (project scope)
  - addPlugin (project scope)
  - installSkillCreator
- Falls back to local filesystem if OpenWork server unavailable
- Fix missing WorkspaceInfo import in dashboard.tsx

* feat: add server binary build script and prefer opencode.jsonc

- Add packages/server/script/build.ts for compiling standalone server binary
- Add build:bin and build:bin:all scripts to server package.json
- Update workspace-files.ts to prefer opencode.jsonc over opencode.json

* fix: compile openwork-server as standalone binary on all platforms

Replace shell launcher script with bun build --compile to create
a standalone binary that doesn't require Bun at runtime.

* feat: host mode uses OpenWork server for commands, MCP, and default model

- Prefer OpenWork server for command save/delete/list in host mode
- Use OpenWork server for Notion MCP setup and MCP refresh/connect when available
- Resolve host workspace id via OpenWork server in host mode
- Fetch host capabilities and pass host token to server client
- Read/write default model via OpenWork server when connected

* fix: rebuild openwork-server sidecar reliably

- Use bun build CLI for compiled server binary
- Detect and replace stub launcher before building

* fix: create target-specific openwork-server sidecar

- Copy compiled openwork-server to platform triple name
- Regenerate stub targets when needed
2026-01-28 19:11:03 -08:00
ben
0df8c4df46 feat: add devtools audit visibility (#301)
* feat: add devtools audit visibility

* fix: add parens for openwork base url fallback
2026-01-28 16:25:53 -08:00
ben
b4b27b5e0a feat: add OpenWork host orchestration (#286)
* feat: add OpenWork host orchestration

* fix: resolve host startup errors

* fix: run openwork server sidecar with bun

* feat: default to OpenCode direct

* feat: move status into bottom bar
2026-01-27 18:39:35 -08:00
ben
041972c19b feat: auto-start OpenWork server sidecar (#284)
* feat: auto-start OpenWork server sidecar

* refactor: simplify openwork server host pairing

* chore: prep openwork server sidecar for dev

* chore: allow web CORS in dev
2026-01-27 14:36:34 -08:00
ben
4bcbf8aae0 feat: openwork sync v0 (#280)
* docs: add openwork server PRD

* feat: wire OpenWork server remote management

* feat: add OpenWork server settings panel
2026-01-26 23:00:47 -08:00