Skip to content

refactor(ui)!: retire test-only barrel helpers, CommentSearchResult and four dead publicForm keys - #28544

Merged
os-zhuang merged 2 commits into
mainfrom
claude/project-thread-ula03v
Nov 1, 2026
Merged

os-zhuang merged 2 commits into
mainfrom
claude/project-thread-ula03v

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Tesla · project thread

Part of #25921 (items B1, B3, B4, B6 and B10 of the card thread's ledger, claim 6553495326; the card's other open items stay on it)

Clause-②: no (narrowing)
Metadata-protocol: none

维护者速读

  • 改了什么:从五个 ui 包的公共入口拿掉无人使用的面:core 的 resetActionKeyWarnings、react 的 __resetVisibilityPredicateWarnings、plugin-detail 的 resetUnknownActivityTypeWarnings(三个都是只给测试用的「清掉只警告一次的记忆」助手),types 的 CommentSearchResult 接口(唯一生产者早已退役),以及十个语言包里四个没有任何界面读取的 publicForm.* 文案。
  • 为什么改:retire the zero-consumer surface: nine dead modules (2,211 LOC), plugin-ai, runner's publish flag, test-only reset helpers on public barrels, the providers trio, 122 dead i18n keys, root orphans #25921 清理零消费者公开面;这几项在仓内、examples/** 与 hotcrm 中都没有非测试读者,留在入口上只会被当成公开 API 承诺。
  • 风险与回滚:只删导出与文案,不改任何运行行为;跨包测试改为从声明模块直接引入助手。对外部 npm 使用者是破坏性变更,五个包各带一个 ! changeset 写明替代写法。回滚即 revert 本 PR。
  • 先看:ui/packages/core/src/actions/index.ts(export * 改为具名列表,少了 reset);ui/packages/types/src/__tests__/record-id-string-survivors-10078.test.ts(钉子去掉一行);.changeset/25921-*.md 五个文件。
  • 两分钟验证:git grep -n -w -e resetActionKeyWarnings -e __resetVisibilityPredicateWarnings -e resetUnknownActivityTypeWarnings -- 'ui/packages/*/src/index.ts*' 只剩三行「test-only and stays off the barrel」注释;git grep -w CommentSearchResult -- ui/packages 无结果。
  • 需要你做的:无,席位落地(收窄公开入口,席位先做一次契约档复核)。

What changes

  • B1 @object-ui/core: actions/index.ts re-exported ./actionKeys.js with export *, which put the test seam resetActionKeyWarnings on the package entry. It now re-exports the module's other ten names by name. Core's own tests already import the helper from ../actionKeys.
  • B3 @object-ui/react: __resetVisibilityPredicateWarnings leaves the entry. Nine cross-package tests imported it from @object-ui/react (the ledger said five; the import scan on the branch found nine) and now import it from react/src/utils/visibilityDiagnostic, the same module the vitest alias resolves the entry to, so the reset still clears the instance the code under test reads. Four app-shell tests already used that path.
  • B4 @object-ui/plugin-detail: resetUnknownActivityTypeWarnings leaves the entry; its one cross-package test (RecordDetailView.activityUnmappedType-5896) imports plugin-detail/src/renderers/recordActivityFeed. The entry's docblock sentence that justified exporting it goes with it.
  • B6 @object-ui/types: CommentSearchResult is deleted from views.ts and the entry. Its only producer, useCommentSearch in collaboration, retired in refactor(ui)!: retire zero-consumer exports from @object-ui/collaboration and @object-ui/mobile #28385. The record-id pin record-id-string-survivors-10078 keeps its two other shapes (RecordSubscription.recordId, DataSourceMutationEvent.id) with their type rows, value controls and census rows.
  • B10 @object-ui/i18n: publicForm.consentRequired, rateLimited, redirectBlocked and requiredHint leave all ten packs (40 lines). ui/scripts/check-i18n-dead-keys.mjs lists all four CONFIRMED; the form page reads the nine sibling publicForm keys, none of these.
  • Five changesets, one per package, each patch with a BREAKING banner, both declaration lines and an ADR-0087 disposition (runtime-export-retired for the four exports, no-migration-prescription for the keys).

Zero-consumer readings (ledger /mnt/project-files/ui-seat-1/r2026-10-31b/out/25921-ledger.md, objectstack efb1620c, hotcrm a598256, positive controls SchemaRenderer 1,198 files and useRecordPresence 113): each name has no non-test reader outside its package; every import of the four names on this branch was re-read from the import statements themselves.

