Uh oh!
There was an error while loading. Please reload this page.
chore(app-shell): delete the dead object-fields-bridge module - #6414
Merged
os-support-ai merged 1 commit intoAug 25, 2026
Conversation
`previews/object-fields-bridge.ts` exported `bridgeFromDraft`, `commitToDraft` and `FieldsBridgeResult` and had zero importers. Re-measured on the merged base rather than inherited from the filing: the same command shape that returns 109 hits across 29 files for the live sibling `object-fields-io` returned 4 hits for this module, all of them prose in comments and none an import or a call. Deleting the module alone would have swapped dead code for false documentation: three comments cited the bridge as a live corroborating source. The two that named it as the consumer deriving an editable-subset check from `DESIGNER_FIELD_TYPES` now name `MetadataFieldsPage`, which does exactly that with the same idiom and the same objectui#3017 anchor. The third cited the bridge's `richtext` -> `html` mapping as one of three corroborations that `richtext` stores HTML; the other two are live and carry the point alone, so that clause is dropped rather than repointed. No behaviour changes. `@object-ui/app-shell` exports only `.` and `./styles.css`, so the module was not reachable as a deep import either. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SfZeFWrhGLHmfq61xbz4q
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
os-support-ai
marked this pull request as ready for review
August 25, 2026 22:20
Uh oh!
There was an error while loading. Please reload this page.
os-support-ai
deleted the
claude/issue-6309-delete-object-fields-bridge
branch
August 25, 2026 22:32
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#6309
Deletes
packages/app-shell/src/views/metadata-admin/previews/object-fields-bridge.ts(bridgeFromDraft,commitToDraft,FieldsBridgeResult) and the three prose references that still described it as wired, per the triage ruling and the #6224 precedent.Reference surface, re-measured on the merged base
Triage's review-side instruction — "dead-code deletions get the reference-surface re-verified on the merged base — rerun the grep with its control before flipping anything" — landed on this branch first. The filing measured
origin/main @ 7ccb53a; this branch is cut from062943f86, 53 commits later, so the reading was re-taken rather than inherited.Same command shape for subject and control, over
packages/ apps/ examples/ scripts/,--include=*.ts --include=*.tsx --include=*.mjs --include=*.json, excludingdist/,node_modules/and the module's own file:062943f86)21ea083b0)bridgeFromDraft|commitToDraft|FieldsBridgeResult|object-fields-bridgeobject-fields-ioreadFields|writeFields|FieldsView|object-fields-iofrom '…object-fields-io…'importThe control is the load-bearing half: a zero-hit grep with no control is equally consistent with a broken pattern. The instrument finds consumers when they exist — it found 109 for the sibling in the same directory with the same shape — and it found none here. The four subject hits before the change were, verbatim:
A wider sweep — whole repo, every file type, no
--includefilter — returned the same four plus one historical mention in.changeset/6043-retire-designer-formula-control.md. That one is deliberately left alone: it is a past-tense record of what #6043 did to a file that existed then, not a claim that the bridge is wired. Editing another card's changeset is out of scope.Two further reachability facts, both checked rather than assumed:
@object-ui/app-shell'sexportsmap declares only.and./styles.css, so the module was never addressable as a deep import from outside the workspace either.packages/app-shell/distcontains 0object-fields-bridge*artifacts and still 2object-fields-io*artifacts — the deletion propagates, the live sibling is untouched.Why the prose had to go with it
This is the reason the finding was a card and not a silent delete. The three comments gave a future reader in-repo pointers claiming the bridge mediates between the framework field record and
FieldDesigner. Deleting the module and leaving them would have swapped dead code for false documentation — worse than either alone. Each was handled on its own merits:types/src/designer.tsandtypesdesigner-field-types.test.ts(header) named the bridge as the consumer that derives an editable-subset check fromDESIGNER_FIELD_TYPES"instead of restating the list (objectui#3017)". That convention is alive and has a live exemplar:packages/plugin-designer/src/MetadataFieldsPage.tsx:97doesnew Set(DESIGNER_FIELD_TYPES)under the sameobjectui#3017anchor comment, andMetadataFieldsPageis exported fromplugin-designer/src/index.tsxwith five dedicated test files. Both comments are repointed at it, so the teaching survives with a true pointer.designer-field-types.test.ts(body) told an editor changing the vocabulary to re-check "the object-fields-bridge round-trip". With the bridge gone that instruction has no referent, so the clause is dropped; the rest of the instruction (presentation + re-pin the inventory) is unchanged.fieldsrichtext-cell-renderer-5452.test.tsxcited the bridge'srichtext→htmlmapping as the third of three corroborations thatrichtextstores HTML. The other two — the showcase seed and the field-type decision tree — are live and carry the argument on their own, so that clause is dropped rather than repointed: inventing a substitute claim about a module I had not verified would be the same defect one level up.⛔ No new assertion, deliberately
The ghost-assertion guard does not apply in its usual form here, and no assertion was fabricated to satisfy it. There is no new behaviour to pin: the change removes a module nothing called and rewrites four comments. An assertion invented for the ritual would pin nothing and would read to a future maintainer as though something were guarded. What replaces it is the before/after reference-surface reading with its positive control, quoted above, plus the requirement that nothing else moves — a zero-importer claim is true exactly when the suites stay green without a single test edit. No test was adjusted to make the deletion fit; the only test-file edits in this diff are inside comment blocks.
Verification
All heavy legs ran serialized through the shared verify lock. The tree at
21ea083b0is byte-identical to the tree they measured (git status --porcelainempty,git diff HEADempty), and the gate union below was re-run at21ea083b0.turbo run type-check --filter=@object-ui/app-shell --filter=@object-ui/types --filter=@object-ui/fields --concurrency=2Tasks: 32 successful, 32 total·VERDICT command-exit 0turbo run build --filter=!@object-ui/site --concurrency=2Tasks: 43 successful, 43 total·VERDICT command-exit 0pnpm exec vitest run packages/types/ packages/fields/Test Files 175 passed (175)·Tests 2562 passed (2562)pnpm exec vitest run packages/app-shell/ --shard=1/3Test Files 178 passed (178)· `Tests 1682 passedpnpm exec vitest run packages/app-shell/ --shard=2/3Test Files 178 passed (178)·Tests 1499 passed (1499)pnpm exec vitest run packages/app-shell/ --shard=3/3Test Files 178 passed (178)·Tests 1954 passed (1954)turbo run lint --filter=@object-ui/app-shell --filter=@object-ui/types --filter=@object-ui/fieldsTasks: 4 successful, 4 total·0 errors(2680 pre-existing warnings, none in the diff)709 test files, 7697 tests passed, 1 skipped, 0 failed — with no test edited to accommodate the deletion, which is the evidence the zero-importer claim is true.
Test invocation follows AGENTS.md: from the repo root, paths relative to the repo root, never behind
--, neverpnpm --filter <pkg> test— the two shapesscripts/vitest-invocation-guard.mjsrejects. App-shell's 534 files are sharded only to stay under the container's foreground cap; the three shards cover the package with nothing excluded.Coverage caveat, stated rather than glossed: a green
type-checksays nothing about test files unless they are in its file set. Both edited test files were confirmed present —tsc -p packages/types/tsconfig.test.json --listFiles | grep -c designer-field-types.test.ts→1, and the same forrichtext-cell-renderer-5452.test.tsxinpackages/fields/tsconfig.test.json→1.Gate union at
21ea083b0, each exit code captured before any pipe:check:readme-exportsfailed on the first attempt with 69 entries, all of the classtype entry ./dist/index.d.ts is not on disk -- run pnpm build first, and 0 naming anything in this diff. That is a prerequisite failure, not a red gate — it is recorded here rather than quietly re-run, and it cleared to green after the full workspace build above.Scope
object-fields-io, the live sibling, is untouched — its 109-hit control reading is identical before and after. Nothing else inpreviews/was "improved". Changeset:patchfor the three packages whosesrc/changed (app-shell,types,fields); no user-visible behaviour changes, since nothing could reach the deleted module.⛔ Draft on purpose — the PM lands this. Not self-merged, not marked ready.
Generated by Claude Code