Commit Graph

100 Commits

Author SHA1 Message Date
Benjamin Shafii
5ae8f42ba2 chore: bump version to 0.11.64 2026-02-13 08:36:40 -08:00
Benjamin Shafii
a54557974c chore: bump version to 0.11.63 2026-02-12 12:20:14 -08:00
ben
e8ce3a821b feat: OpenCode hot reload wiring + engine binary selector (#552)
* feat(app): drop reload-required flow

* chore(server): disable legacy engine reload endpoints

* feat(openwrk): wire OpenCode hot reload env

* fix(docker): compile sidecars for container arch

* chore(dev): pin OpenCode sidecar version

* feat(engine): allow custom OpenCode binary selection
2026-02-12 12:17:23 -08:00
Benjamin Shafii
fe5e9d9a01 chore: bump version to 0.11.62 2026-02-11 19:36:45 -08:00
Benjamin Shafii
efd3b9e0a8 chore: bump version to 0.11.61 2026-02-11 17:45:59 -08:00
Benjamin Shafii
c5f8ecb79e chore: bump version to 0.11.60 2026-02-11 16:04:42 -08:00
Benjamin Shafii
20671e38e2 chore: bump version to 0.11.59 2026-02-11 14:03:43 -08:00
Benjamin Shafii
04d3b81012 chore: bump version to 0.11.58 2026-02-11 13:31:26 -08:00
Benjamin Shafii
6b0e9b0b19 chore: bump version to 0.11.57 2026-02-11 12:46:49 -08:00
Benjamin Shafii
2a54c705b6 fix(sandbox): hide windows docker shells during workspace setup 2026-02-11 12:42:40 -08:00
Benjamin Shafii
6c693c0b72 chore: bump version to 0.11.56 2026-02-11 11:49:47 -08:00
Benjamin Shafii
9f91d21d65 chore: bump version to 0.11.55 2026-02-11 09:01:12 -08:00
ben
86938ece00 fix(headless): align openwrk TUI compile path with OpenTUI + branch CI (#536)
* fix(headless): align openwrk compile path with OpenTUI Solid

Use the upstream @opentui/solid build plugin and preload/tsconfig wiring so compiled openwrk binaries keep TUI runtime compatibility instead of emitting broken React runtime behavior.

* ci: run openwrk checks on feature branch pushes

Trigger CI for fix/openwrk-react-shim and add an openwrk binary build job so bundling regressions are caught before merging to dev.

* ci: relax binary validation to runtime smoke

Use openwrk --version/--help checks instead of grepping embedded strings so the branch CI validates bundling without false failures from defensive error text.

* fix(desktop): build openwrk sidecar via headless build script

Route desktop sidecar preparation through packages/headless/script/build.ts so OpenTUI plugin settings are applied consistently and Linux CI no longer compiles openwrk with incompatible JSX defaults.
2026-02-10 23:39:38 -08:00
ben
b864586b11 fix(headless): avoid compiled openwrk TUI React runtime crash (#531)
* fix(headless): disable compiled-binary TUI by default

Avoid the runtime 'React is not defined' crash in compiled openwrk builds by auto-disabling TUI in bunfs binaries and falling back to plain output.

* fix(headless): keep TUI default and harden non-TUI fallback

Default start to TUI on tty, keep serve/non-tty as plain mode, and add a bundled Solid transform path for compiled binaries while handling TUI startup failures with a plain-output fallback.
2026-02-10 20:46:56 -08:00
Benjamin Shafii
add4ad52b6 chore: bump version to 0.11.54 2026-02-10 19:06:14 -08:00
Benjamin Shafii
0349e5e328 chore: bump version to 0.11.53 2026-02-10 19:01:53 -08:00
ben
8bfb69493a feat(owpenbot): add directory-scoped send endpoint and OpenCode tool injection (#530) 2026-02-10 18:53:55 -08:00
Dobes Vandermeer
1dc87ba3d4 fix(app): stop StatusBar from overlapping sidebar and remove duplicate Settings buttons (#525)
* fix(headless): warn instead of crash on opencode version mismatch for external binaries

When the desktop app spawns openwrk with --opencode-bin pointing to a
bundled binary, openwrk resolves the expected version from the latest
GitHub release. If the bundled binary is even slightly behind, the
strict assertVersionMatch throws and the daemon exits immediately,
leaving users unable to start sessions.

Downgrade the check to a warning for external (explicitly provided)
binaries so the daemon can proceed. The desktop app already validates
the binary via engine_doctor before passing it.

Fixes #121, related to #97, #98

* fix(app): stop StatusBar from overlapping sidebar and remove duplicate Settings buttons

The StatusBar used a fixed position overlay that covered sidebar Settings
buttons. Move it into document flow inside <main> so it no longer overlaps.

Remove the redundant Settings buttons from both sidebars — the StatusBar
gear icon already provides access to Settings.
2026-02-10 18:14:59 -08:00
Benjamin Shafii
bb24fe78f9 chore: bump version to 0.11.52 2026-02-10 17:21:33 -08:00
Benjamin Shafii
d7962a86ad chore: bump version to 0.11.51 2026-02-10 15:34:04 -08:00
Benjamin Shafii
de0a52eecd fix(openwrk): skip sha256 for bundled sidecars on signed platforms
macOS/Windows builds code-sign bundled sidecars after versions.json is generated, changing file bytes and breaking sha256 verification. Keep sha256 verification for Linux bundles.
2026-02-10 15:34:00 -08:00
Benjamin Shafii
a01609d0fc chore: bump version to 0.11.50 2026-02-10 15:25:55 -08:00
Benjamin Shafii
0e8acfb946 chore: bump version to 0.11.49 2026-02-10 15:17:39 -08:00
Benjamin Shafii
c6cb5f2835 chore: bump version to 0.11.48 2026-02-10 15:10:14 -08:00
Benjamin Shafii
ad4bacebb4 chore: bump version to 0.11.47 2026-02-10 15:01:13 -08:00
Benjamin Shafii
83f8e5cd70 chore: bump version to 0.11.46 2026-02-10 12:16:01 -08:00
Benjamin Shafii
106627d364 chore: bump version to 0.11.45 2026-02-10 09:49:48 -08:00
Benjamin Shafii
8f65b6a7e0 chore: bump version to 0.11.44 2026-02-09 23:08:41 -08:00
Benjamin Shafii
7c0b4a7fce chore: bump version to 0.11.43 2026-02-09 19:53:06 -08:00
Benjamin Shafii
39a383e81b chore: bump version to 0.11.42 2026-02-09 19:06:44 -08:00
Benjamin Shafii
eb803c56d5 fix(openwrk): publish platform-aware npm packages
Ship openwrk as a meta package plus per-platform binary packages (optionalDependencies) so macOS/Windows installs get a runnable binary.
2026-02-09 18:40:47 -08:00
Benjamin Shafii
c18ec7629e chore: bump version to 0.11.41 2026-02-09 16:41:28 -08:00
Benjamin Shafii
ec615a4f35 chore: bump version to 0.11.40 2026-02-09 16:01:45 -08:00
Benjamin Shafii
4756990857 chore: bump version to 0.11.39 2026-02-09 14:32:45 -08:00
Benjamin Shafii
e6a2bb560c chore(release): bump to 0.11.38 2026-02-09 00:06:31 -08:00
Benjamin Shafii
a222c2b664 chore(release): bump to 0.11.37 and unify service versions 2026-02-09 00:00:34 -08:00
Benjamin Shafii
749cf9b158 chore: bump version to 0.11.36 2026-02-08 21:48:30 -08:00
Benjamin Shafii
3a88b1e0a9 fix(openwrk): make owpenbot health wiring reliable 2026-02-08 20:48:54 -08:00
Benjamin Shafii
47c3c49bea feat(identities): show bot info, disconnect, and isolate owpenbot 2026-02-08 20:03:45 -08:00
Benjamin Shafii
88eb6b9c43 chore: bump version to 0.11.35 2026-02-08 19:24:39 -08:00
Benjamin Shafii
4b0f8195ca chore: bump version to 0.11.34 2026-02-07 18:31:25 -08:00
Benjamin Shafii
186cd8bb47 chore: bump version to 0.11.33 2026-02-07 18:18:38 -08:00
Benjamin Shafii
39effc3d7f chore: bump version to 0.11.32 2026-02-07 18:02:00 -08:00
ben
b15e1f3550 revert: remove deploy ssh + owpenbot operator TUI (#502)
* Revert "feat(owpenbot): add operator TUI (#501)"

This reverts commit a48578d331.

* Revert "feat(openwrk): add deploy ssh adapter (#500)"

This reverts commit 4ee56922a1.

* fix(owpenbot): guard health timer cleanup

Keep owpenbot TypeScript builds green after reverting the operator TUI by avoiding clearInterval(null).
2026-02-07 17:51:30 -08:00
ben
4ee56922a1 feat(openwrk): add deploy ssh adapter (#500)
* feat(openwrk): add deploy ssh adapter

Add an SSH deploy command that bootstraps openwrk on a remote Linux host via the npm tarball, optionally syncs workspace config, and starts the host under nohup with a connect artifact for pairing.

* chore(desktop): refresh Cargo.lock

Update the lockfile to match the current desktop crate version so Linux CI can run with --locked.
2026-02-07 17:09:43 -08:00
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
Benjamin Shafii
744d1277e8 chore: bump version to 0.11.31 2026-02-07 14:55:01 -08:00
Benjamin Shafii
c9e6aee058 chore: bump version to 0.11.30 2026-02-07 13:10:49 -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
541d7ff392 fix(headless): pick random owpenbot health port by default (#495)
Avoid hard-coding 3005 so owpenbot health checks don't fail when the default port is already in use. Still supports explicit --owpenbot-health-port / OWPENBOT_HEALTH_PORT overrides.
2026-02-07 11:21:09 -08:00