Verification

Head fef5795d (branch point eeec88d1).

Tests
  • pnpm --dir ui exec vitest run packages/core/src/actions/ packages/react/ packages/plugin-detail/ packages/types/ packages/i18n/ plus the ten edited cross-package test files: Test Files 1022 passed, 7 failed, 1 skipped (1030). All seven reds read no module symbol for packages/spec/dist/...d.mts or the spec export probe: the closure had been built with OS_SKIP_DTS=1. After pnpm --filter @objectstack/spec build with declarations, the seven files rerun: 7 passed, 184 tests passed.
  • pnpm turbo run type-check for types, core, react, plugin-detail, i18n, components, app-shell and console (each package's own tsc --noEmit plus its tsconfig.test.json, so the pin's compile-time rows and every repointed test are compiled): 78/78 tasks successful, lock VERDICT command-exit 0.
  • pnpm --dir ui exec vitest run scripts/: 169 files passed, 2 skipped; 4901 tests passed.
  • No ablation: the diff removes exports and dead strings; no tested behaviour changes.
Gates
  • dispatch-gates --commands: 34 commands, all run with stdin closed, each exit recorded before any pipe; --ran: 34 derived, 34 run, 0 NOT-MEASURED. All exit 0. check:type-check-debt first exited 3 (prerequisite: run during the build) and exits 0 on rerun (0 entries above their recorded number).
  • check-adr-0087-registration --base origin/main: 5 declared-breaking changesets, each with a verified disposition.
  • Outside the derived set: check-sdui-manifest exit 0; check-platform-checklist --changed-from origin/main exit 0 (0 anchored files); ui check:new-line-citations exit 0 (0 new).
  • dispatch-gates --tier: no path-derived mandate; 194 changed lines (+104 / -90), under the 3,000 threshold. No governed path.

Acceptance notes

