Commit Graph

771 Commits

Author SHA1 Message Date
Benjamin Shafii
744d1277e8 chore: bump version to 0.11.31 v0.11.31 v744d127-dev openwrk-v0.11.31 2026-02-07 14:55:01 -08:00
ben
10213763a1 fix(app): restore Plugins tab in dashboard sidebar (#497)
The Plugins nav item was dropped during the DLS alignment refactor (bd6062c).
The PluginsView component and tab routing were still wired correctly --
only the sidebar and mobile bottom-nav buttons were missing.

- Add Plugins button to right sidebar (between Skills and Apps)
- Add Plugins button to mobile bottom nav (5-col grid)
- Import Cpu icon from lucide-solid (same icon used before removal)
v1021376-dev
2026-02-07 14:11:41 -08:00
OpenWork Release Bot
4215d96b49 chore(aur): update PKGBUILD for 0.11.30 2026-02-07 21:35:27 +00:00
Benjamin Shafii
c9e6aee058 chore: bump version to 0.11.30 openwrk-v0.11.30 v0.11.30 vc9e6aee-dev 2026-02-07 13:10:49 -08:00
TY
8e42fc549b fix: allow data:image/* URLs in markdown renderer (#491)
The isSafeUrl function was blocking all data: URLs including
data:image/jpeg;base64,... returned by AI image generation models.
This caused markdown images like ![image](data:image/jpeg;base64,...)
to render with empty src, showing only the alt text 'Image'.

Now data:image/* URIs are whitelisted while other data: schemes
(e.g. data:text/html) remain blocked to prevent XSS.

Co-authored-by: taoyuan <taoyuan@gmail.com>
v8e42fc5-dev
2026-02-07 13:06:06 -08:00
TY
6120ad5b56 fix: prevent Enter key during IME composition from triggering actions (#492)
When using an IME (e.g. Chinese, Japanese, Korean input methods), pressing
Enter to confirm character conversion was incorrectly triggering form
submissions, message sends, and other actions.

Changes across 10 files:

- composer.tsx: triple-check IME state (event.isComposing + manual
  compositionstart/end flag + keyCode === 229) with addEventListener
  binding to work around SolidJS event delegation limitations
- model-picker-modal.tsx: guard Enter for model selection
- question-modal.tsx: guard Enter for option/custom input (2 handlers)
- rename-session-modal.tsx: guard Enter for session rename
- rename-workspace-modal.tsx: guard Enter for workspace rename
- dashboard.tsx: guard Enter for workspace/session list items (3 handlers)
- session.tsx: guard Enter for workspace/session list items (3 handlers)
- proto-v1-ux.tsx: guard Enter for expandable section toggle
- skills.tsx: guard Enter for skill card activation
- onboarding.tsx: guard Enter for directory path input

Co-authored-by: taoyuan <taoyuan@gmail.com>
v6120ad5-dev
2026-02-07 13:03:03 -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
vf3da381-dev
2026-02-07 13:01:15 -08:00
ben
cba77fa04f fix(owpenbot): lazy WhatsApp onboarding and REST pairing (#496)
- Default WhatsApp to disabled unless creds/config enable it\n- Never print QR codes from bridge startup (printQr=false)\n- Lazy-load WhatsApp adapter to avoid Bun ws warnings when disabled\n- Add REST endpoints: GET /whatsapp/qr, GET/POST /config/whatsapp-enabled\n- Only print CLI command hints in interactive TTY mode
vcba77fa-dev
2026-02-07 13:01:06 -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.
v541d7ff-dev
2026-02-07 11:21:09 -08:00
GitHub Action
8797a6e2f2 ignore: update download stats 2026-02-07 2026-02-07 12:14:58 +00:00
OpenWork Release Bot
a0a182ba9f chore(aur): update PKGBUILD for 0.11.29 2026-02-07 08:24:35 +00:00
Benjamin Shafii
a0d5021de8 chore: update Cargo.lock for 0.11.29 va0d5021-dev v0.11.29 openwrk-v0.11.29 2026-02-07 00:05:48 -08:00
Benjamin Shafii
25200fa0e3 chore: bump version to 0.11.29 2026-02-07 00:04:38 -08:00
ben
b2a006f338 fix(workspace): avoid UI stalls when switching (#489) vb2a006f-dev 2026-02-06 23:40:40 -08:00
ben
c45a6e2961 Update README to simplify usage instructions
Removed usage instructions and streamlined the description of OpenWork.
vc45a6e2-dev
2026-02-06 23:20:49 -08:00
ben
a47352604e Update README.md va473526-dev 2026-02-06 23:20:14 -08:00
OpenWork Release Bot
cab6dc412c chore(aur): update PKGBUILD for 0.11.28 2026-02-07 05:44:47 +00:00
Benjamin Shafii
ffe6fee8cb feat(landing): add enterprise page and booking link vffe6fee-dev 2026-02-06 21:26:55 -08:00
Benjamin Shafii
85005c1127 chore: bump version to 0.11.28 v0.11.28 openwrk-v0.11.28 v85005c1-dev 2026-02-06 21:20:19 -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.
v265ed97-dev
2026-02-06 21:18:45 -08:00
OpenWork Release Bot
6da72580d7 chore(aur): update PKGBUILD for 0.11.27 2026-02-07 03:22:08 +00:00
Benjamin Shafii
7b8e7b0352 chore: bump version to 0.11.27 v0.11.27 v7b8e7b0-dev openwrk-v0.11.27 2026-02-06 18:57:45 -08:00
ben
a898405889 chore(plugins): drop opencode-browser from suggested defaults (#487) va898405-dev 2026-02-06 18:56:06 -08:00
Benjamin Shafii
bf5a0bff86 fix(composer): restore agent dropdown
Bring back the composer agent picker dropdown wired to the SDK-backed agent list, so users can select an agent without relying on @mentions.
vbf5a0bf-dev
2026-02-06 18:42:28 -08:00
Benjamin Shafii
7026ca5d73 fix(workspaces): make workspace switches less disruptive
Keep the dashboard stable when switching workspaces by preventing implicit session navigation during connect/reconnect flows. Delay the switch overlay to avoid flashes on fast switches and reuse an existing local host when bouncing remote<->local.
v7026ca5-dev
2026-02-06 18:28:45 -08:00
OpenWork Release Bot
b6d1ad8e01 chore(aur): update PKGBUILD for 0.11.26 2026-02-07 01:16:26 +00:00
Benjamin Shafii
6f98092b0c chore: bump version to 0.11.26 v0.11.26 openwrk-v0.11.26 v6f98092-dev 2026-02-06 16:58:06 -08:00
Benjamin Shafii
267082ab48 fix(workspaces): scope sidebar tasks and restore local switching
Filter sidebar sessions by workspace root so local workspaces don't show identical task lists. Also start the local host engine when switching from a remote workspace back to local, and hide the session count badge to prevent header overflow.
v267082a-dev
2026-02-06 16:56:29 -08:00
OpenWork Release Bot
d9d5ce4fc1 chore(aur): update PKGBUILD for 0.11.25 2026-02-06 23:18:19 +00:00
Benjamin Shafii
311d862e87 chore: bump version to 0.11.25 v0.11.25 openwrk-v0.11.25 v311d862-dev 2026-02-06 14:53:26 -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
v9b87cca-dev
2026-02-06 14:49:17 -08:00
OpenWork Release Bot
5c318de755 chore(aur): update PKGBUILD for 0.11.24 2026-02-06 21:18:40 +00:00
Benjamin Shafii
7a26fd29f1 chore: bump version to 0.11.24 v7a26fd2-dev openwrk-v0.11.24 v0.11.24 2026-02-06 12:53:59 -08:00
Benjamin Shafii
63df079d1c fix(ci): resolve latest OpenCode with token
Use GITHUB_TOKEN for GitHub API calls and fall back to the web releases/latest redirect when the API returns 403, so CI can still default to latest.
v63df079-dev
2026-02-06 12:25:51 -08:00
Benjamin Shafii
d6f7697086 chore: bump version to 0.11.23 vd6f7697-dev v0.11.23 openwrk-v0.11.23 2026-02-06 10:38:33 -08:00
Benjamin Shafii
609ca9c5e2 chore(build): default OpenCode to latest
Stop pinning OpenCode in package metadata and resolve the latest release during sidecar bundling/runtime, while still allowing OPENCODE_VERSION to pin for reproducible builds.
v609ca9c-dev
2026-02-06 10:27:40 -08:00
IanShaw
a809bb95fd fix: compress image attachments before sending to prevent UI freeze (#482)
Images are now compressed via canvas resize (max 2048px) + JPEG transcode
(quality 0.82, target <1.5MB) before base64 encoding. Uses OffscreenCanvas
when available to avoid blocking the main thread. Adds a post-encoding size
pre-check to show an explicit error instead of silently failing.

Fixes #481
va809bb9-dev
2026-02-06 09:30:48 -08:00
OpenWork Release Bot
a1e242f0ff chore(aur): update PKGBUILD for 0.11.22 2026-02-06 17:02:32 +00:00
Benjamin Shafii
d36a630096 chore: bump version to 0.11.22 v0.11.22 vd36a630-dev openwrk-v0.11.22 2026-02-06 08:38:06 -08:00
Benjamin Shafii
6cdeacb982 feat(automations): add run action and human schedules v6cdeacb-dev 2026-02-06 08:31:25 -08:00
Benjamin Shafii
ed1aed068f fix(ui): improve settings contrast and session sidebar state 2026-02-06 08:31:19 -08:00
ben
081bcad71e fix(session): remove duplicate new messages indicator (#480) v081bcad-dev 2026-02-06 07:45:16 -08:00
ben
0f11673c89 feat(config): move workspace settings into Config page (#483) v0f11673-dev 2026-02-06 07:42:10 -08:00
GitHub Action
0c51c98dfb ignore: update download stats 2026-02-06 2026-02-06 12:20:15 +00:00
OpenWork Release Bot
effc7715e4 chore(aur): update PKGBUILD for 0.11.21 2026-02-06 08:37:55 +00:00
OpenWork Release Bot
d887e05309 chore(aur): update PKGBUILD for 0.11.20 2026-02-06 08:29:43 +00:00
Benjamin Shafii
f6e7080015 chore: bump version to 0.11.21 vf6e7080-dev openwrk-v0.11.21 v0.11.21 2026-02-06 00:13:34 -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
v05a0499-dev
2026-02-06 00:07:23 -08:00
Benjamin Shafii
d309fd97c2 chore: update Cargo.lock for 0.11.20 openwrk-v0.11.20 vd309fd9-dev v0.11.20 2026-02-06 00:06:04 -08:00
Benjamin Shafii
4267330022 chore: bump version to 0.11.20 2026-02-06 00:05:31 -08:00