Skip to content

The two in-repo manifest authoring sites (driver-memory / plugin-hono-server objectstack.config.ts) sit outside every tsc program and import ObjectStackManifest from an entry that does not export it #13284

Description

@claude

Measured on claude/issue-11332-manifest-container-retirement (base origin/main@7404925), while executing the #11332 retirement — found by the retirement's own cross-package reverse verification, filed rather than fixed (import hygiene and tsc-program scope are a different defect class from a dead-container retirement).

What is measured

  1. packages/drivers/driver-memory/objectstack.config.ts and packages/plugins/plugin-hono-server/objectstack.config.ts both begin with an import of ObjectStackManifest from @objectstack/spec/system.
  2. @objectstack/spec/system does not export that name: packages/spec/src/system/index.ts never re-exports kernel/manifest.zod, and the built dist/system/index.d.ts has zero occurrences of ObjectStackManifest (the real home is @objectstack/spec/kernel).
  3. If either file were inside a tsc program, that import would be a hard TS2305. Yet pnpm --filter @objectstack/driver-memory typecheck exits 0 on the same tree. Conclusion: the config files are typechecked nowhere — the ObjectStackManifest annotation on the two manifests is decorative.
  4. Positive control, same tree, same day: a probe file placed inside packages/objectql/src importing the type from @objectstack/spec/kernel and authoring a retired key produced the expected error (first TS2305 under the /system spelling, then TS2322 against the tombstone under the /kernel spelling) — so the channel works wherever a file IS inside a program.

Why this matters now

The #11332 / #10724 / #4914 manifest retirements all lean on the retiredKey() double channel: tsc (input typed never) plus parse. The tsc half is blind at exactly the two in-repo manifest authoring sites — the only places in this repo where a plugin manifest is authored in TypeScript. The #11332 PR cleaned both by hand; nothing would catch a future re-introduction at author time.

Class neighbours (not duplicates)

#4311 is the framework-wide "tsup-built packages, nobody typechecks" worklist and #12511 records the test-file variant of invisible type errors; this card is sharper than both: the files sit outside even the programs that DO run, and carry an import that would fail the moment anyone widened the program. Fixing it is two small moves per package: import from @objectstack/spec/kernel, and include objectstack.config.ts in the package's tsc program.


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions