fix: 특수 유저 커맨드의 Ref 호환 경계를 보강한다

수뇌 국가 설정과 NPC 정책을 actor-bound ENGINE mutation으로 옮기고, 추방·등용·점령·멸망·아이템 폐기의 특수 분기를 Ref와 맞춘다.

요청 ID를 사용자·프로필별로 격리하고 토너먼트 손상 projection을 fail-closed하며 실제 DB 및 Ref 차등 회귀를 보강한다.
This commit is contained in:
2026-08-24 12:10:57 +00:00
parent 5389f8ed94
commit 630bc29100
74 changed files with 3893 additions and 1141 deletions
@@ -80,6 +80,8 @@ integration('unification finalization transaction', () => {
meta: {
power: 3_000,
max_power: { maxPower: 3_500, maxCrew: 400, maxCities: ['원자도시'] },
notice: '통일 공지',
infoText: '통일 임관 안내',
},
},
});
@@ -268,6 +270,7 @@ integration('unification finalization transaction', () => {
await expect(
bidder.bid({
type: 'auctionBid',
userId,
auctionId: uniqueAuction.id,
generalId: fixtureId,
amount: 30,
@@ -277,6 +280,7 @@ integration('unification finalization transaction', () => {
await expect(
bidder.bid({
type: 'auctionBid',
userId,
auctionId: uniqueAuction.id,
generalId: fixtureId,
amount: 50,
@@ -404,6 +408,8 @@ integration('unification finalization transaction', () => {
maxCities: ['원자도시'],
aux: { maxPower: 3_500, maxCrew: 400, maxCities: ['원자도시'] },
generals: [fixtureId],
msg: '통일 공지',
scout_msg: '통일 임관 안내',
});
expect(legacyOfficerPicture.length).toBeGreaterThan(32);
expect(await db.emperor.findFirstOrThrow({ where: { serverId } })).toMatchObject({