Found while landing #7 (demo seed). The seed itself is fine; this is a platform interaction it cannot fix from src/data/, so it is filed rather than worked around (AGENTS.md rule 9).
The problem
plugin-auth seeds the dev admin (admin@objectos.ai / admin123) on a zero-user database, and it does so on the kernel:ready hook — which fires after the app's declarative seed has run. #7 seeds thirteen sys_user rows, so by the time that check runs the DB is no longer zero-user, the admin is never created, and because the gate is "any human row exists" it is never created on a later boot either.
Result on a fresh DB: sign-in returns 401, sys_account is empty, and bootstrap-status reports {"hasOwner": true} so the console offers no first-admin flow. Self-registration works but produces a role: "user" account that is not promoted.
Full measurement, both directions, and the suggested platform fix: objectstack-ai/objectstack#14157.
What works today
Verified end to end: if the dev admin already exists, everything is correct. The seed loads 459 rows, the Dev Admin row's email and credential are untouched (the seed record declares only name, so the loader's no-op-replay check skips it rather than updating), and all thirteen demo screens are populated for the logged-in admin.
So the workaround is a one-time two-step boot on a clean checkout:
git stash list # (nothing to do with this — just don't)# 1. mint the admin with the app seed out of the way, e.g. from a tree at main:# pnpm dev → prints "🔑 Dev admin: admin@objectos.ai / admin123"# 2. boot this branch against that same .objectstack/data — the seed loads onto it
Anyone who has already run pnpm dev on this repo before is unaffected: .objectstack/data persists per worktree, so the admin is already there and the demo just works.
The decision this needs
Either wait for objectstack#14157, or decide that duly documents the two-step boot in its README until it lands. Not adjudicated here — it is a product call about what a first-time evaluator should experience, and the fix is not ours to make.
Filed unassigned for triage.
Found while landing #7 (demo seed). The seed itself is fine; this is a platform interaction it cannot fix from
src/data/, so it is filed rather than worked around (AGENTS.md rule 9).The problem
plugin-authseeds the dev admin (admin@objectos.ai/admin123) on a zero-user database, and it does so on thekernel:readyhook — which fires after the app's declarative seed has run. #7 seeds thirteensys_userrows, so by the time that check runs the DB is no longer zero-user, the admin is never created, and because the gate is "any human row exists" it is never created on a later boot either.Result on a fresh DB:
sign-inreturns 401,sys_accountis empty, andbootstrap-statusreports{"hasOwner": true}so the console offers no first-admin flow. Self-registration works but produces arole: "user"account that is not promoted.Full measurement, both directions, and the suggested platform fix: objectstack-ai/objectstack#14157.
What works today
Verified end to end: if the dev admin already exists, everything is correct. The seed loads 459 rows, the
Dev Adminrow's email and credential are untouched (the seed record declares onlyname, so the loader's no-op-replay check skips it rather than updating), and all thirteen demo screens are populated for the logged-in admin.So the workaround is a one-time two-step boot on a clean checkout:
Anyone who has already run
pnpm devon this repo before is unaffected:.objectstack/datapersists per worktree, so the admin is already there and the demo just works.The decision this needs
Either wait for objectstack#14157, or decide that duly documents the two-step boot in its README until it lands. Not adjudicated here — it is a product call about what a first-time evaluator should experience, and the fix is not ours to make.
Filed unassigned for triage.