You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(seed): never mint usr_system — resolve os.user.id to NULL at seed time
Eliminates the usr_system placeholder entirely (not just lazily). The seed
loader now binds os.user to a NULL identity when none is supplied, so
`owner_id: cel`os.user.id`` resolves to NULL instead of crashing or dropping the
record — semantically "owned by whoever becomes the first admin", which the
first-admin handoff (claimSeedOwnership) then fills in.
- objectql/seed-loader: bind `user: identity?.user ?? { id: null }`; the
unresolved-expression error message no longer tells authors to provision a
system user (os.user.id now resolves to null).
- runtime/app-plugin: remove `ensureSeedIdentity` (the only code that inserted a
usr_system row) and its SystemUserId import; pass no seed identity.
- spec: SystemUserId.SYSTEM redocumented as a reserved id that is NO LONGER
auto-provisioned — kept only so legacy DBs' exclusion guards / ownership
handoff still recognize a pre-existing usr_system row.
Tests: new seed-loader-os-user test (os.user.id → null under null identity, →
real id when supplied); updated the runtime seed-loader test that asserted the
old fail-loud-on-unbound contract. objectql 665, runtime 388, plugin-security 97
all green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments