chore(spec): prune 7 dead field governance/compliance props (dead-surface plan)#1946
Merged
Merged
Conversation
…face plan) Removes FieldSchema props that implied data-protection/governance behavior but had zero runtime consumer — false promises (encryption/masking imply at-rest protection that never happened; the real channel is type:'secret'): encryptionConfig · maskingRule · auditTrail · cached · dataQuality · writeRequiresMasterRead · trackFeedHistory Cleanup: field.zod.ts schema + the now-unused EncryptionConfigSchema/MaskingRuleSchema imports + field.form.ts (5 form fields) + field.test.ts (writeRequiresMasterRead) + field.json ledger; reference docs regenerated. Kept caseSensitive + dependencies (potentially functional — conservative). Field *types* unchanged. Verified: liveness gate green (field 34 live/17 dead); full @objectstack/spec suite green (242 files, 6562 tests); grep-confirmed no object def/seed constructs them; ran the real `objectstack dev` showcase (37 plugins, 75 objects) — boots clean, Console 200, showcase_field_zoo parses+serves (code field no longer carries auditTrail), no field errors in the server log. Second batch of the dead-surface disposition plan (per-cluster verified PRs). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
📓 Docs Drift CheckThis PR changes 1 package(s): 89 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
os-zhuang
added a commit
that referenced
this pull request
Jun 16, 2026
…tui-live (#1947) The liveness ledgers were seeded from the 2026-06 audits, whose RENDERER-side ("dead in both layers") verdicts turn out to be unreliable — the audit did not re-check the objectui repo (../objectui). Verifying directly against objectui shows 9 field props the ledger called `dead` are actually LIVE in the renderer: - externalId → apps/console/.../metadataConverters.ts:125 (reads field.externalId) - currencyConfig → packages/fields/src/index.tsx:469 (reads currencyConfig.defaultCurrency) - searchable → packages/plugin-dashboard/.../WidgetConfigPanel.tsx - inlineTitle / inlineColumns / inlineAmountField → app-shell MetadataProvider + plugin-form/deriveMasterDetail.ts - relatedList / relatedListTitle / relatedListColumns → app-shell RecordDetailView + utils/deriveRelatedLists.ts Pruning these (as the dead-surface plan proposed) would have broken detail-page / master-detail rendering. Reclassified dead→live with objectui evidence; gate green (field 43 live / 8 dead). IMPORTANT: liveness verification must include ../objectui, not just the framework runtime. The already-merged prune batches (#1945 display configs, #1946 governance) were re-verified against objectui and confirmed renderer-dead — safe. Further pruning is paused until the other ledgers + the disposition plan are re-verified against objectui. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 24, 2026
os-zhuang
added a commit
that referenced
this pull request
Jun 24, 2026
) Every runtime-authored metadata item must live in a writable package (base); no orphans. Code/installed packages are read-only; the package is the delete/export/duplicate unit. Unifies the contract across the kernel (saveMetaItem), Studio UI, and ../cloud service-ai-studio AI authoring. Retires the #2252 (coerce-to-null) and #1946 (Local scope) stopgaps. Drafted from a business-user Studio dogfood pass. Status: Proposed. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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 free
to 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.
Second batch of the dead-surface disposition plan. Removes 7 FieldSchema props that implied data-protection/governance behavior but had zero runtime consumer — false promises (encryption/masking imply at-rest protection that never happened; the real channel is
type: 'secret'):encryptionConfig·maskingRule·auditTrail·cached·dataQuality·writeRequiresMasterRead·trackFeedHistoryCleanup: schema + now-unused
EncryptionConfigSchema/MaskingRuleSchemaimports +field.form.ts(5 form fields) +field.test.ts+ ledger; references regenerated. KeptcaseSensitive+dependencies(potentially functional — conservative). Field types unchanged.Verification
@objectstack/specsuite green (242 files, 6562 tests). Grep-confirmed no object def / seed constructs them.objectstack devshowcase (37 plugins, 75 objects): boots clean, Console 200,showcase_field_zooparses + serves (its code field no longer carriesauditTrail), no field errors in the server log.Follows #1945 (field display configs). Remaining field prunes (redundant flags searchable/index/externalId/columnName — heavier test coupling; master-detail overrides) and object-level prunes proceed as further per-cluster verified PRs.
🤖 Generated with Claude Code