fix: 커맨드 차등 생명주기와 로그 그래프를 보강

장수 55종과 수뇌 35종의 상태, 로그, 메시지, 예약 턴 비교를 닫습니다.

실제 시나리오 프로필과 대표 PostgreSQL 수명주기, 즉시 외교와 출병 회귀를 추가하고 발견된 Ref 로그 및 생성 장수 저장 차이를 교정합니다.
This commit is contained in:
2026-08-23 21:48:29 +00:00
parent 85591c68ad
commit c63a49bd07
128 changed files with 8615 additions and 848 deletions
@@ -73,6 +73,7 @@ describe('instant diplomatic response parity', () => {
const logs = result.effects.filter((effect) => effect.type === 'log');
expect(logs).toHaveLength(4);
expect(logs.map((effect) => effect.entry.generalId)).toEqual([11, 11, 22, 22]);
expect(logs.map((effect) => effect.entry.legacyFlushGroup ?? 0)).toEqual([0, 0, 1, 1]);
});
it('counts an accepted pact down through every month and returns both directions to trade', () => {
@@ -123,6 +124,7 @@ describe('instant diplomatic response parity', () => {
expect(result.actionKey).toBe('che_불가침파기수락');
expect(result.refreshFront).toBe(false);
expect(logs).toHaveLength(6);
expect(logs.map((effect) => effect.entry.legacyFlushGroup ?? 0)).toEqual([0, 0, 0, 0, 1, 1]);
expect(logs).toContainEqual(
expect.objectContaining({
entry: expect.objectContaining({
@@ -135,6 +137,7 @@ describe('instant diplomatic response parity', () => {
it('creates both nation histories and requests front refresh for stop-war', () => {
const result = resolveInstantDiplomacyResponse(context, { action: 'stopWar' });
const logs = result.effects.filter((effect) => effect.type === 'log');
const nationLogIds = result.effects.flatMap((effect) =>
effect.type === 'log' && effect.entry.scope === LogScope.NATION ? [effect.entry.nationId] : []
);
@@ -142,6 +145,7 @@ describe('instant diplomatic response parity', () => {
expect(result.actionKey).toBe('che_종전수락');
expect(result.refreshFront).toBe(true);
expect(nationLogIds).toEqual([1, 2]);
expect(logs.map((effect) => effect.entry.legacyFlushGroup ?? 0)).toEqual([0, 0, 0, 0, 0, 1, 1, 1]);
});
it('recomputes only requested nation fronts with legacy priority', () => {