Repository navigation
refactor(types)!: delete the fifteen driver and datasource interfaces nothing reads - #30852
Conversation
… nothing reads The Phase 3.6 driver and Phase 3.7 datasource interfaces at the end of data-protocol.ts were read only by each other, and nothing in the workspace or hotcrm imports them. Two parity-test rows that guarded a spec collision for two of the names go with them. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9qibwHV3BxRgPuX4fK7sj
|
domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp Contract-review-claim: session_01L9qibxW6qraU2Z3mwupUGp · head 7577983 · 2026-11-06T06:41Z |
|
domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp Contract reviewServed-tier: ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgmentDead surface only. The 15 names described a server-side SQL driver and a datasource manager inside a client UI types package; nothing in the workspace or hotcrm implements, constructs, imports or documents them, and the platform's real contracts live in Implemented-by: VERDICT: PASS |
|
domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp 维护者速读
席位核对 — ACCEPT · head 7577983
|
Requested by Tesla · project thread
Part of #25921 (batch 8, claim 6677520603 with amendments 6677541846 and 6677640939; the card's other open items stay on it)
Clause-②: no (narrowing)
Metadata-protocol: none
维护者速读
@object-ui/types删除data-protocol.ts末尾的 15 个服务端驱动与数据源接口(SqlDriverInterface、DatasourceManager、ConnectionPool等),连同入口上的两组导出。!patch changeset(BREAKING、FROM/TO、ADR-0087runtime-export-retired15 个)。回滚即 revert 本 PR。ui/packages/types/src/index.ts(删掉的两组导出)、.changeset/25921-types-driver-datasource-block.md(迁移说明)、ui/packages/types/src/__tests__/report-chart-query-spec-parity.test.ts(按席位裁决删两行)。git grep -w -e SqlDriverInterface -e DatasourceManager -- ui/packages/types/src预期 0 命中;pnpm --dir ui exec vitest run packages/types/预期全绿。What changes
@object-ui/types(its.entry) loses the "Phase 3.6" driver interfaces and the "Phase 3.7" datasource interfaces at the end ofsrc/data-protocol.ts. All 15 are deleted from the package, not only from the entry, because their only readers were each other:SqlDriverInterface,ConnectionConfig,DriverQueryResult,BatchOperation,BatchResult,TransactionContext,CacheManager,ConnectionPool,DatasourceRegistration,DatasourceType,DatasourceMetric,DatasourceAlert,DatasourceManager,HealthCheckResult,DatasourceMetrics.src/index.ts: the two comment-headed groups go from the./data-protocol.jsnamed list. Every other name of that list stays.src/data-protocol.ts: the block is deleted; the module header stops naming the two interfaces.src/data.ts: theBatchTransactionOperationdocblock stops contrasting itself with the deleted driver-levelBatchOperation.src/__tests__/report-chart-query-spec-parity.test.ts: see Tests..changeset/25921-types-driver-datasource-block.md: one!patch changeset, BREAKING, FROM/TO per group (no replacement in this package; the platform's contracts areDriverInterfaceandDatasourceSchemain@objectstack/spec/data), and the ADR-0087runtime-export-retiredmarker naming all 15.No module other than
data-protocol.tschanges shape.data-protocol.tsis reached only through the.entry; no subpath entry of the package re-exports it.Tests
it.eachrows dropped, by the seat's ruling (amendment 6677640939, answer A):report-chart-query-spec-parity.test.tspinned "the spec does not ownSqlDriverInterface" and "…DatasourceRegistration". With both names gone there is no ui name left for the spec to collide with. The file's "Renamed" docblock bullet drops the two names with them. Every other row of the file stays, including the spec-owned positive list (DriverInterface,DatasourceSchemaamong it).check-adr-0087-registrationreading the 15 operands against the built entry.Verification
Census (read-only, before any edit; origin/main 9b24f3c, hotcrm 6961ab1)
ui/packages/*main entry; identifier-token index over every tracked file of both repositories, minus CHANGELOGs, changesets, the lockfile and release notes; prose and tests count as consumers. Then: not taught in the package README / demo / docs, and not named by a kept export's declaration.ui/packages/types/in either repository.ConnectionConfig(mysql2's class, inservice-datasourcecomments and a test),BatchResult(a test-local interface inplugin-security),HealthCheckResult(the cli doctor's own interface),CacheManager(prose in hotcrm's archived legacy specs about another class). None imports@object-ui/types.DriverQueryConfig,ObjectValidationRule(kept; still exported, still in the builtdist).ui/packages/types/.Local runs on head 7577983 (base c17719d)
env -u OS_SKIP_DTS pnpm --filter '@object-ui/types...' build: VERDICT command-exit 0. The builtdisthas 0 files namingSqlDriverInterface,DatasourceManager,HealthCheckResultorConnectionPool;DriverQueryConfigis in 2.pnpm --filter @object-ui/types run type-check(src, examples, tests): exit 0.pnpm --dir ui exec vitest run packages/types/: Test Files 387 passed (387), Tests 10462 passed (10462).node scripts/pm/dispatch-gates.mjs --commands: 35 derived families, every line run with stdin closed;--ranreconciliation: 35 run, 0 NOT-MEASURED, 0 UNRUN, all exit 0.pnpm --dir ui exec vitest run scripts/: the first run went red in two files (unit-registry-absence-collision.test.ts: "Failed to resolve entry for package @objectstack/formula";date-only-zone-pins-10183.test.ts: the forked runs "ran no case at all"), because@objectstack/formulahad nodistin this fresh worktree. Afterpnpm --filter '@objectstack/formula...' buildboth files pass (2 files, 44 tests), and the full rerun is Test Files 170 passed, 2 skipped (172), Tests 4970 passed, 2 skipped.node scripts/check-sdui-manifest.mjs: exit 0.node scripts/check-platform-checklist.mjs --changed-from origin/main: exit 0 (no anchored file in the change set).pnpm --dir ui run check:new-line-citations: 0 new citations.(narrowing)arm): head 7577983,bash scripts/pm/os-verify-lock.sh -c "pnpm --filter '@objectstack/dogfood^...' build && pnpm --filter @objectstack/dogfood test": VERDICT command-exit 0; Test Files 423 passed, 3 skipped (426); Tests 3533 passed, 41 skipped (3574); no failure.Acceptance notes
clearSharedDiscoveryCache(36 files name it; tests in other packages import it, so it needs a test-support home first) and the other barrel batches.@object-ui/typeskeeps about 56 more zero-outside candidates (spec-report.ts,designer.ts,api-types.ts,product-blocks.ts,ui-action.tsand others), several of them tombstones or parity-pinned, for later batches. Census and tools: this project's filesui-seat-3/r2026-11-06/25921-b8-census.md.types/src/ai.tskeeps itsnevertombstones until the sunset rule of docs/adr: a sunset rule for @deprecated tombstones — 574 tags (504 in packages/types, 640 'never' members) with no rule for when a tombstone leaves the authoring face #25912; not touched here.markdown-itoverride inpnpm-workspace.yamlmatches no resolved package (the lockfile carries only the override line).Generated by Claude Code