Skip to content

v4.4.0 — one .vstack directory

Choose a tag to compare

@DeyangChan DeyangChan released this 03 Aug 06:25
· 21 commits to main since this release

The tools stop scattering dot-directories. Everything they write for one machine now lives under .vstack/, one subdirectory per tool.

Was Is
.ui-review/<name>/ .vstack/wireframe/<name>/
.vstack-bridge/ .vstack/bridge/

How the path resolves

State still sits beside the artifact it belongs to, so a review of design/login.html lands in design/.vstack/wireframe/login/ and moving the page moves its review with it. lib/workdir.mjs is the one place that decides: the enclosing .vstack when the artifact already lives in one — the spec tree writes .vstack/specs/<feature>.json, and nesting .vstack/specs/.vstack/bridge/ under it would repeat the name — otherwise the .vstack directly beside it.

.gitignore ignores the two tool directories at any depth rather than .vstack/ as a whole, because pipeline.json, specs/ and build/ are the pipeline and belong in the repo:

**/.vstack/wireframe/
**/.vstack/bridge/

Breaking

Reviews in flight under .ui-review/, and comment drafts under the ui-review:* localStorage keys, are orphaned. There is no migration. The files stay on disk; the tools no longer look there. Finish or discard any open review before updating.

The old paths deliberately kept their names for two releases to avoid exactly this. That stopped paying once one product meant three dot-directories in a project.

Update

Claude Code:

/plugin marketplace update cavalry-collective
/plugin update vstack@cavalry-collective
/reload-plugins

Codex:

codex plugin marketplace upgrade cavalry-collective
codex plugin add vstack@cavalry-collective