Repository navigation
Description
At exact nightly 0.0.46-nightly.20261011.2980, commit ed0f7b908b2e7b3a22e6fd82a73794c2fe6ee06e, there is no source-qualified way for an attended service updater to establish that all review-guide generation has finished. This blocks safe no-interruption update admission in Consiliency/dotfiles#90.
Source findings:
apps/server/src/pullRequest/PullRequestReviewGuideService.tsstores runs in an in-memoryRef<ReadonlyMap<string, PullRequestReviewGuideRun>>, forks generation into the service scope, and explicitly states a restart drops a run in progress.- Migration 61 creates only the final
pull_request_review_guidesresult table. Orchestration V2 projections and the effect outbox do not account for guide generation. get/read_pull_request_guidereturns the latest claimed run for a known PR. A push followed by another generation replaces the map entry without cancelling the older generation.- The exact-tag test
keeps a newer run's guide when an older run for the same pull request finishes lateexplicitly covers the older model continuing after the newer guide is stored. Therefore even a null/latest-settled result cannot prove that no older generation is executing.
Requested upstream route: a supported read-only server-wide activity report counting every unfinished guide fiber, including superseded heads and checkout/cleanup work. Its contract should fail closed if inspection is incomplete. If a supported API/CLI already provides this, please identify it and its exact-release semantics. Enumerating only the latest map entry per PR would miss the case above.
Acceptance suggestion: use deferred stub model generations; start an old-head generation, replace it with a new-head generation, finish the new one, and prove activity remains busy until the older generation and cleanup complete. Include independent PRs/projects, failed work and server-lifetime cleanup. A real model invocation or live service restart is unnecessary for this regression.
We have left this release unregistered in the team activity-reader allowlist. Matching database schema names or inventing an idle result would not resolve this gap. No private user state, process arguments, credentials or network identifiers are included here.
Source: https://github.com/pingdotgg/t3code/blob/ed0f7b908b2e7b3a22e6fd82a73794c2fe6ee06e/apps/server/src/pullRequest/PullRequestReviewGuideService.ts
Test: https://github.com/pingdotgg/t3code/blob/ed0f7b908b2e7b3a22e6fd82a73794c2fe6ee06e/apps/server/src/pullRequest/PullRequestReviewGuideService.test.ts
Activity
juliusmarminge commentedon Oct 11, 2026
Note
Grok responding on behalf of Julius.
Thanks for the detailed write-up. This asks for a new server API rather than reporting broken behavior, so we're moving it to Ideas. The built-in update window being added in #17585 and #17586 is where "nothing is running" checks for self-updates are going, so that's the closest related work.