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
{{ message }}
Repository navigation
Datascripts: pin Bun and generate Package schema typings #314
Category: enhancement Summary: Establish the reproducible Bun and schema-type toolchain for Package authors.
Current behavior:
The repository has no Bun project, Package Datascript runner, generated TypeScript schema, or TypeScript compatibility check.
Desired behavior:
Pin one Bun version and commit bun.lock. Package-author commands verify that exact compatible toolchain through doctor. Generate TypeScript types from the current Module schema, including installed Package tables, into a stable author-facing location. Run tsc --noEmit as the typecheck gate. Operators applying generated Package Deltas do not need Bun.
Datascripts are trusted author-time code. Run them from a documented Package working directory. Do not describe the runner as a security sandbox.
Key interfaces:
Pinned Bun version and lockfile
Package build and doctor commands
Generated schema typings
TypeScript typecheck command
Acceptance criteria:
A fresh author checkout installs the locked dependencies with the pinned Bun version.
Doctor reports missing or incompatible Bun with the exact remediation.
Type generation reflects core and installed Package tables.
Renaming a schema field makes code using the old name fail tsc --noEmit.
An Operator can apply a prebuilt Package without Bun or Node tooling.
Partially shipped. lyracore-cli #34/#35 landed the spine, and .lyracore-cli-rev already pins a descendant of the #35 merge:
lyracore packages build: spacetime generate --lang typescript --no-config into datascripts/generated/, then bun install --frozen-lockfile, then the locked project-local tsc --noEmit under Bun, with a prerequisite check for package.json/bun.lock/tsconfig.json.
doctor: exact Bun 1.3.7 pin with version-specific remediation; warn-only, so Operators never need Bun.
datascripts/bun.lock + package.json (engines.bun 1.3.7) + tsconfig.json are committed in this repo.
What remains in scope here:
packages build trusts whatever bun is on PATH; only warn-only doctor checks the pin. The build itself should fail on a missing or mismatched Bun with the same remediation.
Criterion 3 (typings cover installed Package tables) holds by construction (module/build.rs compiles enabled Package tables into the wasm the typegen reads) but no Datascript exercises a Package-defined table type. The reference Datascript should import one to prove it.
Activity
Mathih13 commentedon Aug 26, 2026
Partially shipped. lyracore-cli #34/#35 landed the spine, and
.lyracore-cli-revalready pins a descendant of the #35 merge:lyracore packages build:spacetime generate --lang typescript --no-configintodatascripts/generated/, thenbun install --frozen-lockfile, then the locked project-localtsc --noEmitunder Bun, with a prerequisite check forpackage.json/bun.lock/tsconfig.json.doctor: exact Bun 1.3.7 pin with version-specific remediation; warn-only, so Operators never need Bun.datascripts/bun.lock+package.json(engines.bun 1.3.7) +tsconfig.jsonare committed in this repo.What remains in scope here:
packages buildtrusts whateverbunis on PATH; only warn-onlydoctorchecks the pin. The build itself should fail on a missing or mismatched Bun with the same remediation.module/build.rscompiles enabled Package tables into the wasm the typegen reads) but no Datascript exercises a Package-defined table type. The reference Datascript should import one to prove it.Routed elsewhere, not gaps in this issue:
packages buildin CI is Datascripts: detect stale artifacts and enforce core-tip CI #316's brief (core-tip CI).