Uh oh!
There was an error while loading. Please reload this page.
fix(spec): correct false CoreServiceName JSDoc claims in contracts/*.ts - #9762
Merged
Conversation
email-service.ts claimed "Aligned with CoreServiceName 'email'" but
CoreServiceName has no `email` member — email is subsumed under
`notification`. The runtime slot `'email'` is real (registered by
`@objectstack/plugin-email`); only the claim about where the name comes
from was false. Corrected to name the registry slot and its registrant.
Swept all 16 copies of the "Aligned with CoreServiceName 'X'" template
sentence across packages/spec/src/contracts/*.ts against the actual
CoreServiceName enum. Two more were false: export-service.ts ('export')
and seed-loader-service.ts ('seed-loader' + a fabricated
"SeedLoaderProtocol in data/seed-loader.zod.ts" that does not exist
anywhere in the repo) — neither is a CoreServiceName member nor has any
evidenced registerService binding. The other 13 are true and left
byte-identical.
No CoreServiceName member added (the #9630-class forbidden fix). JSDoc
prose only — no interface shape, no runtime, no schema changes.
Fixes#9752
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016D9wdJR14KKCxz1WgdAzcwContributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 115 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
os-elon
marked this pull request as ready for review
August 18, 2026 22:36
os-elon
enabled auto-merge
August 18, 2026 22:36
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#9752
What
packages/spec/src/contracts/email-service.ts:11claimed "Aligned with CoreServiceName 'email' in core-services.zod.ts" —CoreServiceNamehas noemailmember (email is subsumed undernotification). The runtime slot'email'is real (@objectstack/plugin-emailcallsctx.registerService('email', ...)); only the claim about where the name comes from was false. Corrected to name the real registry slot and its registrant, and to note the relationship to'notification'— per the card's suggested resolution. No enum member was added (the #9630-class forbidden fix).Template sweep (triage-instructed)
The "Aligned with CoreServiceName 'X' in core-services.zod.ts" sentence is copied across 16 files in
packages/spec/src/contracts/*.ts. Checked every instance against the actualCoreServiceNameenum (packages/spec/src/system/core-services.zod.ts):metadata, data, auth, file-storage, search, cache, queue, automation, analytics, realtime, job, notification, ai, i18n, ui.auth-service.tsauthnotification-service.tsnotificationautomation-service.tsautomationanalytics-service.tsanalyticsstorage-service.tsfile-storageexport-service.tsexportCoreServiceNameslot, no evidenced provider binding at all (noregisterService('export', ...)anywhere in the tree, no implementer)ai-service.tsairealtime-service.tsrealtimejob-service.tsjobi18n-service.tsi18nmetadata-service.tsmetadatacache-service.tscachequeue-service.tsqueueemail-service.tsemail'email'is real, registered by@objectstack/plugin-email, subsumed undernotificationin the enumsearch-service.tssearchseed-loader-service.tsseed-loader+ "SeedLoaderProtocol in data/seed-loader.zod.ts"CoreServiceNameslot, no registration binding, andSeedLoaderProtocoldoes not exist anywhere in the repo (not even indata/seed-loader.zod.ts, whose exports areSeedLoaderRequestSchema/SeedLoaderResultSchema/SeedLoaderConfigSchema).metadata-protocol'sSeedLoaderServiceimplements the contract by direct construction, notctx.registerService.Totals: 16 checked, 13 true (left byte-identical), 3 false (fixed).
data-engine.ts("Aligned with 'src/data/data-engine.zod.ts'") andllm-adapter.ts("Aligned withIAIServiceinai-service.ts") also contain "Aligned with" sentences but are a different claim shape (pointing at a schema file / sibling contract, not assertingCoreServiceNamemembership) — out of this sweep's scope, not evaluated for truth here.Scope
JSDoc prose only — no interface shape, no runtime, no schema changes. No member was added to
CoreServiceName. Verifiedcontracts/*.tsJSDoc feeds no generator on this diff: no reference doc undercontent/docs/references/embeds these sentences (grepped), and no other source file quotes the "Aligned with CoreServiceName" sentence outsidepackages/spec/src/contracts/*.tsitself.Tests
pnpm --filter '@objectstack/spec' build— clean.pnpm --filter '@objectstack/spec' test— full package suite ran (the name filter did not narrow it): 413 test files / 10,987 tests passed.pnpm --filter '@objectstack/spec' typecheck— pass.node scripts/pm/dispatch-gates.mjs), all green atfee9e2a:check:changeset-gate-self-tests,check:cross-package-test-inputs,check:doc-formula-expressions,check:empty-state,check:liveness,check:merge-driver,check:objectui-changeset,check:spec-parsed-alias,check:strictness-ledger,check:type-source-resolution,check:variant-docs,check-adr-0087-registration.mjs,check-changeset-no-major.mjs,check-cross-package-test-inputs.mjs,check-dev-prereqs.mjs --self-test(matches CI's invocation — the full-workspace-build scan mode is not what CI runs here),check-empty-changeset.mjs,check-affected-docs.mjs(self-test). Pluscheck:generated(13/13 artifacts up to date — confirmscontracts/*.tsJSDoc feeds no generator on this diff) andcheck:docs(229 generated files in sync), andnode scripts/check-nul-bytes.mjs(clean).Changeset
patchon@objectstack/spec— comment-only, but the JSDoc text is emitted into the published package's.d.tsoutput, so it is a (very small) user-visible change.Generated by Claude Code