Human Minimum

  • 1. Schemas start as Zod; packages/spec holds no runtime logic. (not touched)
  • 2. Every name I added uses the casing for its kind. (no names added)
  • 3. No formatter ran; pnpm lint passes. (lint is CI's run)
  • 4. One issue, one branch off an up-to-date main, one pull request.
  • 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset.
  • 6. packages/spec touched: n/a.
  • 7. No hand edits to content/docs/references/, packages/*/CHANGELOG.md or content/docs/releases/.
  • 8. Title, body and comments are in English (the 维护者速读 block is the maintainer's channel).

🤖 Generated with Claude Code

https://claude.ai/code/session_01L9qibzKqWksC1TiqsHCrrU


Generated by Claude Code

…nd four dead publicForm keys

- core: resetActionKeyWarnings leaves the package entry (actions barrel
  re-exports actionKeys by name)
- react: __resetVisibilityPredicateWarnings leaves the package entry; nine
  cross-package tests import it from its declaring module
- plugin-detail: resetUnknownActivityTypeWarnings leaves the package entry;
  its one cross-package test imports the declaring module
- types: CommentSearchResult is deleted; its record-id pin drops the row
- i18n: publicForm.consentRequired/rateLimited/redirectBlocked/requiredHint
  leave all ten packs

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L9qibzKqWksC1TiqsHCrrU
@github-actions github-actions Bot added size/m documentation Improvements or additions to documentation tests tooling labels Nov 1, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:ui#1 · os-tesla · session_01L9qibw2uhdSeHYfnZdAf4V

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: fef5795d8acf8ed3dd7bb8dfc2972e6a9a945362
Local-runs: none
Scope: ui/packages/core/src/actions/index.ts, ui/packages/react/src/index.ts, ui/packages/plugin-detail/src/index.tsx, ui/packages/types/src/index.ts, ui/packages/types/src/views.ts, ui/packages/types/src/tests/record-id-string-survivors-10078.test.ts, ui/packages/i18n/src/locales/ar.ts, ui/packages/i18n/src/locales/de.ts, ui/packages/i18n/src/locales/en.ts, ui/packages/i18n/src/locales/es.ts, ui/packages/i18n/src/locales/fr.ts, ui/packages/i18n/src/locales/ja.ts, ui/packages/i18n/src/locales/ko.ts, ui/packages/i18n/src/locales/pt.ts, ui/packages/i18n/src/locales/ru.ts, ui/packages/i18n/src/locales/zh.ts, ui/apps/console/src/tests/App.homePermissions-12700.test.tsx, ui/packages/app-shell/src/layout/tests/UnifiedSidebar.navCanPermissions-12700.test.tsx, ui/packages/app-shell/src/providers/ExpressionProvider.visibleFaultDiagnostic.test.ts, ui/packages/app-shell/src/providers/tests/navigationVisibility-12700.test.ts, ui/packages/app-shell/src/providers/tests/navigationVisibility.bareCel-27457.test.ts, ui/packages/app-shell/src/providers/tests/navigationVisibility.unboundScope-25892.test.tsx, ui/packages/app-shell/src/views/RecordDetailView.activityUnmappedType-5896.test.tsx, ui/packages/components/src/tests/page-node-visibility-fail-closed-13299.test.tsx, ui/packages/components/src/tests/page-tabs-visible-when-fail-closed-13286.test.tsx, ui/packages/components/src/tests/page-tabs-visible-when-fault-warning.test.tsx, .changeset/25921-core-reset-action-key-warnings-off-barrel.md, .changeset/25921-react-reset-visibility-warnings-off-barrel.md, .changeset/25921-plugin-detail-reset-activity-warnings-off-barrel.md, .changeset/25921-types-comment-search-result.md, .changeset/25921-i18n-dead-public-form-keys.md + ui/packages/core/src/actions/actionKeys.ts, ui/packages/react/src/utils/visibilityDiagnostic.ts, ui/packages/plugin-detail/src/renderers/recordActivityFeed.ts, ui/packages/plugin-form/src/EmbeddableForm.tsx, ui/packages/plugin-form/src/formChrome.ts, ui/apps/console/src/components/FormPage.tsx, ui/packages/i18n/src/i18n.ts, ui/vitest.config.mts, ui/scripts/check-i18n-dead-keys.mjs, scripts/check-adr-0087-registration.mjs, .changeset/25921-collaboration-zero-consumer-exports.md (on main)

① Derived judgments

Public-surface changes the diff implies, each read against the cited code on main and on the head:

  • @object-ui/core entry loses resetActionKeyWarnings — right. actions/index.ts turns export * from './actionKeys.js' into a named list; actionKeys.ts declares exactly eleven exports (ten values plus the reset, no type exports), so the ten names re-exported are the complete remainder and nothing else leaves silently. Core's three tests already import the reset from ../actionKeys.
  • @object-ui/react entry loses __resetVisibilityPredicateWarnings — right. The emit, the dedupe Set and the reporters stay on the entry; the cross-package tests now import the reset from react/src/utils/visibilityDiagnostic, the same file the vitest alias resolves @object-ui/react to (ui/vitest.config.mts maps the specifier to packages/react/src), so the reset clears the one Set the code under test writes. Four app-shell tests already used that path on main.
  • @object-ui/plugin-detail entry loses resetUnknownActivityTypeWarnings — right. The entry's docblock sentence that justified the export goes with it; ACTIVITY_TYPE_TO_FEED_TYPE, UNMAPPED_ACTIVITY_FEED_TYPE, activityRowToFeedItem, isRefusedFeedRead and SysActivityRow stay. The one cross-package test imports the declaring module; RecordDetailView reaches the same module instance through the mocked-with-importOriginal entry.
  • @object-ui/types loses CommentSearchResult (interface deleted from views.ts, row dropped from the entry) — right as a surface change: the only producer useCommentSearch left in refactor(ui)!: retire zero-consumer exports from @object-ui/collaboration and @object-ui/mobile #28385, and no code reader remains anywhere in the tree, in hotcrm or in objectui outside CHANGELOG history. The objectui#10078 pin keeps its two surviving rows, both type and census halves; its controls are untouched. The surface is right; the migration text around it is not (see ④).
  • @object-ui/i18n: publicForm.consentRequired, rateLimited, redirectBlocked, requiredHint leave all ten packs — right as measured: no t() call site, no dynamic publicForm. head covering them (the live heads are the nine siblings), none of the four in formChrome.ts's fallback table that check:i18n-keys compares against the pack, and TranslationKeys (derived from en) narrows by four members. All ten packs edited, so the key-parity test holds. The reading of what these keys were for is incomplete (see ④).
  • Zero-consumer claim re-read: the four retired names have no non-test reader on main outside their packages; the nine __resetVisibilityPredicateWarnings cross-package tests the dev found (one console, five app-shell, three components) match the import statements on main — the claim's "five" was the under-count, not the dev's nine.
  • Accept-set: none. No packages/spec schema, node type or stored shape names any of these; Metadata-protocol: none is correct on all five.

② Semver level

Five changesets, one per package whose entry narrows, each patch with a BREAKING banner, Clause-②: no (narrowing), Metadata-protocol: none and exactly one ADR-0087 marker — this is the level the rule assigns a non-protocol breaking change (patch, banner and disposition kept). The i18n package getting its own ! changeset is right: the pack-derived key type is a published surface. The four runtime-export-retired operands name a real export that leaves the entry; no-migration-prescription on the i18n keys is the category the gate admits for strings no stored shape names, and the PR-body Clause-②: no (narrowing) line matches every changeset. Each of the four export changesets carries a FROM/TO line. Clause-②: no (narrowing) — correct for a diff that publishes a narrower entry and no spec change.

③ Boundary flags

  • Dev flag "B3 repointed nine cross-package tests, not the five the claim names" — answered: nine is the count on main (verified file by file); same item, same file class, no surface breach.
  • Dev flag "@object-ui/i18n gets its own ! changeset" — answered: right, the key type narrows.
  • Dev flag "dogfood battery n/a — NOT MEASURED, for the seat to rule" — answered, no escalation: no rule in AGENTS.md or docs/agents/multi-agent-discipline.md owes a dogfood run for a ui/-only narrowing; the diff touches no packages/** source the battery builds, and the head's Dogfood Regression Gate aggregate concluded success (shards path-skipped). Nothing to measure.
  • Dev flag "PR body carries harness attribution lines" — cosmetic, no action.
  • open_questions: none declared.
  • Check-runs on the head, read at 05:40 UTC: every completed run is success or skipped (Check Changeset ×2, Lint · PM dispatch-gates, Lint · ESLint, Lint · repo & tooling gates, Lint · docs & code guards, Lint · CI/release/engine gates, Type Check · workspace/source/consumer/debt, TypeScript Type Check, Build UI Deps, Build & E2E UI, Live E2E UI, Test Core, Dogfood Regression Gate, Governed Surface Queue Guard, PR-body guards, Check PR Size, Auto Label, filter). Still in progress at that time: Lint UI, Type Check UI, Test UI 1/16 through 16/16. Those three families are the ones that compile and run the repointed cross-package test imports, so the seat reads their conclusions before any landing step.

④ Design judgment

The narrowing, read against the published entries on main:

  • The three reset helpers are warn-once memo clearers whose only readers are tests; removing them from the entries takes no capability from a consumer that the packages ever delivered to one — the diagnostic, its prefixes and its dedupe stay public. Design holds.
  • CommentSearchResult is a type for a search the packages no longer ship. Removing it is the right end state — but the tree it lands in contradicts it. Must-fix: .changeset/25921-collaboration-zero-consumer-exports.md (pending on main, still pending on this head, line 18) tells a host migrating off CommentSearchReturn that "the result rows can keep using CommentSearchResult from @object-ui/types". Both changesets ship in the same release, so the collaboration CHANGELOG would prescribe a TO target the types CHANGELOG deletes in the same version. A migration prescription that names a retired symbol is exactly what ADR-0087 exists to refuse; the gate does not read TO operands, so it did not catch it. Fix: in this PR, reword that line to the local shape the types changeset already gives ({ comment: CommentEntry; objectName: string; recordId: string; highlight?: string }). .changeset/** is not a governed path; the claim's named surface did not list this file, so the seat widens it by one line.
  • The four publicForm keys: the PR and changeset say "no screen in the Console or in any @object-ui/* package showed them". The key names, yes. The strings, no: ui/packages/plugin-form/src/EmbeddableForm.tsx renders byte-identical English hard-coded — 'Please accept the privacy policy to continue.' (consent gate, ~L361), 'Please take a moment to review your answers before submitting.' (min-fill-time refusal, ~L374), '* Required field' (~L546) — and reads author texts.redirectBlocked, while the same package localises its other chrome through formChrome.ts and t('publicForm.*'). The four keys were the pack half of a localisation that was declared and never wired; check-i18n-dead-keys is key-based, so CONFIRMED stands and deleting them is within the card's ruling. Retiring an undelivered capability is a permitted resolution, so this is not a FAIL, but the record of the decision is wrong. Should-fix: state in the i18n changeset body that these three strings stay as un-localised English defaults in EmbeddableForm (so a later "localise the embeddable form" card knows it re-adds keys rather than discovers a dead end), or the seat puts implement-vs-retire to the card before landing.
  • Should-fix (minor): ui/packages/react/src/index.ts keeps the comment "the emit, the dedupe Set and the reset above are still the only ones" beside a list that no longer carries the reset; reword so the next reader is not sent looking for an export that is not there.
  • Attempted breaks that did not land: a type export hidden behind the old export * (none — actionKeys.ts has no type exports); a second module instance behind the relative imports (none — alias and relative path resolve to one file); a README or docs page teaching any of the four names (none; only CHANGELOG history); a hotcrm or objectui consumer (none at hotcrm a598256, objectui b2c0ade); a dynamic publicForm.${…} head reaching the deleted keys (none).

Implemented-by: claude/project-thread-ula03v
Reviewed-by: session_01L9qibw2uhdSeHYfnZdAf4V

VERDICT: FAIL

…d true

- the pending collaboration changeset no longer points hosts at
  CommentSearchResult, which leaves @object-ui/types in the same release;
  it gives the local shape instead
- the i18n changeset says EmbeddableForm keeps its English literal defaults
  for the deleted publicForm keys' wording
- the react barrel comment no longer names the reset it stopped exporting

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L9qibzKqWksC1TiqsHCrrU
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:ui#1 · os-tesla · session_01L9qibw2uhdSeHYfnZdAf4V

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: 90c5e25156cdf07707e851432eeaceb93d3261b4
Local-runs: none
Prior-record: PR comment 6554050725 (head fef5795d, FAIL) — this record is the delta on the one commit since, read against the whole PR tree
Scope: .changeset/25921-collaboration-zero-consumer-exports.md, .changeset/25921-i18n-dead-public-form-keys.md, ui/packages/react/src/index.ts + ui/packages/types/src/views.ts (on main), ui/packages/plugin-form/src/EmbeddableForm.tsx, ui/packages/react/src/utils/visibilityDiagnostic.ts, scripts/check-empty-changeset.mjs; every other path of the PR is unchanged since fef5795d and stands as judged in 6554050725

① Derived judgments

The delta commit changes no code surface: three files, +5/−5, all comment or changeset prose. Every entry, type and key judgment in 6554050725 holds unchanged on this head.

  • .changeset/25921-collaboration-zero-consumer-exports.md line 18 — right. The CommentSearchReturn TO side now prescribes a local interface { comment: CommentEntry; objectName: string; recordId: string; highlight?: string } and says CommentSearchResult leaves @object-ui/types in the same release. The four members match the interface deleted from views.ts on main (member for member, highlight optional), and the sentence agrees with the types changeset's own FROM/TO line. The prior must-fix is resolved.
  • .changeset/25921-i18n-dead-public-form-keys.md — right. The body now says no translation call read the four keys, that EmbeddableForm in @object-ui/plugin-form draws the same wording as hard-coded English defaults for consentRequired, rateLimited and requiredHint, shows redirectBlocked only when the author supplies texts.redirectBlocked, that those defaults were never localised through these keys and stay un-localised English, and that an author localises per form through config.texts. Each claim is true of EmbeddableForm.tsx on main: the texts interface carries all four fields, the three defaults are the ?? literals at the consent gate, the min-fill-time refusal and the required-hint line, and the redirect-blocked line renders only under redirectRefused && texts.redirectBlocked. The disposition marker's added clause reads the same way. The first should-fix is resolved.
  • ui/packages/react/src/index.ts — right. The comment now says the emit and the dedupe Set in visibilityDiagnostic are the only ones; one _warnedVisibilityPredicates Set exists there and the reset is no longer named as a listed export. The second should-fix is resolved.

② Semver level

Unchanged: five patch changesets with a BREAKING banner, Clause-②: no (narrowing), Metadata-protocol: none and one ADR-0087 marker each; the delta edits prose only and moves no frontmatter. The edit to the pending collaboration changeset alters its TO text, not its level, arm or marker. Clause-②: no (narrowing) — correct.

③ Boundary flags

  • Check Changeset is failure on this head: check-empty-changeset refuses a PR that modifies a changeset it did not add — the DELIBERATE CORRECTION class, whose remedy in the gate's own text is "do NOT restore it — say so on the PR and get it confirmed". The correction itself is right (judged above) and was the prior record's must-fix, so restoring the base line would put the false sentence back. Escalated to the maintainer, not a must-fix of the diff: the red stays until a maintainer confirms on the PR. At the time of reading, neither the PR body nor any PR comment says the correction was made on purpose; the seat posts that note with the confirmation request so the gate's first step is met.
  • All previously in-progress families concluded on this head, read at 06:09 UTC: Lint UI, Type Check UI, Test UI 1/16 through 16/16 and the Test UI aggregate all success; every other run is success or skipped. The three families that compile and run the repointed cross-package tests are green.
  • Dev flags from 6553963516 (nine-not-five importers, i18n ! changeset, dogfood NOT-MEASURED, attribution lines) stand answered as in 6554050725; no new dev flag and no open_questions on this head. No new card comment since the dev report.

④ Design judgment

The narrowing is unchanged from 6554050725 and holds: the three reset helpers leave entries that keep every diagnostic, prefix and dedupe public; CommentSearchResult goes with its retired producer, and the one same-release prescription that still named it now names the local shape instead; the four publicForm keys are retired as the pack half of a localisation that was declared and never wired, and the record of that decision now says so where a future "localise the embeddable form" card will read it. No must-fix remains; no should-fix remains. Attempted breaks on the delta: a member mismatch between the prescribed local interface and the deleted one (none); a claim about EmbeddableForm the code does not bear out (none); a second dedupe Set the new comment would mislabel (none).

Implemented-by: claude/project-thread-ula03v
Reviewed-by: session_01L9qibw2uhdSeHYfnZdAf4V

VERDICT: PASS

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:ui#1 · os-tesla · session_01L9qibw2uhdSeHYfnZdAf4V

Deliberate correction of a pending release note: needs the maintainer's confirmation. Check Changeset is red on 90c5e251 because check-empty-changeset refuses this PR's edit to .changeset/25921-collaboration-zero-consumer-exports.md, a changeset this PR did not add.

  • The note: line 18 told hosts migrating off CommentSearchReturn that "the result rows can keep using CommentSearchResult from @object-ui/types".
  • What changed under it: this PR retires CommentSearchResult from @object-ui/types (B6). Both notes ship in the same release, so the old sentence would point hosts at a symbol that is gone.
  • The correction: the TO side now gives the local shape { comment: CommentEntry; objectName: string; recordId: string; highlight?: string } and says the type leaves @object-ui/types in the same release. Restoring the base text would republish the false sentence.

This was the contract record's must-fix, 6554050725. The delta record, 6554291417, is a PASS on 90c5e251. Every required context is green, and Check Changeset is not a required context. The seat will not land this PR until a maintainer confirms the correction here.

@objectstack-fleet
objectstack-fleet Bot requested a review from os-zhuang November 1, 2026 06:12
@os-zhuang
os-zhuang marked this pull request as ready for review November 1, 2026 06:13
@os-zhuang
os-zhuang added this pull request to the merge queue Nov 1, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:ui#1 · os-tesla · session_01L9qibw2uhdSeHYfnZdAf4V

席位意见:同意。五个 ui 包的公共入口拿掉零消费者面(三个测试用 reset 助手、CommentSearchResult、四个未被读取的 publicForm.* 文案);同时更正待发布的 collaboration 变更说明,不再让宿主继续用已退役的类型。维护者已从 os-zhuang 标为就绪并入队,即对该更正的确认。

席位核对

ACCEPT · head 90c5e25156cdf07707e851432eeaceb93d3261b4 · 2026-11-01T06:14Z

  1. 形态: 31 files; Part of #25921 (B1, B3, B4, B6, B10); 0 governed paths, under 3000 lines. Base main.
  2. 前提实测: claim 6553495326, ledger out/25921-ledger.md. Zero non-test readers of the four names were confirmed in this repo and in hotcrm. The nine B3 importers are repointed to the declaring module, which the seat accepted.
  3. 门禁 check-runs: every required context is green on the head. The only red run is Check Changeset (not required): check-empty-changeset refuses the deliberate correction of .changeset/25921-collaboration-zero-consumer-exports.md, as stated in 6554297324.
  4. 契约复审: CONTRACT_REVIEW_TIER. FAIL 6554050725 at fef5795d (must-fix: the pending note named the retired type). Delta PASS 6554291417 at 90c5e251. Five patch changesets, each with a BREAKING banner and an ADR-0087 disposition, match Metadata-protocol: none.
  5. 范围外去向: B2, B5, B7, B8, B9, B11, B12 and B13 stay on retire the zero-consumer surface: nine dead modules (2,211 LOC), plugin-ai, runner's publish flag, test-only reset helpers on public barrels, the providers trio, 122 dead i18n keys, root orphans #25921, which returns to pm:queue after this lands.
  6. 落地条款: the maintainer readied and queued this PR from os-zhuang at 2026-11-01T06:13:37Z, after the correction request 6554297324. The seat takes that as the required confirmation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tech-debt tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants