EPBDS-16211 H1: delete the dead weight, 26 files - #53
Merged
Merged
Conversation
§9.9-H1 has been "cheap, do first" since the plan was written. Doing it.
WHAT WENT
12 orphan components (src/core/components/): Avatar, Badge, Carousel,
Collapse, ErrorContent, ErrorTable, FloatNumber, ImageSwatch,
MenuButton, Square, TabList, Tags.
10 LESS files: the whole src/style/unused/ tree.
4 icomoon demo artifacts: demo.html, demo-files/, "Read Me.txt".
formatTime and toHours in src/core/utils/time.js, with the imports
that existed only for them.
WHAT DELIBERATELY STAYED
The ENGINE TabList (pages/main/components/TabList.js) — mapper.js:33
resolves it, and it is a different component from the pack copy: both
import './Tabs', and those two Tabs differ by ~100 lines. Swapping them
would have silently regressed tab behaviour.
The pack Tabs.js, so H6's duplicate pair is only HALF resolved.
icomoon's selection.json and style.css — selection.json is the project
file you re-upload to regenerate the icon set, the only round-trip path
back to it. Dead to every build, but its loss is not recoverable the way
the demo page's is.
FIELD.TYPE.DATE, which H1 also lists. Deleting it versus giving it a
`view: 'Date'` branch is an owners' decision, so it was left alone.
ONE DECISION THIS FORCED
ErrorTable could not go alone — ErrorContent imported it — and it was
also the last in-repo caller passing `inverted`/`striped` to Table.
SUPPORTED-PROPS.md said step 1 deferred their fate to exactly this
deletion. They are KEPT: both are genuinely styled
(table:not(.as-layout).inverted, table.striped tr:nth-child(2n)), Table.js
still destructures them, and a consumer meta can still set them. Dropping
a supported prop because our own last caller went away would be a
breaking change bought for nothing. The generated "Attributes at the call
sites" table no longer lists them, which is correct — that table reports
what the codebase passes, not what the component accepts — so
wrapper-prop-curation.js now says so in as many words.
VERIFIED BEFORE DELETING
One agent per target, each asked to REFUTE that its target was safe:
mapper registration, the components barrel, the published entry, every
import spelling, tracked metas, docs, schema, CSS, the sibling checkouts.
src/style/unused/ was cleared by compiling index.less through the repo's
own less-options and reading less's resolved import list (44 files, none
under unused/) rather than by grepping basenames.
MEASURED AFTER
suite 166 suites, 2539 -> 2527 tests. The -12 is exactly the two
time suites (-9, -3); no other suite's count moved.
coverage 94.83 -> 97.04 stmts, 90.19 -> 94.06 branch, 93.28 -> 96.88
funcs, 95.36 -> 97.76 lines. Thresholds green.
CSS static/all.css sha256 UNCHANGED at dcdb0a40a6d8ee79...
gates lint:js, lint:css, css:fixture:check, both docs checks,
build-lib, build-css all green.
SIDE EFFECTS WORTH NAMING
moment is now imported nowhere in src/core/utils/ — progress on §9.7-F2.
Workstream A loses 4 class components and 3 UNSAFE_* sites (29/14 -> 26/12).
The third function-component defaultProps site is resolved by deletion.
The plan is updated in the same commit: 28 places closed or corrected,
including the orphan counts, which are now a historical record rather than
a list of files to go looking for.
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.
Replaces #52, which conflicted after #51 was squash-merged: this is the same single H1 commit, rebased onto
master. Identical diff — 32 files, +61 −3150.What went
Avatar,Badge,Carousel,Collapse,ErrorContent,ErrorTable,FloatNumber,ImageSwatch,MenuButton,Square,TabList,Tagssrc/style/unused/treedemo.html,demo-files/,Read Me.txtformatTime,toHoursintime.js, with the imports that existed only for themWhat deliberately stayed
The engine
TabList(pages/main/components/TabList.js) —mapper.js:33resolves it, and it is not interchangeable with the pack copy: bothimport './Tabs', and those twoTabsdiffer by ~100 lines. Swapping them would have silently regressed tab behaviour. The packTabs.jsalso stays, so H6's duplicate pair is only half resolved.icomoon's
selection.jsonandstyle.css—selection.jsonis the project file you re-upload to regenerate the icon set, the only round-trip path back to it. Dead to every build, but its loss is not recoverable the way a demo page's is.FIELD.TYPE.DATE, which H1 also lists — delete it, or give it aview: 'Date'branch? That is an owners' call, so it was left alone.One decision this forced
ErrorTablecould not go alone (ErrorContentimported it), and it was also the last in-repo caller passinginverted/stripedtoTable.SUPPORTED-PROPS.mdrecorded that step 1 deferred their fate to exactly this deletion.They are kept. Both are genuinely styled (
table:not(.as-layout).inverted,table.striped tr:nth-child(2n)),Table.jsstill destructures them, and a consumer meta can still set them. Dropping a supported prop because our own last caller went away would be a breaking change bought for nothing. The generated "Attributes at the call sites" table no longer lists them — which is correct, since that table reports what the codebase passes, not what the component accepts — sowrapper-prop-curation.jsnow says so explicitly.Verified before deleting
One agent per target, each asked to refute that its target was safe: mapper registration, the components barrel, the published entry, every import spelling, tracked metas, docs, schema, CSS, the sibling checkouts.
src/style/unused/was cleared by compilingindex.lessthrough the repo's ownless-optionsand reading less's resolved import list (44 files, none underunused/) — not by grepping basenames, which would have been wrong here:avatar.lessandcarousel.lessexist elsewhere too.Measured after
The −12 tests are exactly the two time suites (−9, −3); a per-suite diff confirms no other suite's count moved. Coverage thresholds green.
static/all.csssha256 unchanged atdcdb0a40a6d8ee79…— deletingunused/and the icomoon page touched no byte a consumer downloads.lint:js,lint:css,css:fixture:check, both docs checks,build-libandbuild-cssall green.Side effects worth naming
momentis now imported nowhere insrc/core/utils/— progress on §9.7-F2.UNSAFE_*sites (29/14 → 26/12, re-measured).defaultPropssite is resolved by deletion.The plan is updated in the same commit — 28 places closed or corrected, including the orphan counts, which are now a historical record rather than a list of files to go looking for.
🤖 Generated with Claude Code