Skip to content

Commit 985a9cd

Browse files
os-elonclaude
andauthored
fix(spec): correct false CoreServiceName JSDoc claims in contracts/*.ts (#9762)
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 Claude-Session: https://claude.ai/code/session_016D9wdJR14KKCxz1WgdAzcw Co-authored-by: Claude <noreply@anthropic.com>
1 parent e9534a4 commit 985a9cd

4 files changed

Lines changed: 17 additions & 3 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@objectstack/spec": patch
3+
---
4+
5+
fix(spec): correct false "Aligned with CoreServiceName '…'" JSDoc claims across `packages/spec/src/contracts/*.ts` — `email-service.ts` now names the real `'email'` runtime slot registered by `@objectstack/plugin-email` (not a `CoreServiceName` member; subsumed under `'notification'`), and `export-service.ts` / `seed-loader-service.ts` now state plainly that they have no evidenced `CoreServiceName` slot or registration binding (`seed-loader-service.ts`'s companion "SeedLoaderProtocol in data/seed-loader.zod.ts" claim was also fabricated — no such export exists). The other 13 template instances were checked against `CoreServiceName` and left byte-identical; they are true. Comment-only; accept/reject behaviour is unchanged (#9752)

‎packages/spec/src/contracts/email-service.ts‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
* `@objectstack/plugin-email`; integrations (nodemailer, third-party
99
* SDKs) plug in as an `IEmailTransport`.
1010
*
11-
* Aligned with CoreServiceName 'email' in core-services.zod.ts.
11+
* Registered as runtime service slot 'email' by `@objectstack/plugin-email`
12+
* (`ctx.registerService('email', ...)`). Not a `CoreServiceName` member
13+
* itself — email delivery is subsumed under the 'notification' core service.
1214
*
1315
* Follows Dependency Inversion Principle - plugins depend on this
1416
* interface, not on concrete email service implementations.

‎packages/spec/src/contracts/export-service.ts‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
* Follows Dependency Inversion Principle - plugins depend on this interface,
1212
* not on concrete export service implementations.
1313
*
14-
* Aligned with CoreServiceName 'export' in core-services.zod.ts.
14+
* Not a `CoreServiceName` member and not a registered runtime service
15+
* slot — `IExportService` has no evidenced provider binding (see
16+
* core-service-contracts.ts's evidence-bar note).
1517
*/
1618

1719
import type {

‎packages/spec/src/contracts/seed-loader-service.ts‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ import type { Seed } from '../data/seed.zod.js';
2424
* - **ServiceNow**: Sys ID and display value mapping during import
2525
* - **Airtable**: Linked record resolution via display names
2626
*
27-
* Aligned with CoreServiceName 'seed-loader' and SeedLoaderProtocol in data/seed-loader.zod.ts.
27+
* Not a `CoreServiceName` member and not a registered runtime service slot
28+
* (no `SeedLoaderProtocol` export exists in data/seed-loader.zod.ts either —
29+
* the request/result shapes there are `SeedLoaderRequestSchema` /
30+
* `SeedLoaderResultSchema`). `metadata-protocol`'s `SeedLoaderService`
31+
* implements this contract directly, constructed rather than registered
32+
* via `ctx.registerService`.
2833
*/
2934
export interface ISeedLoaderService {
3035
/**

0 commit comments

Comments
 (0)