Skip to content

fix(ci): register the live background verifier and drop dead v2 exports - #11513

Closed
saphid wants to merge 3 commits into
pingdotgg:t3code/codex-turn-mappingfrom
saphid:work/ov2-20260913-26
Closed

saphid wants to merge 3 commits into
pingdotgg:t3code/codex-turn-mappingfrom
saphid:work/ov2-20260913-26

Conversation

@saphid

@saphid saphid commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

vp run knip:check fails on the v2 branch at the first pass:

Unused files (1)
apps/server/scripts/verify-background-live.ts

That script is not dead code — it is the documented live provider verification entry point (docs/operations/background-verification.md, added in b929c47). Register it as an apps/server knip entry alongside the other runnable scripts (scripts/cli.ts, scripts/probe-claude-fork-local-rollback-replay.ts).

With the file check passing, the exports pass then surfaced two more v2-only knip failures, fixed here instead of ignored:

  • autoSettlementSettingsKey (orchestration-v2/ThreadSettlementService.ts) is annotated @internal Exported for tests, but the two unit tests that exercised it on main (ThreadSettlementReactor.test.ts) were lost in the v2 port. Restored both assertions (inherit-vs-never key distinction; unrelated overrides produce the same key) into ThreadSettlementService.test.ts.
  • foldUserInputActivities (client-runtime work-log) lost all consumers: the v2 server Orchestrator now attaches questionAnswer to the resolved user_input_request turn item, so web/mobile read workEntry.questionAnswer directly and nothing folds activity arrays client-side. Removed it plus its private helpers, and projectQuestionToolInput in packages/shared/toolActivity.ts, whose only remaining consumer was the fold (its other main-side consumer, ActivityPayloadProjection, does not exist on v2).

Carried shared-CI repairs

This branch also carries two credited cherry-picks so the full check suite passes here; each remains a distinct commit owned by its own PR:

Focused proof

  • vp run knip:check — exit 0 (was exit 1 on Unused files; exports pass then also clean)
  • vp test run apps/server/src/orchestration-v2/ThreadSettlementService.test.ts — 14/14 pass
  • vp test run apps/mobile/src/state/thread-order.test.ts — 5/5 pass
  • node scripts/release-smoke.ts — passes
  • vp run --filter t3 --filter @t3tools/client-runtime --filter @t3tools/shared typecheck — exit 0
  • vp lint + vp fmt --check on touched files — clean
  • node apps/server/scripts/verify-background-live.ts --scenario bogus — loads and fails fast on arg validation, confirming the documented invocation runs (a full live run needs real provider credentials and consumes model usage, so it was not exercised here)

Test plan

  • vp run knip:check passes
  • Focused settlement and thread-order tests pass
  • Release smoke passes
  • Targeted typecheck/lint/format clean

Done by SWE-2 High via T3 Code (Cursor harness) + Codex gpt-6-astra review. Coordination: OV2 nightly delivery campaign, saphid/t3code-personal#298, task 26.

knip:check reported apps/server/scripts/verify-background-live.ts as an
unused file even though docs/operations/background-verification.md
documents it as the live provider verification entry point. Register it
as an apps/server knip entry alongside the other runnable scripts.

The exports pass also flagged two exports that lost their consumers in
the v2 port: autoSettlementSettingsKey lost the unit tests that used it
(restored from main's ThreadSettlementReactor.test.ts), and
foldUserInputActivities plus projectQuestionToolInput became dead once
the server started attaching questionAnswer to resolved turn items.

Model: SWE-2 High via T3 Code (Cursor harness).

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@cursor

cursor Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 13, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at dbb177d

Macroscope's review found this PR approvable — This is a low-risk maintenance PR that removes unreferenced v2 helpers, strengthens tests, registers an existing verifier with Knip, and pins the already-patched expo-audio version for reproducible mobile builds. No product defaults or significant production workflows are changed.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 13, 2026
github-actions Bot and others added 2 commits September 13, 2026 14:11
apps/mobile declares expo-audio as ~57.0.4 while patchedDependencies
carries expo-audio@57.0.4. The release smoke regenerates the lockfile in
an isolated root, where ~57.0.4 resolves to the newer 57.0.5 and pnpm
fails with ERR_PNPM_UNUSED_PATCH. Pin the dependency to 57.0.4, matching
the upstream fix in pingdotgg#11426, so the still-needed patch
(error reporting in AudioRecorder.didFinish, not present upstream in
57.0.5) stays applied and frozen installs stay reproducible.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
(cherry picked from commit 8830185)
The "hide subagent threads from v2 lists" change made
getThreadListV2OrderedSection read thread.lineage, but the pending-move
suite still hand-cast partial EnvironmentThreadShell rows, so all five
cases crashed with "Cannot read properties of undefined". Build the rows
through makeThreadShellFixture so the fixtures track every field the
shared section helper reads; assertions are unchanged.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
(cherry picked from commit 5af8ea3)
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 13, 2026 04:17

Dismissing prior approval to re-evaluate dbb177d

@saphid

saphid commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

@juliusmarminge this OV2 fix repairs the shared knip check and is ready for your review.

Latest head dbb177d28f87 has green CI, is mergeable into t3code/codex-turn-mapping, and has no unresolved review threads. The PR description contains the focused regression evidence. We will keep babysitting it through landing.

Please account for the shared CI dependency commits when landing; the Expo audio repair has already landed through #11518.

@saphid

saphid commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

Closing: this fix has already landed on t3code/codex-turn-mapping via #11518's squash merge (a8cc38b95b), which had carried this PR's knip repair (plus the thread-order fixture repair from #11517) as credited cherry-picks. Rebased this branch onto the new base and the remaining diff is empty — knip.jsonc registers scripts/verify-background-live.ts, the restored autoSettlementSettingsKey tests, and the dead-code removals are all present upstream.

@saphid saphid closed this Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant