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
Filed unassigned as an out-of-scope finding from the #8134 implementation round (the OBJECTSTACK_SPEC_DIST injection). #8134 asked its dev to enumerate every @objectstack/* package that reaches the console's vendor bundle and report which are resolved from objectui's lockfile rather than from this workspace. This is that list. ⛔ Nothing here is addressed by that PR, by design — it injected spec only.
The shape, restated once
scripts/build-console.sh builds the console at the pinned objectui SHA with pnpm install --frozen-lockfile. Every @objectstack/* package objectui declares therefore resolves to the last published tarball, never to this workspace. For any such package, a change made here is invisible in the shipped console until three ordered cross-repo steps complete: publish, objectui lockfile refresh, console pin bump. The framework-side card closes green the whole time.
Injection is the escape hatch, and it is now used twice: OBJECTSTACK_CLIENT_DIST (pre-existing) and OBJECTSTACK_SPEC_DIST (#8134).
Measured inventory
Measured in the real build tree (.cache/objectui-82a94170c405) at pin 82a94170c405, framework origin/main @ 40162f1e2:
All six are installed from npm into the build tree's pnpm store. So 4 of 6 remain on the publish-ordering trap after #8134.
@objectstack/lint is confirmed to actually reach the console bundle, not merely to be installed: the vite build resolves it and emits browser-externalization warnings naming its dist/index.js by path, on every console build.
Why this is a finding and not a bug
⚠️ No user-visible break is measured for any of the four. The exposure is real but latent, and the severity is not uniform:
spec was the acute one precisely because it is the authorable surface the Studio designer validates against — a stale copy turns a freshly declared key into an "unrecognized key" banner. That property does not transfer automatically to the other four.
core and sdui-parser are transitive with zero direct import sites in objectui, so their bundled surface is whatever client/spec/lint drag in.
formula (2 declarers) and lint (1) are directly declared and the more plausible next instance.
The right next step is a judgement about which of the four can carry an authoring-visible surface at all, not a reflexive fourfold injection — each injection adds a hook that must exist on the objectui side (spec's needed objectui#4854, a subpath-aware resolver, because a plain prefix alias cannot serve an exports map).
Suggested scoping, not a recommendation
Decide per package whether its console-visible surface can go stale in a way an author or admin would notice. Only those need injection.
If more than one does, the third injection is the point to stop copying the block and factor build-console.sh's guard/export/assert triple into a loop over a declared list — two is a coincidence, three is a pattern.
Filed unassigned as an out-of-scope finding from the #8134 implementation round (the
OBJECTSTACK_SPEC_DISTinjection). #8134 asked its dev to enumerate every@objectstack/*package that reaches the console's vendor bundle and report which are resolved from objectui's lockfile rather than from this workspace. This is that list. ⛔ Nothing here is addressed by that PR, by design — it injectedspeconly.The shape, restated once
scripts/build-console.shbuilds the console at the pinned objectui SHA withpnpm install --frozen-lockfile. Every@objectstack/*package objectui declares therefore resolves to the last published tarball, never to this workspace. For any such package, a change made here is invisible in the shipped console until three ordered cross-repo steps complete: publish, objectui lockfile refresh, console pin bump. The framework-side card closes green the whole time.Injection is the escape hatch, and it is now used twice:
OBJECTSTACK_CLIENT_DIST(pre-existing) andOBJECTSTACK_SPEC_DIST(#8134).Measured inventory
Measured in the real build tree (
.cache/objectui-82a94170c405) at pin82a94170c405, frameworkorigin/main@40162f1e2:@objectstack/spec@objectstack/client@objectstack/formula@objectstack/lint@objectstack/core@objectstack/sdui-parserAll six are installed from npm into the build tree's pnpm store. So 4 of 6 remain on the publish-ordering trap after #8134.
@objectstack/lintis confirmed to actually reach the console bundle, not merely to be installed: the vite build resolves it and emits browser-externalization warnings naming itsdist/index.jsby path, on every console build.Why this is a
findingand not a bugspecwas the acute one precisely because it is the authorable surface the Studio designer validates against — a stale copy turns a freshly declared key into an "unrecognized key" banner. That property does not transfer automatically to the other four.coreandsdui-parserare transitive with zero direct import sites in objectui, so their bundled surface is whateverclient/spec/lintdrag in.formula(2 declarers) andlint(1) are directly declared and the more plausible next instance.The right next step is a judgement about which of the four can carry an authoring-visible surface at all, not a reflexive fourfold injection — each injection adds a hook that must exist on the objectui side (spec's needed
objectui#4854, a subpath-aware resolver, because a plain prefix alias cannot serve an exports map).Suggested scoping, not a recommendation
build-console.sh's guard/export/assert triple into a loop over a declared list — two is a coincidence, three is a pattern.scripts/assert-console-spec-injection.mjs(added by #7804'sGlobalFilterSchema.objectis unreachable in the Studio designer, and no console pin bump can fix it — the console vendors the PUBLISHED@objectstack/spec, which the key postdates #8134) derives its probes from the two package trees on disk and is not spec-specific in principle; it could generalize.Refs: #8134 (the
specinjection and the measurement that produced this list),objectstack-ai/objectui#4854(the hook the spec injection needed).