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
Part of #3682 (ADR-0106 metadata-plane FLS, implemented in PR #6612). Filed by the accepting seat per the linkage-chore rule; packages/spec is the spec seat's surface, so the implementing PR deliberately did NOT touch it and shipped both members honoured-but-undeclared. This card is the declaration half.
What ships undeclared today (deliberate, precedented — see PR #6612's report on #3682)
metadata.maskObjectFields (ADR-0106 D8, default on): read via (metadata as any).maskObjectFields in packages/rest's normalizeConfig, following the existing (api as any).enableOpenApi / (api as any).enableSearch precedent. Needs a declared seat on MetadataEndpointsConfigSchema — maskObjectFields: z.boolean().default(true) — so the key is type-safe in objectstack.config.ts.
One spec PR closes both. Acceptance-surface note for the spec seat: declaring an optional member and a defaulted boolean key are additive; whether either needs the strictness-ledger treatment is the spec seat's judgment.
Part of #3682 (ADR-0106 metadata-plane FLS, implemented in PR #6612). Filed by the accepting seat per the linkage-chore rule;
packages/specis the spec seat's surface, so the implementing PR deliberately did NOT touch it and shipped both members honoured-but-undeclared. This card is the declaration half.What ships undeclared today (deliberate, precedented — see PR #6612's report on #3682)
metadata.maskObjectFields(ADR-0106 D8, default on): read via(metadata as any).maskObjectFieldsinpackages/rest'snormalizeConfig, following the existing(api as any).enableOpenApi/(api as any).enableSearchprecedent. Needs a declared seat onMetadataEndpointsConfigSchema—maskObjectFields: z.boolean().default(true)— so the key is type-safe inobjectstack.config.ts.ISecurityService.getMetadataReadableFields(ADR-0106 D7): implemented inplugin-securityand registered as an explicitObject.assignextension of the typed service literal (visible, commented), feature-detected by the dispatch layers with fallback togetReadableFields. Needs the optional member declared onpackages/spec/src/contracts/security-service.ts— same precedent asloadDiagnosed/getDiagnosed(dispatcher 多个 domain 调用契约里没有的方法 —— #4087 的同类,只是方向相反(契约缺声明,不是调用点乱编) #4127 batch 4 / fix(metadata,metadata-protocol,objectql): getDiagnosed —— get() 不再把 loader outage 答成「这一项没声明」 (#5840) #6051: call sites and implementation already agree, only the contract is missing).One spec PR closes both. Acceptance-surface note for the spec seat: declaring an optional member and a defaulted boolean key are additive; whether either needs the strictness-ledger treatment is the spec seat's judgment.
Blocked-by: #3682
(The
Blocked-byclears when #3682 closes on PR #6612's merge — the members being declared must exist on main first.)