Nothing imports it. Every adapter screen — Settings → LLMs, Vector DBs,
Embeddings, Text Extractor, OCR — renders `ToolSettings`, which has used
`ResourceTable` since before this commit's parent. `ListOfItems` is a card
component with working Edit and Delete handlers that reads exactly like the
adapter list and is reachable from nowhere.
That resemblance is the reason to delete it rather than leave it. On #2317 a
"Copy ID" action was added to this file in good faith, with a unit test that
mounted the component directly, passed, and survived two mutations. The button
shipped unreachable; review caught it, the suite could not. The next person
looking for "the adapter list" will find this file first too.
Verified unreferenced before deleting, not just by grepping the name:
* no import of `ListOfItems` or `list-of-items` anywhere under `frontend/`,
in this repo or in `unstract-cloud`, whose frontend plugins overlay onto
this same `src` tree;
* no computed module loading anywhere in the frontend — no
`import.meta.glob`, no `require.context`, no template-literal `import()` —
so there is no path a literal grep would miss;
* `ListOfItems.css` is imported only by the file being deleted with it.
And confirmed by building: `vite build` resolves every import in the app and
succeeds, which a dangling reference would not. `tsc --noEmit` clean, 625
frontend tests pass, biome clean.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
What
frontend/src/components/tool-settings/list-of-items/ListOfItems.jsxand itsListOfItems.css. Nothing else changes.Why
Nothing imports it. Every adapter screen — Settings → LLMs, Vector DBs, Embeddings, Text Extractor, OCR — renders
ToolSettings, which usesResourceTable.ListOfItemsis a card component with working Edit and Delete handlers that reads exactly like the adapter list and is reachable from nowhere.The resemblance is the reason to remove it rather than leave it lying there. On #2317 a "Copy ID" action was added to this file in good faith, with a unit test that mounted the component directly, passed, and survived two mutations. The button shipped unreachable; review caught it, the suite could not — a component test cannot tell you its component is rendered. The next person looking for "the adapter list" will land here too.
How
git rmon the two files. No other file is touched, because no other file refers to them.Verified unreferenced before deleting, and not only by grepping the name:
ListOfItemsorlist-of-itemsanywhere underfrontend/, in this repo or inunstract-cloud, whose frontend plugins overlay onto this samesrctree;import.meta.glob, norequire.context, no template-literalimport()— so there is no path a literal grep would miss;ListOfItems.cssis imported only by the file being deleted alongside it.Can this PR break any existing features. If yes, please list possible items. If no, please explain why. (PS: Admins do not merge the PR without this section filled)
No, and this is checked by building rather than argued.
vite buildresolves every import in the application and succeeds: a dangling reference to a deleted module fails that build, so a green build is positive evidence, not an absence of evidence.tsc --noEmitis clean and all 625 frontend tests pass.The only residual risk would be a consumer outside both repos importing this path. There is no such consumer — the frontend is not published as a package.
Database Migrations
None.
Env Config
None.
Relevant Docs
N/A
Related Issues or PRs
Dependencies Versions
None.
Notes on Testing
cd frontend && bun install --frozen-lockfile --ignore-scripts && ./node_modules/.bin/vitest run→ 625 passed, 38 files./node_modules/.bin/tsc --noEmit→ clean./node_modules/.bin/vite build→ builds, which is what proves no import resolves to the deleted modulesrc/components/tool-settings/Screenshots
N/A
Checklist
I have read and understood the Contribution Guidelines.
🤖 Generated with Claude Code