← All posts

Vocion 2.0: your workspace leaves the repo

The first breaking release removes the bundled workspace from vocion-core. Workspaces now live beside the checkout as directories you own, scaffolded with one command and located via WORKSPACE_PATH.

Vocion Teamvocion-v2.0.0

Until now every vocion-core checkout shipped with a workspace baked into it: workspace/metacto, stale pre-1.0 demo content that every code path silently fell back to whenever WORKSPACE_PATH was unset. Your business context — the layer the whole framework exists to serve — lived inside our repo's git history, tangled into framework upgrades and invisible as the separate thing it is. v2.0.0 breaks that coupling.

What's new

Why we built it

A workspace is git-backed, version-controlled context for one tenant: agent prompts, operations, playbooks, workflows, object types. The entire point of workspace-as-code is that the client owns it — reviewable in PRs, diffed across versions, portable between deployments. Keeping one inside vocion-core undermined all of that. It couldn't be its own repo, its edits rode along in framework PRs, and the silent workspace/metacto fallback meant a misconfigured deployment looked like a working one — reading prompts you never wrote.

The peer-level layout also matches how real deployments are shaped. When vocion-core is a submodule of a deployment repo, workspaces sit beside it:

<deployment-repo>/
├── vocion-core/              # the framework (submodule)
└── workspace/
    ├── <tenant-a>/
    └── <tenant-b>/

Upgrading the framework is now a submodule bump; changing what an agent knows is a workspace PR. Two repos, two review streams, two owners.

How to upgrade

Fresh install — scaffold, point, apply:

npm run workspace:scaffold -- acme-revenue        # creates ../workspace/acme-revenue
export WORKSPACE_PATH=../workspace/acme-revenue
npm run workspace:apply -- ../workspace/acme-revenue --project <id|slug>

Existing install — your database is untouched by this release; only the file layout moves. Move your workspace directory out of the checkout to the peer level, make it a git repo if it isn't one, and set WORKSPACE_PATH everywhere the app runs:

mv workspace/<org> ../workspace/<org>
export WORKSPACE_PATH=../workspace/<org>          # absolute paths are safest
npm run workspace:check -- ../workspace/<org>     # validate
npm run workspace:apply -- ../workspace/<org> --project <id|slug>

If you were leaning on the deleted demo content (don't — it was pre-1.0 and stale), recover it from history with git show v1.74.0:workspace/metacto before you pull, or scaffold clean and re-author. Two behaviors got stricter along the way: operations with a postprocess scriptFile now error without WORKSPACE_PATH instead of guessing, and the MCP playbook tools do the same. The full step-by-step, env var table, and gotchas are in the upgrade guide below.

Where to find it