Commit Graph

9 Commits

Author SHA1 Message Date
johnyeo
f46bdad307 chore: added bun dw enable / disable 2026-05-19 18:01:48 +01:00
johnyeo
36e530dee7 added migrations to git 2026-05-18 20:48:51 +01:00
amianthus
579d7b3132 feat: 🎸 empty drizzle for dw 2026-05-17 15:49:55 +01:00
John Yeo
1d35a6180b cleanup 2026-05-17 10:26:49 +01:00
amianthus
8274cc7510 feat(dw): 🎸 split provisioning from dev server for orchestrator setup/run/teardown
Conductor and Superset distinguish setup (one-shot provisioning on
workspace creation), run (restartable dev server bound to the Run
button's pane), and teardown (cleanup on deletion). The single 'bun dw'
entrypoint conflated all three. Splits cmdDefault into cmdSetup
(provision only, returns the registry entry) and cmdRun (load entry,
kill ports, startDev inline). Adds startDev opts.allowTmux so cmdRun
forces inline regardless of TTY — the Run pane owns the process. Direct
CLI 'bun dw' still works byte-for-byte via the default.ts shim. Replaces
.superset/setup.sh and .conductor/config.json with the three-field {
setup, run, teardown } shape pointing at the new subcommands. Adds
scripts/dw/README.md as the agent-facing guide.
2026-05-16 15:10:14 +01:00
amianthus
93e4b8fe28 fix(dw): 🐛 guard rmSync against malformed branch names in reconcile
The deleteBranch call was correctly gated by BRANCH_NAME_RE, but the
subsequent rmSync of drizzle-local/<branchName> was not. A crafted
branchName like '../../etc' could trigger recursive deletion of
unintended paths. Restructured the orphan loop so a single regex guard
covers both deletion paths.
2026-05-16 15:07:53 +01:00
amianthus
47f4dfbda6 fix(dw): 🐛 use readdirSync instead of shelling out to ls
Bun.spawnSync([ls, dir]) was fragile on Windows and mishandled filenames
with spaces. Switched to readdirSync from node:fs, which is already in
scope.
2026-05-16 15:07:44 +01:00
amianthus
7027470fb2 fix(dw): 🐛 fail fast when portless alias registration fails
Previously logged to stderr and continued, leaving dev startup
proceeding with broken wtN.localhost URLs. Now calls fatal() so the
caller halts before downstream code uses the invalid alias.
2026-05-16 15:07:12 +01:00
amianthus
25e920bbd3 feat(dw): 🎸 parallel agent worktrees with isolated infra + test harness
bun dw spins up a fully isolated per-worktree dev stack: Neon DB branch,
Dragonfly + ElasticMQ via docker compose, portless aliases, tmux
session, and emulate.dev Google OAuth. Workers, dev server, vite,
checkout, and stripe-listen run as concurrently siblings. bun setup-test
auto-runs on first dw and seeds unit-test-org via
clearOrg+setupOrg+ensureDefaultStripeAccount with 13 features + team
invites for all 5 useautumn.com members. Hardcoded localhost URLs in
test scenarios now read AUTUMN_TEST_BASE_URL/AUTUMN_TEST_VITE_URL.
preload-env.ts loads .env.local so bun t/cm/setup-test route to the
worktree server. 1265-line scripts/dw.ts split into scripts/dw/ module
(index + commands + helpers). server/src/db/initDrizzle.ts reverted to
upstream (search_path concerns solved by per-branch Neon isolation).
Workers enabled in agent worktrees now that SQS is per-worktree via
ElasticMQ.
2026-05-16 02:02:43 +01:00