feat(spec)!: remove form-surfaced dead metadata props + correct 3 misclassified-live entries (#2377)#3199
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
os-zhuang
marked this pull request as ready for review
July 18, 2026 08:46
os-zhuang
pushed a commit
that referenced
this pull request
Jul 18, 2026
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011XchBKhKdjbhQZymt9Gn9B
…classified-live entries (#2377) Next enforce-or-remove slice (ADR-0049), versioned minor per launch-window policy. Removed (dead in both framework + objectui): - field: columnName, index, referenceFilters (empties the field dead set). columnName also drops the moot ADR-0062 D7 lint, the dead StorageNameMapping column helpers, and closes ADR-0062 R10 (external mapping = external.columnMap). - object: tags, active, abstract (now rejecting tombstones). - agent: tenantId. Dropped from the authoring forms + regenerated metadata-forms i18n bundles; reference docs + ledger README regenerated. Corrected to live (ledger was wrong — readers existed, verified): - object isSystem → plugin-sharing effectiveSharingModel + security-posture lint - object enable.searchable → metadata-protocol global-search opt-out - action type:'form' → objectui ActionRunner.executeForm (/forms/:target) Deferred: object enable.trash/mru (inert default-true, ~35 sys-object setters). Verify: spec 6873 + DTS typecheck + liveness gate + check:docs green; lint 30, cli 13, metadata-protocol 46 green; api-surface unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011XchBKhKdjbhQZymt9Gn9B
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011XchBKhKdjbhQZymt9Gn9B
os-zhuang
force-pushed
the
claude/remove-form-surfaced-dead-props
branch
from
July 18, 2026 11:33
65dbef2 to
3d0ab77
Compare
Contributor
📓 Docs Drift CheckThis PR changes 5 package(s): 108 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
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.
The next enforce-or-remove slice of #2377 (ADR-0049). Reconnaissance into both framework and objectui turned up two ledger misclassifications and one 35-file blast radius, which shaped the scope below. Versioned
minorper the launch-window policy.Removed — dead, no runtime reader (verified in framework and objectui)
columnName,index,referenceFilters→ empties the field dead set.columnNamewas inert even for managed objects (the SQL driver'screateColumnhardcodes column = field key; introspection readsrow.column_name, the inverse). So it also removed the now-moot ADR-0062 D7 rejection lint (validate-expressions.ts), the deadStorageNameMapping.resolveColumnName/buildColumnMap/buildReverseColumnMaphelpers, and closes ADR-0062 R10 — external physical-column mapping isexternal.columnMaponly.index→ declare in objectindexes[];referenceFilters→lookupFilters.tags,active,abstract→ now rejecting tombstones inUNKNOWN_KEY_GUIDANCE.tenantId.Dropped from the authoring forms (
field/object/agent.form.ts), the hand-craftedmetadata-protocolform-schema mirror, and the regenerated metadata-forms i18n bundles (all 4 locales, 112 key deletions). Reference docs + ledger README regenerated.Corrected to
live— the ledger was wrong (readers verified by reading the code)isSystem—plugin-sharingeffectiveSharingModel:74defaults a no-sharingModelisSystemobject to public; also read byvalidate-security-posture.ts:98. Kept.enable.searchable—metadata-protocolprotocol.ts:2967usesenable.searchable === falseas a global-search opt-out. Kept.type:'form'— objectuiActionRunner.executeFormroutes it to the FormView at/forms/:target(fixed the "Log Time does nothing" report); a build-time lint validates the target. Kept.Deliberately deferred
object.enable.trash/enable.mru— dead, but inertdefault(true)flags set by ~35sys-*.object.tsfiles; removing them is high-churn / low-value. Leftdead(authorWarn-skipped).active/enabledtoggle (MetadataObjectsPage.tsx) — readsraw.activeoff objectui's own loose local type and writes it back; the runtime registers objects viaObjectSchema.parse()which strips unknown keys, so this is non-breaking (not a hard error). Removing the inert enable/disable control is an objectui UX call, tracked as a separate optional follow-up.Verification
check:docs(256 files in sync) all green;api-surface.jsonunchanged.validate-expressions30, clilint-liveness-properties13, metadata-protocol 46 green.*.object.tssets any removed prop.🤖 Generated with Claude Code
Generated by Claude Code