merge: 최신 main을 NPC 자동 선포 호환 브랜치에 반영한다

This commit is contained in:
2026-08-24 10:25:53 +00:00
5 changed files with 173 additions and 0 deletions
@@ -0,0 +1,56 @@
import { describe, expect, it } from 'vitest';
import { buildTurnDaemonMemoryReport } from '../src/turn/turnDaemonMemoryReporter.js';
const context = {
year: 214,
month: 12,
generals: 2461,
cities: 78,
nations: 3,
troops: 15,
events: 4,
lifecycleState: 'paused',
};
describe('turn daemon memory reporting', () => {
it('reports bounded process and world-size fields without inspecting or cloning entities', () => {
const result = buildTurnDaemonMemoryReport(
'hwe',
'interval',
context,
{
rss: 1_258_291_200,
heapTotal: 1_100_000_000,
heapUsed: 900_000_000,
external: 20_000_000,
arrayBuffers: 10_000_000,
},
3_221_225_472
);
expect(result.warning).toBe(false);
expect(result.message).toContain('profile=hwe reason=interval');
expect(result.message).toContain('heapLimitMiB=3072');
expect(result.message).toContain('year=214 month=12 generals=2461');
expect(result.message).toContain('lifecycle=paused');
});
it('marks samples at or above 80 percent of the V8 heap limit as warnings', () => {
const result = buildTurnDaemonMemoryReport(
'hwe',
'interval',
context,
{
rss: 1_500_000_000,
heapTotal: 1_400_000_000,
heapUsed: 1_288_490_189,
external: 0,
arrayBuffers: 0,
},
1_610_612_736
);
expect(result.warning).toBe(true);
});
});