test(managed-agent): pin #14387's Turn-row accessors in the lock canary (#14501)
Some checks are pending
Qwen Code CI / Classify PR (push) Waiting to run
Qwen Code CI / Test (ubuntu-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / Lint & Static (ubuntu-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / web-shell E2E Smoke (ubuntu-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / Test (macos-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / Test (windows-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / Integration Tests (no-AK, No Sandbox) (push) Blocked by required conditions
Qwen Code CI / Integration Tests (CLI, No Sandbox) (push) Blocked by required conditions
E2E Tests / Build for E2E (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker - shard 1/1 (push) Blocked by required conditions
E2E Tests / E2E Test (Linux) - sandbox:none - shard 1/1 (push) Blocked by required conditions
E2E Tests / E2E Test - macOS - shard 1/2 (push) Blocked by required conditions
E2E Tests / E2E Test - macOS - shard 2/2 (push) Blocked by required conditions
E2E Tests / E2E Interactive - OpenTUI renderer (bun) (push) Blocked by required conditions
E2E Tests / channel-plugin E2E (nightly) (push) Blocked by required conditions
E2E Tests / cron-interactive E2E (nightly) (push) Blocked by required conditions
E2E Tests / web-shell Browser Regression (push) Waiting to run
Managed Agent gate / Select the Managed Agent tier (push) Waiting to run
Managed Agent gate / SDK Java () (push) Blocked by required conditions
Managed Agent gate / Managed Agent gate (push) Blocked by required conditions

The session-row lock-order canary asserts the turn-row accessor
population exactly. #14461 added the lifecycle gate's live-Turn count and
the recovery-blocked verdict, both of which reach ma_turn, without
updating that pin, so the main Managed Agent gate went red.

Add the two members with the reason the order does not bite on them:
the count runs under its caller's session lock, and the verdict updates
the Turn row alone.
This commit is contained in:
Shaojin Wen 2026-10-18 06:53:49 +08:00 • committed by GitHub
parent 39c237af3b
commit 94f37e86cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -406,12 +406,20 @@ class SessionRowLockOrderTest {
"findDispatchable", "findLatestTurns",
"findReplayFloorTargets", "findTurn", "findTurnModelSelection", "findTurnApprovalSelection",
"findTurnSummary", "hasActiveTurn",
// #14387's lifecycle gate counts live Turns under
// its caller's session-row lock. Its recovery-blocked
// verdict can take the session-row lock through the
// cross-file legacy guard before the Turn update, a
// lock this same-file parse cannot see; both pin here
// as Turn-row accessors, not lockers.
"hasLiveTurn",
"insertCancelCommand", "insertChildSession",
"insertChildSessionCommand", "insertCsiSessionCommand",
"insertInternalTeamLeadSessionCommand",
"insertSession", "insertSessionCommand", "insertTurn",
"insertTurnCommand", "insertWorkspaceSessionCommand",
"listTurns", "markSubmissionAttempted",
"markTurnRecoveryBlocked",
"materializeEvent", "materializeInput",
"materializeNextBatch", "recordAdmission",
"recordHarnessEvents", "recordRecoveryAdmission",