# refactor\(web\): keep feature component helpers private · PR \#10226 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/10226)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: merged

Source repository: pingdotgg/t3code

Source branch: cleanup-web/component-internals

Target branch: cleanup-web/runtime-internals

Head commit: dec7d74ac579e2a16c6d3efcff698aff256d3ed7

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/10226)

[Commits](https://git.cafe/pingdotgg/t3code/pull/10226/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/10226/diffs?format=markdown)

## Description

---

App feature modules export constants, helpers, and local components that no other module imports. Make those declarations private and remove stale re-exports and two unused helpers.

Keep the lazy-loaded PullRequestCodeTab default export, the project settings entry point, and existing behavior tests. Remove duplicate provider metadata exports while retaining the aliases callers use. Core UI component modules are outside this layer and remain intact.

Layer 2 of 4 in the web runtime-export cleanup stack. Based on [#10225](https://github.com/pingdotgg/t3code/pull/10225).

Verification at the integrated stack tip: `vp run --filter @t3tools/web test` passes all 4,052 tests across 333 files. Web typecheck and changed-file lint/format pass. `vp run knip:check` passes. A negative probe confirmed that a wholly unused `components/ui/*.tsx` file still fails the file audit.

Model: gpt-6 astra. Harness: Codex in T3 Code.


<!-- Macroscope's pull request summary starts here -->
<!-- Macroscope will only edit the content between these invisible markers, and the markers themselves will not be visible in the GitHub rendered markdown. -->
<!-- If you delete either of the start / end markers from your PR's description, Macroscope will append its summary at the bottom of the description. -->
> [!NOTE]
> ### Make `apps/web` feature component helpers, constants, and components module-local
> - Removes or narrows exports across ~25 web feature modules so helpers, constants, and components stay private to their defining file. Values, props, rendering, and logic are unchanged.
> - Deletes dead exports with no remaining callers: `parseTimestampMs` in [Sidebar.logic.ts](https://github.com/pingdotgg/t3code/pull/10226/files#diff-529ae8997a33774d7ec3514d7abdb655942eaa993f71e6ec6728c892285d251a) and the plural `ComposerPendingTerminalContexts` component plus its props interface in [ComposerPendingTerminalContexts.tsx](https://github.com/pingdotgg/t3code/pull/10226/files#diff-9cd0dd02c717609e3a229af3206e033ff9f9d8a25ebc7ad5815460d3caa6e209).
> - Stops cross-module re-exports: `DiffWorkerPoolProvider` from [DiffPanel.tsx](https://github.com/pingdotgg/t3code/pull/10226/files#diff-432b64436ab58eaa9098a7db8382164d4d30470236045f6b3844eef9f8a257f3) and `summarizeToolGroup` from [MessagesTimeline.logic.ts](https://github.com/pingdotgg/t3code/pull/10226/files#diff-6cdfacc6ebbdbc5c4b4058c0a430b87d768ac2b6accf35fb4c9dfc23500914fe).
> - Risk: any out-of-tree code importing these now-private symbols will fail to compile; in-tree imports were already module-local or have been removed.
>
> <!-- Macroscope's review summary starts here -->
>
> <sup><a href="https://app.macroscope.com">Macroscope</a> summarized dec7d74.</sup>
> <!-- Macroscope's review summary ends here -->
>
<!-- Macroscope's pull request summary ends here -->
