Skip to content

chore(ui-tooling): drop package tsconfig keys that restate the root's value (slice 6 of #25920) - #26139

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/project-thread-slsqxn
Oct 26, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/project-thread-slsqxn

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Elon · project thread

Part of #25920 — slice 6, the card's tsconfig dedupe (slices 1–5: #26004, #26024, #26057, #26098, #26107).

Summary

42 files, +24 / −90, on main 95294be. No effective configuration changes.

42 package tsconfigs that extend ui/tsconfig.json restated root values exactly: "jsx": "react-jsx" in 42 files and "skipLibCheck": true in 24. Both keys are removed. The 24 + lines only move a trailing comma when the removed key was the last entry in compilerOptions.

Proof the edit is mechanical: tsc -p <file> --showConfig output is byte-identical before and after for all 78 tracked ui/packages/*/tsconfig*.json. TypeScript 6.0.3 resolves the full extends chain, and every resolved option and file list matches.

Kept on purpose

These are root-equal or close to it, but are not mechanical to drop:

  • "noEmit": true in tsconfig.test.json, tsconfig.typetests.json and packages/types/tsconfig.examples.json. check-type-check-coverage.mjs checks these files' text for "noEmit": true, so the key must stay written in the file. The checking-project convention, stated in their comments, also writes it explicitly.
  • packages/cli module / target / moduleResolution / resolveJsonModule. That config emits the CLI. Its emit settings stay pinned locally so they don't follow a later change to the root.
  • baseUrl + "paths": { "@/*": ["src/*"] } in 24 packages. Not equal to the root in effect. A child paths replaces the root's, so removing it would expose the root's @object-ui/* → src paths, resolved against the root's baseUrl. Checked with --showConfig on plugin-map: the effective config changes.

Verification (head bad0f29)

  • --showConfig identity: 78 of 78 configs identical, measured on this base.
  • ui gates that read tsconfigs: check-type-check-coverage, check-published-tsconfig-tooling-exclude, check-unreferenced-sources and check-test-path-roots all exit 0. check-node-esm-load gives the same result before and after: its specifier leg passes, and its load leg stops at a local pnpm build that this environment cannot run.
  • ui tooling tests that read tsconfigs (type-check-coverage ×2, node-esm-load, published-tsconfig-tooling-exclude, dist-completeness, vitest-setup/config type-check, side-effects-declaration-consistency, vitest-config-alias-targets, vi-mock ×2, markdown-test-inputs, check-unreferenced-sources): 13 files, 745 tests passed.
  • dispatch-gates --commands families: per-family exit codes are in the report on the card. check:commit-card-trailers: exit 0.
  • No changeset: private ui package configs only, with identical effective options.

Generated by Claude Code

🤖 Generated with Claude Code

https://claude.ai/code/session_012eXtKYmXEnCc1GExP4go12

42 package tsconfigs that extend ui/tsconfig.json restated `"jsx":
"react-jsx"` (42) and `"skipLibCheck": true` (24) with exactly the root's
value. Removing them changes no effective config: `tsc -p <file>
--showConfig` is byte-identical before and after for all 78 package
tsconfigs.

Kept on purpose:
- `"noEmit": true` in tsconfig.test.json / tsconfig.typetests.json /
  tsconfig.examples.json: check-type-check-coverage requires it to be
  stated in the file, and the checking-project convention states it.
- packages/cli module/target/moduleResolution/resolveJsonModule: that
  config emits the CLI, so its emit settings stay pinned locally.
- baseUrl + `"@/*"` paths: not root-equal in effect (a child `paths`
  replaces the root's, and removing it would expose the root's
  @object-ui/* source paths with a different baseUrl).

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012eXtKYmXEnCc1GExP4go12
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 26, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 — ACCEPT at bad0f295

Seat review of #26139, slice 6 of #25920 (devx seat #6023).

  • 42 package tsconfigs, +24/−90. Not governed.
  • Mechanical only. The diff removes 42 "jsx": "react-jsx" and 24 "skipLibCheck": true lines. The 24 additions are the same keys losing a trailing comma (declarationMap, composite, closing braces). Both removed keys are set to the same values in the root they extend (ui/tsconfig.json L51 and L58).
  • Proof of no change: tsc --showConfig is byte-identical before and after for all 78 package tsconfigs (os-dev-report 6417619212). CI at bad0f295: 46 success, 13 skipped, 0 failed, with Type Check UI and Test UI 1–16 green.
  • skip-changeset. Contract review is not triggered.

Landing: pr_ready + automerge_enable now, under the maintainer's standing grant. This is the last code slice. #25920 stays open only for the maintainer's ruling on the 8 gate-shaped scripts and the 3 live instruments.

Card: #25920


Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 26, 2026 13:49
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 26, 2026 13:49
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit a2dfaeb Oct 26, 2026
60 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/project-thread-slsqxn branch October 26, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/m skip-changeset PR has no user-facing published change; bypasses the changeset gate tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants