Skip to content

sweep: dead-surface deletions batch 3 — 3 zero-consumer items, one claim, one PR (findings-triage 2026-08-11) #4328

Description

@os-zhuang

Sweep promotion from the findings-triage round (triage seat Routine, #5474 pilot — objectstack#5474). Same criterion as batch 2 (#3931): a declared/present surface with zero production consumers, measured by grep at a named ref — delete it. One claim, one PR, one Fixes line per member, per-item checklist review.

All premises verified on origin/main @ b16be40 (this round; per-member evidence on each member card):

# Member 落点 before after
1 #3775 packages/core/src/utils/merge-views-into-objects.ts (+ its export * line in packages/core/src/index.ts:34) second mergeViewsIntoObjects copy, zero in-repo consumers; drops the container default list, keys by bare name instead of composer identity file deleted, re-export removed; app-shell's MetadataProvider.mergeViewsIntoObjects (the live copy, used at MetadataProvider.tsx:697) is untouched
2 #3778 packages/data-objectstack/src/index.ts — the five metadataCache.invalidate?.(views:${objectName}) sites (:3022, :3183, :3243, :3274, :3291) invalidations of a cache key no read path ever populates (listViews never routes through metadataCache.get with a views: key — verified this round; note the card says 4 sites, main now has 5) the five dead invalidate lines removed; listViews behavior unchanged (it is genuinely uncached — if caching is ever wanted, that is a new card, not this sweep)
3 #4288 packages/permissions/srcRoleDefinition.permissions (required field) required and read by nothing in production; resolveRoles and every other consumer read only name/inherits (sole non-test hit is a test-comment documenting the state) field removed (or demoted per the member card's discussion if remoteness of the type surface demands it — the PR states which and why); typing consumers compile clean

Sweep discipline (binding, per the pm-dispatch sweep rules):

  1. All members hit the same criterion — zero-consumer dead surface, delete.
  2. This table is the review checklist — reviewed per row, not per diff order.
  3. Zero changes outside the N items; git diff --stat must map 1:1 to the rows (plus changeset).
  4. Out-of-scope discoveries get their own cards (PD [WIP] Enhance every detail of the designer #10), never riders.
  5. This card is the claim/dispatch object; members keep their queue state but are not individually dispatchable while this sweep is open (selection excludes them by this member list). PR carries Fixes #3775, Fixes #3778, Fixes #4288, and Fixes this card.

Member #3773 (RecordContextValue.loading/error) was considered and excluded: the premise has drifted — the context's memo now dep-lists both fields and the provider signature spreads all values, so zero-producer/zero-consumer needs re-measurement against current hosts before deletion is safe.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions