Repository navigation
test: remove stale tests for unused thread and onboarding helpers - #30817
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Removes unused thread-directory and onboarding-target helpers without changing active behavior. Repository searches found no production callers, so the cleanup has limited exposure. You can add or adjust custom eligibility rules. Learn more. |
|
Note Written by Verified in a real dev environmentverified as-is at this is unreachable-code cleanup, so there is no user-facing bug to reproduce. both removed symbols occur only in their declarations and deleted tests on main. the live onboarding helpers and selected-thread hook remain unchanged.
main onboarding: pr onboarding with matching selection: Not verifiednative ios/android selected-thread consumers were not exercised on this Linux VM; the web terminal does not prove the native hook. Electron shell integration, macOS/Windows, multi-computer relay/direct/ssh onboarding, importing conversations, and other providers were not exercised. no runtime verification claim for those paths. |
**v0.1.8-nightly.20261106.4247** · 67 changes from 19 contributors - **Environment dictation.** Choose an environment for dictation in web and desktop, including desktop browser annotations. - **Fresh sessions.** Use /clear to start a fresh session without leaving your thread. - **Scheduled task sessions.** Run scheduled tasks in one thread, either continuing the conversation or starting fresh each time. - **Secret requests.** Answer secret requests using a secret provider instead of copying and pasting credentials. - **Snooze questions.** Snooze a thread with a pending question and answer it later. - **Claude Ultracode.** Use Ultracode at any effort level, including with Claude Sonnet 5.5 and Haiku 5.5. - **Faster pull requests.** Pull requests open faster using data already available in the app. ### Plus 31 more bug fixes and performance improvements. <details> <summary>Full changelog</summary> ## What's Changed * fix(threads): side chats inherit parent permissions by default by @extoci in pingdotgg/t3code#31114 * fix(server): threads follow their worktree's branch changes by @Yash-Singh1 in pingdotgg/t3code#31599 * fix(pi): usage reports include sessions stored in a --session-dir launch argument by @saphid in pingdotgg/t3code#30690 * perf(mobile): skip unchanged terminal toolbar fade updates by @saphid in pingdotgg/t3code#25312 * perf(mobile): assemble HTML replacements in one pass by @saphid in pingdotgg/t3code#25278 * perf(mobile): skip canceled SVG parsing by @saphid in pingdotgg/t3code#25314 * test(server): strengthen v1 cutover proof with event-stream waits and content snapshots by @saphid in pingdotgg/t3code#11869 * fix(contracts): a stored secret reference is always sensitive by @yordis in pingdotgg/t3code#31403 * fix(server): a settings save no longer reads an unreadable secret again by @yordis in pingdotgg/t3code#31226 * fix(threads): allow snoozing pending input requests by @saphid in pingdotgg/t3code#20058 * fix(server): repair cutover test crypto import breaking main CI by @Yash-Singh1 in pingdotgg/t3code#31630 * feat(server): sends can start a fresh provider session by @juliusmarminge in pingdotgg/t3code#30323 * feat: /clear starts a fresh session in the same thread by @juliusmarminge in pingdotgg/t3code#30325 * feat: scheduled tasks can run in one thread with a fresh session each run by @juliusmarminge in pingdotgg/t3code#30326 * fix(web): dragging a sidebar thread no longer scrolls the list out from under the pointer by @juliusmarminge in pingdotgg/t3code#30346 * fix(assets): preserve the PR repository for GitHub media by @juliusmarminge in pingdotgg/t3code#21631 * fix(server): load PR uploads from SSO organizations by @juliusmarminge in pingdotgg/t3code#21632 * fix(mobile): the Duo inspector stops at its widest instead of vanishing by @juliusmarminge in pingdotgg/t3code#31665 * test(server): launcher PATH lookup test no longer drops the Windows drive letter by @tris203 in pingdotgg/t3code#22534 * test(server): replay tests delete their temp directories by @only21mil in pingdotgg/t3code#23445 * fix(mobile): transcribe Android audio during recording by @PixPMusic in pingdotgg/t3code#31300 * test(web): linked-environment subagents keep opening in their own thread by @RealDoc06 in pingdotgg/t3code#26492 * test(server): pin post-commit outbox settle boundary by @Narayan201120 in pingdotgg/t3code#27560 * test: remove unreachable github cli decoding test by @t3-code-bot[bot] in pingdotgg/t3code#28115 * test(server): retain delegated child events when detaching a parent by @benjamin-di in pingdotgg/t3code#29622 * test(lint): pin which ResizeObserver constructions no-raw-resize-observer reports by @only21mil in pingdotgg/t3code#28781 * test(mobile): drop two deleted tests from the React test list by @only21mil in pingdotgg/t3code#28800 * test(web): worked-for expand test waits for the timeline to finish loading by @saphid in pingdotgg/t3code#29661 * test(web): avoid PDF worker startup timeouts in attachment tests by @voltcrash in pingdotgg/t3code#29933 * test(web): source control writing settings test waits for the reset button by @juliusmarminge in pingdotgg/t3code#30372 * test(web): keep the work heading test inside the viewport by @voltcrash in pingdotgg/t3code#30613 * test: use an empty config file instead of the null device for git fixtures on Windows by @Pyseph in pingdotgg/t3code#30772 * test: remove stale tests for unused thread and onboarding helpers by @t3-code-bot[bot] in pingdotgg/t3code#30817 * test(server): correct Windows path and settings assertions by @ElliotDrel in pingdotgg/t3code#30983 * feat(claude): Ultracode works with any effort, like Claude Desktop by @Bil0000 in pingdotgg/t3code#27034 * perf(pr): pull requests paint from data already held, on web, desktop and mobile by @Bil0000 in pingdotgg/t3code#27798 * fix(mobile): approval card buttons line up by @shivamhwp in pingdotgg/t3code#31415 * fix(gitlab): author names link to GitLab profiles by @TonybynMp4 in pingdotgg/t3code#30418 * fix(gitlab): merge messages drop agent credits by @TonybynMp4 in pingdotgg/t3code#30441 * fix(gitlab): file and image comments appear as review threads by @TonybynMp4 in pingdotgg/t3code#30425 * fix(web): screen readers no longer read out a secret typed into the request card by @juliusmarminge in pingdotgg/t3code#31653 * perf(pr): actions update every client from the host's reply instead of re-reads by @Bil0000 in pingdotgg/t3code#25761 * feat(mobile): start side chats with /side by @juliusmarminge in pingdotgg/t3code#31709 * feat(claude): expose Ultracode on Claude Sonnet 5.5 and Haiku 5.5 by @DrSeedon in pingdotgg/t3code#30781 * feat(settings): Simlock, Antigravity and OpenCode credentials can come from a secret provider by @juliusmarminge in pingdotgg/t3code#31652 * refactor(mobile): screens declare what they are; layout and AppBar own every platform bar decision by @juliusmarminge in pingdotgg/t3code#31310 * fix(server): a saved source control token that can't be read no longer falls back to another account by @juliusmarminge in pingdotgg/t3code#31646 * feat(secrets): answer a secret request with a secret provider reference by @juliusmarminge in pingdotgg/t3code#31670 * fix(settings): removing a secret provider clears the fields that used it by @juliusmarminge in pingdotgg/t3code#31651 * docs(user): explain secret providers and secret requests by @juliusmarminge in pingdotgg/t3code#31654 * feat(server): transcribe audio on a chosen environment by @juliusmarminge in pingdotgg/t3code#30625 * feat(web): opt into environment dictation on this device by @juliusmarminge in pingdotgg/t3code#30623 * feat(desktop): dictate into browser annotations with the same consent by @juliusmarminge in pingdotgg/t3code#30624 * feat(mobile): opt in to dictation on a paired environment by @juliusmarminge in pingdotgg/t3code#31059 * fix(web): keep the folder path caret in place while editing by @juliusmarminge in pingdotgg/t3code#31642 * perf(mobile): call the highlights lexer through Nitro, up to 10x faster calls on Android by @camchis in pingdotgg/t3code#31188 * fix(claude): turns use the downloaded model catalog by @juliusmarminge in pingdotgg/t3code#31717 * fix(gitlab): bot authors are flagged as bots by @TonybynMp4 in pingdotgg/t3code#30383 * fix(gitlab): merge requests can edit their labels by @TonybynMp4 in pingdotgg/t3code#30483 * perf(mobile): faster thread sync, connects, and reconnects on bad wifi by @Bil0000 in pingdotgg/t3code#28487 * fix(mobile): iPad composer drops when the keyboard floats or minimizes by @juliusmarminge in pingdotgg/t3code#31251 * perf(mobile): stop iOS syntax highlighting from looking up a thread-local on every lexer call by @camchis in pingdotgg/t3code#31187 * fix(gitlab): edited comments wake PR watchers by @TonybynMp4 in pingdotgg/t3code#30403 ## New Contributors * @benjamin-di made their first contribution in pingdotgg/t3code#29622 * @ElliotDrel made their first contribution in pingdotgg/t3code#30983 * @DrSeedon made their first contribution in pingdotgg/t3code#30781 **Full Changelog**: pingdotgg/t3code@v0.1.8-nightly.20261105.4234...v0.1.8-nightly.20261106.4247 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.8-nightly.20261106.4247




