Skip to content

[fork test] Fix the CI failures since #137 - #4

Open
Cadacious wants to merge 4 commits into
base/upstream-developmentfrom
ci/fix-post-merge-failures
Open

Cadacious wants to merge 4 commits into
base/upstream-developmentfrom
ci/fix-post-merge-failures

Conversation

@Cadacious

Copy link
Copy Markdown

Fork-only validation PR: 5-10 full CI runs on GitHub runners before this goes upstream.

Fixes every failure seen on upstream development since InfiniteRasa#137 merged:

🤖 Generated with Claude Code

https://claude.ai/code/session_01AxABTHjs6nJrsXVCTnmMo7

Cadacious and others added 4 commits October 5, 2026 07:08
InfiniteRasa#136 moved SetControlledActorId after the initial mission state, so the
retail client loads its MissionTrack options against the current mission
list. The weapon drawer refresh and the weapon and ability selections
stayed where they were, now before the controlled actor, and
AssigningPlayerRefreshesTheWeaponDrawerAfterSelectingTheControlledActor
failed on every run since. They now follow SetControlledActorId: options
and mission state still come first, and the tray still gets its contents
after its actor, then its selection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AxABTHjs6nJrsXVCTnmMo7
InfiniteRasa#138 named the retry mission's id in a doc comment, and
GenericMissionRuntimeFilesDoNotContainBootcampMissionIdSwitches guards
the generic mission runtime against Bootcamp ids. The comment names the
mission instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AxABTHjs6nJrsXVCTnmMo7
SceneApplication.Tick took due timers from SceneDueQueue (a PriorityQueue
and a Dictionary) outside _dispatchGate, and Resume re-attached runs from
their rows outside it too, while commits from client threads run under
it. Two overlapping evaluations could corrupt the queue, or one could
re-attach a run a revision behind the other's commit, so both commits were
rejected ("Concurrent scene revision") and the deadline never completed.

- SceneDueQueue locks its own state.
- Tick takes due work and submits it under the dispatch gate.
- Resume runs under the dispatch gate.

ConcurrentDeadlineEvaluationCommitsOneCompletion is back in the suite:
it failed 12 in 500 iterations under load before, 0 in 2000 after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AxABTHjs6nJrsXVCTnmMo7
An escort engages hostiles within 20 of its owner, so at the reclaimed
base it fought the Thrax, and where that fight left it at the last tick
depended on creature timers that run on Environment.TickCount64. The
test, which is about the route, removes the creatures hostile to the
escorts first, and is back in the suite: it failed 6 in 15 runs before,
0 in 40 after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AxABTHjs6nJrsXVCTnmMo7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant