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(spec)!: resolve the MetadataEvent/MetadataBulkRegisterRequest dual source — ./kernel copies removed, ./api keeps the bare names (#4587)
The three #4535-C2 baseline rows were the #4411 trap on the kernel metadata
family: MetadataEvent(Schema) and MetadataBulkRegisterRequestSchema each had
a second, different declaration in ./kernel, and which shape a consumer got
depended only on the import path.
Import-statement-level scan across framework, cloud and objectui:
- ./kernel copies: zero importers outside their own unit test in all three
repos. The kernel MetadataEvent lifecycle vocabulary
(metadata.registered/.../exported) has NO producer anywhere; the kernel
bulk-register per-item `namespace` field matches no enforced write path
(IMetadataService.bulkRegister and MetadataManager.bulkRegister both take
{type,name,data} items only).
- ./api MetadataEvent is the live realtime contract: MetadataManager
publishes metadata.{type}.{created|deleted} events and
@objectstack/client / client-react subscribe against the type.
- ./api MetadataBulkRegisterRequestSchema is the POST /api/meta/bulk/register
contract whose item shape matches the runtime.
Disposal (route 1, dead-side delete, v17 major window): both kernel copies
removed; ./api is the sole owner of the bare names. Name continuity for the
kernel-only type alias: `MetadataBulkRegisterRequest` (z.input) is now
exported from ./api beside its schema, per the family convention and the
#4570 docs-import concern. Compile-time pin (typeof import conditional type,
#4581 pattern) keeps the bare names out of ./kernel; new events.test.ts
covers the surviving ./api declarations.
dual-source-exports.baseline.json: exactly the 3 named rows removed
(31 -> 28). json-schema.manifest: kernel/MetadataEvent and
kernel/MetadataBulkRegisterRequest retired deliberately; their 11
authorable-surface rows hand-deleted per the #4458/#4568/#4581 precedent
(plugin TS types, schema bodies deleted — no silent-strip path, misuse fails
at the import site at compile time). Changeset: @objectstack/spec major with
FROM -> TO migration lines.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M9uWvoEp9CoLzYjNExj9sL
* chore(spec): regenerate api-surface + reference docs for #4587 (check:generated --fix, 2 proved stale)
api-surface.json: ./kernel loses MetadataEvent(type)/MetadataEventSchema and
MetadataBulkRegisterRequest(type)/MetadataBulkRegisterRequestSchema; ./api
gains the MetadataBulkRegisterRequest type alias beside its schema.
Reference docs: the api/metadata-plugin.mdx page (which documented the
removed kernel pair under the api section and advertised a then-nonexistent
./api type import) is no longer emitted; api/events.mdx now documents
MetadataEvent, api/metadata.mdx documents MetadataBulkRegisterRequest, and
kernel/metadata-plugin.mdx drops the removed schemas.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M9uWvoEp9CoLzYjNExj9sL
* chore(spec): regenerate reference docs after merging main's import-surface gate (#4595)
The merge brought in build-docs' new import-surface ratchet. This PR's
MetadataBulkRegisterRequest type alias on ./api closes the gap the fresh
baseline had accepted, so its line is deleted (shrink-only ratchet).
---------
Co-authored-by: Claude <noreply@anthropic.com>
feat(spec)!: `@objectstack/spec/kernel` no longer exports `MetadataEvent(Schema)` / `MetadataBulkRegisterRequest(Schema)` — the bare names belong to `./api` alone (#4587)
6
+
7
+
The names `MetadataEvent` / `MetadataEventSchema` /
8
+
`MetadataBulkRegisterRequestSchema` resolved to **two different declarations**
9
+
depending on the import path (`./api` vs `./kernel`) — the #4411 dual-source
0 commit comments