problem
nine complete tests kept two obsolete helpers alive even though neither has a production caller. this is a focused run of the
t3code useless test auditautomation, not a human-authored change.removed and evidence
base inspected:
8b44f42b14c8.apps/mobile/src/state/use-selected-thread-worktree.test.tsin full: three tests and their mocked hook harness only calleduseThreadCwd. a tracked-source search on the pinned base finds that symbol only in its declaration and this test file. every production importer ofuse-selected-thread-worktreeusesuseSelectedThreadWorktree, which remains unchanged. testing the unused arbitrary-thread hook cannot protect the selected-thread path that the app actually runs.resolveOnboardingTargetEnvironmentsuite and its six environment fixtures fromapps/web/src/onboarding/targetEnvironment.logic.test.ts. the pinned-base symbol search finds only the helper declaration and that suite, no callers or re-exports. the live wizard instead passes its explicit selection throughresolveOnboardingSetup(WelcomeWizard.tsx:279,329), and usesisOnboardingRelayEnvironmentat line 325. all three setup regression tests remain unchanged.resolveOnboardingTargetEnvironmentas an unused export in knip; retaining dead implementations solely to retain their tests would defeat the audit. no live helper logic changed.this does not claim duplicate coverage: these tests exercised unreachable implementations. retained terminal launch, selected-thread git state/actions, setup, and layout tests exercise distinct live paths. the broader audit also inspected shared endpoint/text-direction re-exports, markdown streaming, and web/mobile timeline tests; those keep unique cases or separate implementations and were retained.
verification
vp install --frozen-lockfile: passed to synchronize the existing checkout's dependencies.vp test run apps/web/src/onboarding/targetEnvironment.logic.test.ts apps/mobile/src/state/use-selected-thread-worktree.test.ts apps/mobile/src/features/terminal/terminalLaunchContext.test.ts: 3 files, 15 tests passed.vp test run apps/web/src/onboarding/targetEnvironment.logic.test.ts apps/mobile/src/features/terminal/terminalLaunchContext.test.ts apps/mobile/src/state/use-selected-thread-git-state.test.tsx apps/mobile/src/state/use-selected-thread-git-actions.test.ts apps/web/src/components/composerFooterLayout.test.ts: 5 files, 24 tests passed.vp run check:changed: passed formatting, lint, both knip passes, mobile/web/scripts typechecks, 3 onboarding tests, and the targeted react-compiler checks (7 passed, 2324 unrelated cases skipped by its filter).git diff --check: passed. full diff reviewed for accidental changes and secrets.model: gpt-6.1-sol. harness: hermes agent.