Repository navigation
Commit 0063f22
refactor!: retire nine zero-consumer modules, make runner private, take test-only reset helpers off the barrels (objectui#13453, part 1) (#13506)
<!-- claude-projects-attribution: {"github_login":"os-elon-musk"} -->
_Requested by **Elon** · [project
thread](https://claude.ai/code/project/chan_01WedDzV26nniwxv7jC88B9D?thread=cmsg_01WedDzV26nniwxv7jC88B9D4nNtkcxk6i4sCKHsvYsQgG)_
Part of #13453
Clause-②: no (nothing added a consumer or author can target)
Metadata-protocol: none
First of the two PRs the claim amendment (comment 6393918010) cuts on
the governed line. This one is Tier S: no file under `.claude/**`,
`skills/**`, `AGENTS.md` or `docs/adr/**`. #13453 remains open for PR 2
(the providers trio, the contributor-guide sentence and the two
`skills/objectui/guides` files, Tier H) and for the 122 dead i18n keys.
## What this removes
**1. Nine whole modules with no reader** (2,211 lines plus their own
tests):
- `@object-ui/core`: `builder/schema-builder.ts`
(`form`/`button`/`input`/`card`/`grid`/`flex` and the six `*Builder`
classes) and the whole `protocols/` directory (`DndProtocol`,
`KeyboardProtocol`, `SharingProtocol`, and its now-empty `index.ts`).
The barrel lines become short removal notes, the same disposition
`NotificationProtocol` and `ResponsiveProtocol` got.
- `@object-ui/react`: `useFocusTrap`, `useFocusManagement`
(`useFocusReturn`, `useRovingFocus`), `usePageTransition`,
`useSchemaPersistence` (+ `createLocalStorageAdapter`), with the two
`useSchemaPersistence.*.test.tsx` files. The stale
`check-doc-example-types.mjs` row for the deleted hook goes too.
- `@object-ui/collaboration`: `LiveCursors` (+ `LiveCursorsProps`); the
package README drops its section. `usePresence` still reports cursors.
- Comments that named the deleted files (`types/src/index.ts`,
`crud-retirement-5373.test.ts`, `useAnimation.ts`, `useETagCache.ts` and
its test) now say "since-retired".
**2. `@object-ui/runner` is private and out of the release group.**
`private: true`; it leaves the `fixed` group for `ignore`, because
`check-changeset-fixed.mjs` wants every workspace package classified.
Two consequences handled here:
- Two pending changesets, `13464-declare-side-effects.md` and
`25685-one-react-line.md`, each listed `"@object-ui/runner": patch`.
With runner ignored, changesets refuses them as mixed ("Found mixed
changeset 13464-declare-side-effects … Mixed changesets that contain
both ignored and not ignored packages are not allowed", read from `pnpm
exec changeset status` on this tree before the edit). The runner line is
deleted from both; nothing else in them changes.
`check-changeset-overwrite` reports the modification (report-only);
after it, `pnpm exec changeset status --since=origin/main` exits 0.
- `check-published-tsconfig-tooling-exclude.mjs` reported `FAIL
[stale-carve-out] @object-ui/runner`, so its runner carve-out entry is
deleted and the shipped-list pin in its test shrinks to four.
`check-changeset-presence.test.ts` pinned `packages/runner/index.html`
as a guarded file; an unreleased package's entry is not guarded, so the
pin moves it to the not-guarded list.
- Docs: `content/docs/utilities/runner.mdx` and
`packages/runner/README.md` no longer say it is on npm; the root README
table marks it private.
**3. Test-only reset helpers off the public barrels:**
`resetColumnIdentityWarnings`, `resetRetiredSortSpellingReports`,
`resetDashboardFilterWarnings`, `resetReferenceKeyWarnings` (core),
`resetRuntimeConfigForTesting` (app-shell),
`resetInflightGetsForTesting` (types), `__clearRecordEditableCache`
(plugin-detail). The module keeps the export and the barrel stops
re-exporting it; the 15 test files outside the owning package that
imported one from a package root now import the module's `src` path
relatively, the pattern `__resetVisibilityPredicateWarnings` and
`useRecordEditable` already follow. Core's four `export *` lines for
those modules become named lists, with a one-line note on each.
⛔ Not here, per the claim: `resetActionKeyWarnings` (its barrel path is
`core/src/actions/index.ts`) and `clearSharedDiscoveryCache`
(`data-objectstack`) wait for #13442, which holds those files.
## Census before deleting (lit controls)
| Repository | Read at | Searched | Hits | Control |
|---|---|---|---|---|
| objectui | `76c560e` (branch base) | `git grep -w` for every exported
name of the nine modules and the seven helpers; generic builder names
(`form`, `card`, …) searched as named imports from `@object-ui/core` |
only the module, its own tests, its barrel line and comments |
`SchemaRenderer` lit |
| objectstack | `d1e329e` | same name list | one prose mention of
`LiveCursors` in `docs/qa/platform-checklist/FOLLOW-UPS.md`; no import |
`@object-ui/` lit in 150 files, `SchemaRenderer` in 38 |
| hotcrm | `700b567` | same name list | none | `@object-ui/` lit in 5
files, `SchemaRenderer` in 3 |
| cloud, npm dependents | n/a | **NOT MEASURED**: not reachable from
this session | n/a | n/a |
## Changesets
One per package, all `minor` with the removal named
(`13453-core-retire-dead-modules.md`,
`13453-react-retire-dead-hooks.md`,
`13453-collaboration-retire-live-cursors.md`,
`13453-test-helpers-off-barrels.md`). Runner gets none: it is ignored
now, and naming it would be a mixed changeset.
## Verification (local)
The type-check and vitest readings below were taken on the branch while
it still carried PR 2's providers commits too, so the tree they read is
this PR plus the providers retirement. The gates line was re-run on this
PR's own head.
- **type-check** (`turbo run type-check --continue`, under the verify
lock): core, react, collaboration, providers, types, app-shell,
plugin-detail, plugin-grid, plugin-view, plugin-calendar, console,
runner and the byo example. First run caught `http-inflight.test.ts`
importing the helper from `../index.js`; fixed in `44c01fe`, after which
`packages/types` type-check exits 0.
- **vitest, whole packages** core, types, providers, collaboration,
plugin-detail, react: Test Files 1028 passed, 1 skipped; Tests 19019
passed.
- **vitest, files** (every touched test file outside those packages,
plus the script tests that read runner or the release config): 21 files
/ 432 tests, one red, `check-changeset-presence.test.ts` (the runner pin
above), fixed in `45580a0` and re-run green (53/53). Console project,
the three touched files: 28/28. A wider sweep of 95 `scripts/__tests__`
files that mention runner, providers or the release config: green apart
from `check-doc-links.test.ts` and `check-skills-paths.test.ts`, which
read paths PR 2 deletes; both scripts exit 0 on this PR's head.
- **gates**, at `a5dc7bb`: `check-changeset-presence`,
`check-changeset-no-major`, `check-changeset-fixed`,
`check-changeset-claims`, `check-pending-changeset-literals`,
`check-published-tsconfig-tooling-exclude`,
`check-new-cross-file-line-citations`, `check-control-bytes`,
`check-skills-paths`, `check-doc-links` all exit 0; earlier on this
branch also `check:phantom-deps`, `check:unused-deps`,
`check:lockfile-integrity`, `check:lockfile-dedupe`,
`check:test-path-roots`, `check:unreferenced-sources`,
`check:side-effects-array`, `check:sdui-registration-pins`,
`check:self-import`, `check:vi-mock-specifiers`,
`check:lint-rule-coverage`, `check:node-esm-load`.
- **eslint** on the touched files with the repo config: 0 errors. With
`--no-inline-config` there are 2 errors, both on untouched lines and
both present at the base (`useETagCache.ts` preserve-caught-error,
`types/src/index.ts` restricted `FormField` import).
- **NOT MEASURED locally:** the whole `app-shell` package suite (its
touched files ran), `check:readme-exports` and `check:doc-snippets`
(need every package's `dist`); CI runs them.
## Follow-ups
- **Stale published guides until PR 2 lands:**
`skills/objectui/guides/project-setup.md` and
`skills/objectui/guides/architecture.md` still describe
`@object-ui/runner` as a standalone runtime; PR 2 fixes them (Tier H).
- **Release-lane hazard to watch:** any open PR whose new changeset
lists `"@object-ui/runner"` alongside other packages becomes a mixed
changeset once this merges, and nothing on a PR runs `changeset status`.
None of the pending changesets on `main` at `5399bbc` names it.
- `origin/main` moved two commits (#13501, #13503) after the branch
base; neither touches a file in this diff.
---
_Generated by [Claude
Code](https://claude.ai/code/session_011yfYeuX2ptMSCcYZiq61tS)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 5399bbc commit 0063f22
56 files changed
Lines changed: 147 additions & 2987 deletions
File tree
- .changeset
- apps/console/src/__tests__
- content/docs/utilities
- packages
- app-shell/src
- utils/__tests__
- views
- collaboration
- src
- core/src
- builder
- __tests__
- protocols
- plugin-calendar/src
- plugin-detail/src
- plugin-grid/src/__tests__
- plugin-view/src/__tests__
- react/src/hooks
- __tests__
- runner
- types/src
- __tests__
- scripts
- __tests__
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | 30 | | |
32 | 31 | | |
33 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | 31 | | |
33 | 32 | | |
34 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
51 | 50 | | |
52 | 51 | | |
53 | 52 | | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
424 | 424 | | |
425 | 425 | | |
426 | 426 | | |
427 | | - | |
| 427 | + | |
428 | 428 | | |
429 | 429 | | |
430 | 430 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | 44 | | |
46 | | - | |
| 45 | + | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
0 commit comments