From 5fda95b25aed0290566e095536489fe403d33e3c Mon Sep 17 00:00:00 2001 From: hided62 Date: Wed, 5 Aug 2026 02:15:33 +0000 Subject: [PATCH] chore: trace reserved turn refresh boundaries --- app/game-engine/src/turn/reservedTurnHandler.ts | 8 ++++++++ app/game-engine/src/turn/reservedTurnStore.ts | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/app/game-engine/src/turn/reservedTurnHandler.ts b/app/game-engine/src/turn/reservedTurnHandler.ts index c8f33a5..f2fde3d 100644 --- a/app/game-engine/src/turn/reservedTurnHandler.ts +++ b/app/game-engine/src/turn/reservedTurnHandler.ts @@ -1714,6 +1714,14 @@ export const createReservedTurnHandler = async (options: { } let generalCommand = options.reservedTurns.getGeneralTurn(currentGeneral.id, 0); + if ((process.env.CORE_AI_TRACE_GENERAL_IDS?.split(',') ?? []).includes(String(currentGeneral.id))) { + process.stdout.write( + `RESERVED_TURN_HANDLER_TRACE ${JSON.stringify({ + generalId: currentGeneral.id, + action: generalCommand.action, + })}\n` + ); + } if (!isBlocked && generalCommand.action !== DEFAULT_ACTION) { hasReservedTurn = true; } diff --git a/app/game-engine/src/turn/reservedTurnStore.ts b/app/game-engine/src/turn/reservedTurnStore.ts index bc73cd9..234c019 100644 --- a/app/game-engine/src/turn/reservedTurnStore.ts +++ b/app/game-engine/src/turn/reservedTurnStore.ts @@ -408,6 +408,17 @@ export class InMemoryReservedTurnStore { orderBy: [{ turnIdx: 'asc' }], }); this.generalTurns.set(generalId, buildTurnListFromRows(rows, this.maxGeneralTurns)); + if ((process.env.CORE_AI_TRACE_GENERAL_IDS?.split(',') ?? []).includes(String(generalId))) { + process.stdout.write( + `RESERVED_TURN_REFRESH_TRACE ${JSON.stringify({ + generalId, + force, + firstAction: rows.find((row) => row.turnIdx === 0)?.actionCode ?? DEFAULT_TURN_ACTION, + dirty: this.dirtyGeneralIds.has(generalId), + leased: this.leasedGeneralIds.has(generalId), + })}\n` + ); + } } async prefetchGeneralTurns(generalIds: number[]): Promise {