Commit Graph

63 Commits

Author SHA1 Message Date
Source Open
12900a0b9e feat(server-v2): add standalone runtime and SDK foundation (#1468)
* feat(server-v2): add standalone runtime and SDK foundation

* docs(server-v2): drop planning task checklists

* build(server-v2): generate OpenAPI and SDK during dev

* build(server-v2): generate API artifacts before builds

* build(server-v2): drop duplicate root SDK generation

* build(app): remove SDK generation hooks

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-17 09:54:26 -07:00
Jan Carbonell
e232aba925 feat(i18n): add Catalan locale (#1450)
* feat(i18n): add Catalan locale

Give Catalan speakers full UI coverage while keeping locale parity with the English source and existing locale audits.

* fix(i18n): align Catalan product terminology

Use the requested in-product terms for workspace, paquet, and sandbox while keeping the Catalan locale consistent around runtime, host, and deep link wording.

* canvis de wording
2026-04-15 18:30:51 -07:00
Jan Carbonell
1871532e99 feat(i18n): add Spanish locale (#1451)
* feat(i18n): add Spanish locale

* chore(i18n): include Spanish in audit script

* fix(i18n): retune Spanish locale for Spain

* fix(i18n): update Spanish translations for clarity and consistency
2026-04-15 17:19:41 -07:00
ben
800602f4e3 feat: add microsandbox sandbox flow and feature flag toggle (#1446)
* add pre-baked microsandbox image

Bake openwork, openwork-server, and the pinned opencode binary into a single Docker image so micro-sandbox remote-connect smoke tests can boot quickly and be verified with curl and container health checks.

* add Rust microsandbox example

Add a standalone microsandbox SDK example that boots the OpenWork image, validates remote-connect endpoints, and streams sandbox logs so backend-only sandbox behavior can be exercised without Docker.

* exclude Rust example build output

Keep the standalone microsandbox example in git, but drop generated Cargo target artifacts so the branch only contains source, docs, and lockfile.

* test

* add microsandbox feature flag for sandbox creation

Made-with: Cursor

* refactor sandbox mode isolation

Made-with: Cursor
2026-04-15 15:10:52 -07:00
Pascal André
2ffdf5db59 feat(i18n): add French locale (#1438)
* feat(i18n): add French locale

* chore(i18n): include French in audit script
2026-04-13 10:34:25 -07:00
Johnny Shields
46fa5a22cb [READY] fix(i18n): Add more missed translations + fixes + cleanup (#1381)
* Add more missed translations for all locales

* Add missing translations

* Remove unused keys

* Sort translation keys alphabetically

* Extra polish

* Fix broken translations

* Last fix

* Fix dangling references

* More translations, improve audit script

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 10:44:18 -07:00
Source Open
0589897b2f feat(den): add org-managed llm provider library (#1343)
* feat(den): add org-managed llm provider library

Let Den admins curate shared providers and models with encrypted credentials, then let the app connect through the existing add-provider flow. This keeps org-wide model access consistent without requiring per-user OAuth setup.

* docs(den): prefer longer db encryption keys

* fix(den): pass db encryption key through local dev

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-04-06 10:17:21 -07:00
Jan Carbonell
1f67c40ecf docs(changelog): rebuild tracker drafts and title-aware docs output (#1358)
* docs(changelog): build fuller tracker drafts through v0.11.202

* docs(changelog): drop publication flags from tracker files

* docs(changelog): generate titles from tracker sections

* docs(changelog): format titles after version links
2026-04-05 00:23:59 -06:00
Jan Carbonell
d075f03e75 feat(docs): add changelog page generated from release tracker (#1352)
* feat(docs): add changelog page generated from release tracker

Add a script (scripts/generate-changelog.mjs) that parses
changelog/release-tracker.md and generates a minimalistic
changelog.mdx for the Mintlify docs. Each entry shows the date,
a tag (New/Improved/Adjusted/Misc), and either a one-liner (minor)
or bullet points (major). Version headings link to GitHub compare
URLs derived from consecutive versions.

* fix(docs): use Mintlify Update components and href tab for changelog

Switch changelog.mdx to use Mintlify's built-in <Update> component
with label, description, and tags props. Fix the tab config to use
href instead of pages.

* fix(docs): move changelog from tab to sidebar group

Place changelog as a grouped section in the sidebar navigation
instead of a separate tab that was causing redirect issues.

* fix(docs): plain version in description, link in body

The description prop renders as plain text in Mintlify, so markdown
links showed raw. Move version to plain description and put the
compare link as a "View changes" link inside the Update body.

* fix(docs): version as heading, multiple tags, Mintlify conventions

Use version as ## heading inside each Update body, support multiple
tags (New releases, Improvements, Deprecations), indent content
2 spaces per Mintlify convention, remove description prop.

* fix(docs): update changelog tags with emojis and new names

Tags are now: 🚀 New Features, 🐛 Bug Fixes, 🏗️ Refactoring

* feat(docs): group changelog entries by date

Merge same-day releases into a single Update block. Tags are
unioned across versions, Misc is dropped when real tags exist.
Each version remains as an ## heading within the grouped day.
2026-04-04 18:21:03 -06:00
Jan Carbonell
2651a71348 feat(scripts): enhance find-unused.sh with deeper cross-referencing (#1351)
Extends the unused file detection script with sibling repo CI/CD
cross-referencing, expanded infra coverage (build configs, tsconfig,
docker-compose, .opencode skills), progress indicator, two-bucket
output display, and smart generic filename filtering.

Handles standalone openwork without factory layout gracefully —
auto-detects whether _repos/ exists and skips sibling checks if not.
2026-04-04 17:37:00 -06:00
Jan Carbonell
cdfc4eca8b removing unused functions (#1346)
* removing unused functions

* also not needed (from landing page)

* added readme on script
2026-04-04 14:48:53 -06:00
Source Open
ec33bae663 feat(den): add teams and skill hub management (#1289)
* feat(den): add teams and skill hub management

* feat(den-web): add UnderlineTabs component and apply to members + skill hubs screens

* feat(den-web): add DashboardPageTemplate and apply to all 6 dashboard pages

* feat(den-web): add DenButton component and apply across all dashboard pages

* feat(den-web): add DenInput component and apply across all dashboard inputs

* feat(den-web): UI polish pass — shared component system and skill hub redesign

- Add UnderlineTabs, DashboardPageTemplate, DenButton, DenInput, DenTextarea shared components
- Apply DashboardPageTemplate with PaperMeshGradient headers to all 6 dashboard pages
- Apply DenButton (primary/secondary/destructive + loading/disabled) across all dashboard pages
- Apply DenInput and DenTextarea replacing all raw inputs and textareas
- Redesign skill hub list cards: PaperMeshGradient seeded by hub ID, clean layout
- Redesign skill list cards: PaperMeshGradient seeded by skill ID, matching hub card design
- Rewrite skill hub detail page: lighter type scale, moved last-updated inline, clean sidebar
- Rewrite skill detail page: gradient header, visibility pill inline with title, removed sidebar
- Rewrite skill editor: remove category field (not persisted), clean form layout
- Clean up all 4 member tables: tighter rows, items-center alignment, lighter type
- Fix ActionButton icon stacking bug (Tailwind Preflight svg display:block via icon prop)
- Move member tab toolbar buttons inline with description text per tab
- Add destructive button variant; fix button disabled/loading states
- Clean up manage-members, billing, templates, background-agents screen designs

---------

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
Co-authored-by: OmarMcAdam <gh@mcadam.io>
2026-04-02 10:28:47 -07:00
Benjamin Shafii
53b8964dc3 Merge branch 'dev' of https://github.com/different-ai/openwork into dev 2026-03-30 19:52:21 -07:00
Source Open
41ff05cdb8 fix(security): keep orchestrator secrets off argv and logs (#1242)
Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-30 17:23:14 -07:00
ben
783774d295 fix(den): trust 0.0.0.0 local auth origin (#1192) 2026-03-27 10:36:25 -07:00
Source Open
4e63d6898e feat(den): simplify local dev and sandbox dashboard (#1181)
Run Den controller, web, and worker proxy through a root dev:den-local workflow backed by Turbo and auto-managed local MySQL. Restore the background agents tab to show real sandboxes, add manual sandbox creation, stop auto-launching sandboxes on signup, and move Billing lower in the sidebar.

Co-authored-by: src-opn <src-opn@users.noreply.github.com>
2026-03-26 13:02:56 -07:00
Benjamin Shafii
26cb57e435 add faster local Den dev path 2026-03-26 11:54:51 -07:00
Benjamin Shafii
3e2cd73523 new dev 2026-03-26 11:26:16 -07:00
Benjamin Shafii
b77c254d3d Merge branch 'dev' of https://github.com/different-ai/openwork into dev 2026-03-24 06:39:55 -07:00
Source Open
18723ec767 feat(security): default local workers to localhost only (#1132)
Require generated OpenCode auth and explicit remote-sharing opt-in so local workers stay loopback-only unless the user intentionally exposes them.
2026-03-23 17:58:53 -07:00
Benjamin Shafii
31d894ae98 commit stuff for windows arm 2026-03-22 19:59:57 -07:00
ben
3709ea33ec dx: add windows arm64 pnpm dev support (#1113)
* chore: align dev scripts for Windows

* refactor: isolate Windows dev flow
2026-03-22 16:48:38 -07:00
Omar McAdam
db10a7b5ba build: centralize the pinned opencode version (#1075)
Keep OpenCode version selection predictable by reading a single repo-wide constant and packaging that pin into orchestrator builds. Remove env and latest-release fallbacks so desktop, workers, snapshots, and CI stay aligned.

Co-authored-by: Omar McAdam <omar@OpenWork-Studio.localdomain>
2026-03-20 12:30:24 -07:00
Omar McAdam
62988a9d9f fix(ci): authenticate Daytona snapshot publishing (#1050)
Co-authored-by: Omar McAdam <omar@OpenWork-Studio.localdomain>
2026-03-19 21:46:35 -07:00
ben
f240f0435f Task/daytona release workflow fix (#1060)
* fix(release): make Daytona snapshot reruns reliable

* fix(release): authenticate Daytona CLI in CI
2026-03-19 20:37:17 -07:00
Omar McAdam
aa313c0ac9 fix: rename openwork-server package references (#1040)
Co-authored-by: Omar McAdam <omar@OpenWork-Studio.localdomain>
2026-03-19 14:27:34 -07:00
Omar McAdam
2b91b4d777 refactor: repo folder structure (#1038)
* refactor(repo): move OpenWork apps into apps and ee layout

Rebase the monorepo layout migration onto the latest dev changes so the moved app, desktop, share, and cloud surfaces keep working from their new paths. Carry the latest deeplink, token persistence, build, Vercel, and docs updates forward to avoid stale references and broken deploy tooling.

* chore(repo): drop generated desktop artifacts

Ignore the moved Tauri target and sidecar paths so local cargo checks do not pollute the branch. Remove the accidentally committed outputs from the repo while keeping the layout migration intact.

* fix(release): drop built server cli artifact

Stop tracking the locally built apps/server/cli binary so generated server outputs do not leak into commits. Also update the release workflow to check the published scoped package name for @openwork/server before deciding whether npm publish is needed.

* fix(workspace): add stable CLI bin wrappers

Point the server and router package bins at committed wrapper scripts so workspace installs can create shims before dist outputs exist. Keep the wrappers compatible with built binaries and source checkouts to avoid Vercel install warnings without changing runtime behavior.
2026-03-19 11:41:38 -07:00
ben
0e88389849 feat(den): add daytona-backed docker dev flow (#918)
* feat(den): add daytona-backed docker dev flow

* fix(den): allow multiple cloud workers in dev

* fix(den): use Daytona snapshots for sandbox runtime

Use a prebuilt Daytona snapshot for the dev worker runtime so sandboxes start with openwork and opencode already installed. Pass the snapshot through the local Docker flow and add a helper to build the snapshot image for repeatable setup.

* chore(den): lower Daytona snapshot defaults

Reduce the default snapshot footprint to 1 CPU and 2GB RAM so local Daytona worker testing fits smaller org limits more easily.

* Omar is comfortable

Make Daytona-backed cloud workers stable enough to reconnect through a dedicated proxy instead of persisting expiring signed preview URLs. Split the proxy into its own deployable service, share Den schema access through a common package, and fix the web badge so healthy workers show ready.

* chore(den-db): add Drizzle package scripts

Move the shared schema package toward owning its own migration workflow by adding generate and migrate commands plus a local Drizzle config.

* chore: update lockfile

Refresh the workspace lockfile so the new den-db Drizzle tooling is captured in pnpm-lock.yaml.

* feat(den-worker-proxy): make Vercel deployment-ready

Align the proxy service with Vercel's Hono runtime entry pattern and keep a separate Node server entry for Docker/local runs. Also scaffold the Vercel project/env setup and wire Render deploy sync to pass Daytona variables needed for daytona mode.

* feat(den-db): add db mode switch for PlanetScale

Support DB_MODE=planetscale with Drizzle's PlanetScale serverless driver while keeping mysql2 as the local default. This lets Vercel-hosted services use HTTP database access without changing local development workflows.

* refactor(den-db): adopt shared TypeID ids

Move the Den TypeID system into a shared utils package and use it across auth, org, worker, and sandbox records so fresh databases get one consistent internal ID format. Wire Better Auth into the same generator and update Den request boundaries to normalize typed ids cleanly.

* fix(den): restore docker dev stack after refactor

Include the shared utils package in the Den Docker images, expose MySQL to the host for local inspection, and fix the remaining Den build/runtime issues surfaced by the Docker path after the shared package and TypeID changes.

* docs(den): document Daytona snapshot setup

Add README guidance for building and publishing the prebuilt Daytona runtime snapshot, including the helper script, required env, and how to point Den at the snapshot for local Daytona mode.

* refactor(den-db): reset migrations and load env files

Replace the old Den SQL migration history with a fresh baseline for the current schema, and let Drizzle commands load database credentials from env files. Default to mysql when DATABASE_URL is present and otherwise use PlanetScale credentials so local Docker and hosted environments can share the same DB package cleanly.

* fix(den): prepare manual PlanetScale deploys

Update the Render workflow and Docker build path for the shared workspace packages, support PlanetScale credentials in the manual SQL migration runner, and stop auto-running DB migrations on Den startup so schema changes stay manual.

* feat(den-v2): add Daytona-first control plane

Create a new den-v2 service from the current Daytona-enabled control plane, default it to Daytona provisioning, and add a dedicated Render deployment workflow targeting the new v2 Render service.

* feat(den-worker-proxy): redirect root to landing

Send root proxy traffic to openworklabs.com so direct visits to the worker proxy domain do not hit worker-resolution errors.

---------

Co-authored-by: OmarMcAdam <gh@mcadam.io>
2026-03-16 21:20:26 -07:00
Jan
e4df0c4d2d fix so webdev:local works reliably from the script (#924)
Co-authored-by: jcllobet <jcllobet@users.noreply.github.com>
2026-03-16 19:21:37 -07:00
Benjamin Shafii
a3ae30bf33 fix(aur): preserve newline in SSH private key file 2026-03-15 15:09:24 -07:00
Benjamin Shafii
ce65056615 revert: roll back post-5831626 CI pipeline changes 2026-03-15 13:03:03 -07:00
Omar McAdam
83459c3352 ci: split desktop release packaging (#935) 2026-03-15 10:05:07 -07:00
Omar McAdam
a570ce7880 ci: streamline desktop release packaging (#933) 2026-03-15 07:55:48 -07:00
Benjamin Shafii
90a55d910f Revert "Simplify app.openwork.software worker launch flow (#868)"
This reverts commit e3465607f1.
2026-03-12 18:32:21 -07:00
Jan
e3465607f1 Simplify app.openwork.software worker launch flow (#868)
* Simplify cloud worker launch UI

* Prioritize worker launch in overview

* Add overview comparison screenshots

* Make worker status indicator horizontal

* Add latest overview screenshots

* Wire local web mode for Den and Next

* Polish cloud launch wait flow

* Refine cloud launch modal copy

* Expand cloud startup sequence

* minimal changes

---------

Co-authored-by: jcllobet <jcllobet@users.noreply.github.com>
2026-03-12 16:17:27 -07:00
Omar McAdam
f96b50a1ef feat(web): add local Den dev stack (#855)
* feat(web): add local Den dev stack

* fix(web): stabilize mobile Den worker cards

* fix(web): default empty Den state to new worker

* Add Google auth to Den signup (#847)

* feat(den): add google auth provider

* feat(web): add social signup buttons for den

---------

Co-authored-by: jcllobet <jcllobet@users.noreply.github.com>

---------

Co-authored-by: Jan <jc2897@cornell.edu>
Co-authored-by: jcllobet <jcllobet@users.noreply.github.com>
2026-03-12 11:27:34 -07:00
Benjamin Shafii
7a6426805c chore(metrics): classify release downloads for PostHog v2 2026-03-07 07:11:46 -08:00
Benjamin Shafii
cb130b3242 fix(release): support draft releases in updater and AUR jobs 2026-02-20 17:23:55 -08:00
Benjamin Shafii
2b32dddde7 fix(vercel): avoid desktop build for share deploys 2026-02-20 14:30:20 -08:00
ben
80d880a23d fix(release): publish deterministic updater platforms metadata (#627) 2026-02-20 14:08:07 -08:00
Benjamin Shafii
878f255b6d fix(aur): restore update script executable bit 2026-02-16 20:35:19 -08:00
Jakub Husák
f2bcf05e0e Linux arm64 build and release (#582)
* Initial plan

* Add ARM64 build support to workflows and AUR packaging

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Fix: Add noextract field update to AUR script

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Add comment explaining temporary SKIP checksum for ARM64

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Make cross-compilation tools conditional on runner architecture

Cross-compilation tools (gcc-aarch64-linux-gnu) are now only installed when actually cross-compiling (x86_64 → ARM64). Native ARM64 runners will use native compilation without these tools.

This enables flexible deployment:
- Default: Cross-compilation on ubuntu-22.04 (free tier)
- Optional: Native compilation on ubuntu-*-arm64 or self-hosted ARM64 runners

The workflow auto-detects via runner.arch context.

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Remove cross-compilation tools installation for native ARM64 runners

Since we're running on native ARM64 runners, cross-compilation tools are not needed. The native toolchain will be used directly for ARM64 builds.

This simplifies the workflow and improves build performance by removing unnecessary package installation.

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Refactor: Extract SHA256 checksum calculation to reusable function

Eliminates code duplication by creating a single compute_sha256() function
that is called twice, instead of duplicating the Python code block.

Benefits:
- Reduced script from 132 to 123 lines (9 lines saved)
- Single source of truth for checksum logic
- Easier to maintain and modify in the future
- Follows DRY (Don't Repeat Yourself) principle

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Fix: Update comment to use consistent terminology

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Replace Python SHA256 hashing with native sha256sum command

Simplifies the compute_sha256() function by replacing the Python implementation
with native bash sha256sum command, reducing complexity and improving performance.

Changes:
- Replaced 13-line Python function with 1-line sha256sum call
- Reduced script from 123 to 113 lines (10 lines saved)
- Eliminated Python interpreter startup overhead for hashing
- Maintains full compatibility with existing checksums

Benefits:
- Simpler, more idiomatic bash implementation
- Faster execution (no Python startup for hashing)
- Easier to read and maintain

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Remove compute_sha256 function and inline sha256sum usage

Eliminates the compute_sha256() wrapper function and directly inlines
sha256sum calls, making the code simpler and more transparent.

Changes:
- Removed function definition (lines 46-49)
- Inlined sha256sum calls directly where needed
- Reduced script from 113 to 108 lines (5 lines saved)
- Updated comment to reflect direct usage

Benefits:
- Simpler code with fewer abstractions
- More direct and transparent implementation
- Easier to understand at a glance

Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>

* Remove useless comments from update-aur.sh

* foo

* bar

* Bring back ARM64 cross-compilation tools

* Add Linux-ARM64-build-and-release branch to workflow

* wip

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: koubas <1354930+koubas@users.noreply.github.com>
Co-authored-by: Benjamin Shafii <benjamin.shafii@gmail.com>
2026-02-16 20:33:52 -08:00
ben
6284b581f7 chore: rename openwrk to openwork-orchestrator (#573)
* chore(orchestrator): rename openwrk to openwork-orchestrator

Rename the host package and internal references from openwrk to openwork-orchestrator, and expose the CLI as 'openwork'.

Update desktop/UI runtime wiring, release workflows, and docs; bundle the Tauri sidecar as 'openwork-orchestrator' to avoid Cargo package name collisions.

* chore: keep orchestrator publish script executable

* chore: update pnpm lockfile

* chore: sync lockfile with orchestrator deps

* docs: update orchestrator usage + release notes

Document that openwork-orchestrator installs the 'openwork' CLI, update release command wording, and remove obsolete workflow branch trigger.
2026-02-15 14:24:42 -08:00
Benjamin Shafii
0afdfa0af6 chore: rename owpenwork to opencode-router 2026-02-14 23:28:46 -08:00
ben
32cc853d10 refactor(router): rename owpenbot to opencode-router (#567) 2026-02-14 20:53:06 -08:00
ben
a060ade6b5 chore(dev): auto-build dev:headless-web binaries (#514) 2026-02-09 22:40:51 -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
47c3c49bea feat(identities): show bot info, disconnect, and isolate owpenbot 2026-02-08 20:03:45 -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.
2026-02-06 10:27:40 -08:00
Benjamin Shafii
5b8d957b68 feat(release): add prepare + ship scripts for two-command releases
- scripts/release/prepare.mjs: bump, lockfile, review, commit, tag
- scripts/release/ship.mjs: push tag + dev, print GHA URLs
- Both support --dry-run for safe testing
- Add pnpm aliases: release:prepare, release:ship, etc.
2026-02-05 18:35:19 -08:00