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>
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>
* 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.
* 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>
* 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>
* 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>
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.
- 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.