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
[finding] create-objectstack: non-blank remote templates fail first npm run build on published 16.1.0 — fix is at HEAD, needs 17.0.0 release + canary verification #7644
create-objectstack@16.1.0 (current npm latest) scaffolds a project from any non-blank published remote template, and its very first npm run build exits 2 with a namespace-prefix validation error. Reproduced on 4 independent templates in the QA run — todo / compliance / content / contracts (2 / 4 / 5 / 3 issues respectively); procurement was blocked(environment) (codeload 503/403 in the sandbox). The blank template is clean end to end. This triggers for any project name whose sanitized namespace differs from the template's own — i.e. every real user, and CI's own canary-app.
Root cause
Located, and already fixed at repo HEAD — the residual action is a release, not a repair.
Published 16.1.0 rewrites namespace: in objectstack.config.ts to the sanitized project name but not the object-name literals, because it reads the template's original namespace from objectstack.manifest.json only. A remote template's manifest is the template-registry document, which has no namespace key, so the guard falls through and the literal rewrite is silently skipped (config says namespace tpl_todo while the object literal still says name: 'todo_task').
The fix is present on origin/main (confirmed at filing time): packages/create-objectstack/src/rewrite-identity.ts makes objectstack.config.ts the authority and self-verifies via findStaleNamespacePrefixes, wired in at packages/create-objectstack/src/index.ts:311. The file's own comment names the prior incident fix(devx): init-service 门禁认全部服务访问器,不只 getService (#4835) #4902 ("all five published remote templates failed this way, and the nightly registry canary had been red on every one of them for weeks with nobody watching"). Pin packages/create-objectstack/src/rewrite-identity.test.ts is present (10/10 pass per the run).
npx -y create-objectstack@latest canary-app -t todo --skip-skills --skip-install
cd canary-app && npm install && npm run build
Expected exit 0. Actual (with published 16.1.0) exit 2:
defineStack namespace-prefix validation failed (2 issues):
Object todo_label is missing the package namespace prefix.
Rename it to canary_app_todo_label (namespace = canary_app)
Residual asks (release-verification, not code repair)
Confirm the rewrite-identity.ts fix ships in the create-objectstack@17.0.0 release — npm latest is still 16.1.0, so every new user picking a non-blank template today gets a project that fails first build.
Confirm the nightly registry canary goes green once 17.0.0 is published.
Source
Extracted from the QA run #7628 (framework 92f26f7, console 6314e87f).
Symptom
create-objectstack@16.1.0(current npmlatest) scaffolds a project from any non-blank published remote template, and its very firstnpm run buildexits 2 with a namespace-prefix validation error. Reproduced on 4 independent templates in the QA run —todo/compliance/content/contracts(2 / 4 / 5 / 3 issues respectively);procurementwasblocked(environment)(codeload 503/403 in the sandbox). Theblanktemplate is clean end to end. This triggers for any project name whose sanitized namespace differs from the template's own — i.e. every real user, and CI's owncanary-app.Root cause
Located, and already fixed at repo HEAD — the residual action is a release, not a repair.
16.1.0rewritesnamespace:inobjectstack.config.tsto the sanitized project name but not the object-name literals, because it reads the template's original namespace fromobjectstack.manifest.jsononly. A remote template's manifest is the template-registry document, which has nonamespacekey, so the guard falls through and the literal rewrite is silently skipped (config says namespacetpl_todowhile the object literal still saysname: 'todo_task').origin/main(confirmed at filing time):packages/create-objectstack/src/rewrite-identity.tsmakesobjectstack.config.tsthe authority and self-verifies viafindStaleNamespacePrefixes, wired in atpackages/create-objectstack/src/index.ts:311. The file's own comment names the prior incident fix(devx): init-service 门禁认全部服务访问器,不只getService(#4835) #4902 ("all five published remote templates failed this way, and the nightly registry canary had been red on every one of them for weeks with nobody watching"). Pinpackages/create-objectstack/src/rewrite-identity.test.tsis present (10/10 pass per the run).Reproduction
Expected exit 0. Actual (with published 16.1.0) exit 2:
Residual asks (release-verification, not code repair)
rewrite-identity.tsfix ships in thecreate-objectstack@17.0.0release — npmlatestis still16.1.0, so every new user picking a non-blank template today gets a project that fails first build.Source
Extracted from the QA run #7628 (framework 92f26f7, console 6314e87f).