fix core domestic command persistence parity
This commit is contained in:
@@ -127,6 +127,7 @@ export const projectCoreDatabaseSnapshot = (rows: {
|
||||
belong: readNumber(row, 'belong', readNumber(meta, 'belong')),
|
||||
permission: readString(row, 'permission') ?? readString(meta, 'permission') ?? 'normal',
|
||||
maxBelong: readNumber(meta, 'max_belong'),
|
||||
maxDomesticCritical: readNumber(meta, 'max_domestic_critical'),
|
||||
betray: row.betray,
|
||||
personality: row.personality ?? null,
|
||||
specialDomestic: row.specialDomestic ?? null,
|
||||
|
||||
@@ -548,6 +548,7 @@ const projectWorld = (
|
||||
belong: readNumber(general.meta, 'belong'),
|
||||
permission: readString(general.meta, 'permission', 'normal'),
|
||||
maxBelong: readNumber(general.meta, 'max_belong'),
|
||||
maxDomesticCritical: readNumber(general.meta, 'max_domestic_critical'),
|
||||
betray: readNumber(general.meta, 'betray'),
|
||||
personality: general.role.personality,
|
||||
specialDomestic: general.role.specialDomestic,
|
||||
|
||||
@@ -4,6 +4,27 @@ import path from 'node:path';
|
||||
|
||||
import type { CanonicalTurnCommandTrace, CanonicalTurnSnapshot, TurnSnapshotSelector } from './canonical.js';
|
||||
|
||||
const withProjectedGeneralMeta = (snapshot: CanonicalTurnSnapshot): CanonicalTurnSnapshot => ({
|
||||
...snapshot,
|
||||
generals: snapshot.generals.map((general) => {
|
||||
const meta =
|
||||
typeof general.meta === 'object' && general.meta !== null && !Array.isArray(general.meta)
|
||||
? (general.meta as Record<string, unknown>)
|
||||
: {};
|
||||
const value = meta.max_domestic_critical;
|
||||
return {
|
||||
...general,
|
||||
maxDomesticCritical: typeof value === 'number' && Number.isFinite(value) ? value : 0,
|
||||
};
|
||||
}),
|
||||
});
|
||||
|
||||
const withProjectedTraceMeta = (trace: CanonicalTurnCommandTrace): CanonicalTurnCommandTrace => ({
|
||||
...trace,
|
||||
before: withProjectedGeneralMeta(trace.before),
|
||||
after: withProjectedGeneralMeta(trace.after),
|
||||
});
|
||||
|
||||
export const findTurnDifferentialWorkspaceRoot = (start: string): string | null => {
|
||||
let current = path.resolve(start);
|
||||
while (true) {
|
||||
@@ -45,7 +66,7 @@ export const readReferenceDatabaseSnapshot = (
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
}
|
||||
);
|
||||
return JSON.parse(stdout) as CanonicalTurnSnapshot;
|
||||
return withProjectedGeneralMeta(JSON.parse(stdout) as CanonicalTurnSnapshot);
|
||||
};
|
||||
|
||||
export const runReferenceTurnCommandTrace = (workspaceRoot: string, fixturePath: string): CanonicalTurnCommandTrace => {
|
||||
@@ -60,7 +81,7 @@ export const runReferenceTurnCommandTrace = (workspaceRoot: string, fixturePath:
|
||||
encoding: 'utf8',
|
||||
stdio: ['ignore', 'pipe', 'pipe'],
|
||||
});
|
||||
return JSON.parse(stdout) as CanonicalTurnCommandTrace;
|
||||
return withProjectedTraceMeta(JSON.parse(stdout) as CanonicalTurnCommandTrace);
|
||||
};
|
||||
|
||||
export const runReferenceTurnCommandTraceRequest = (
|
||||
@@ -79,5 +100,5 @@ export const runReferenceTurnCommandTraceRequest = (
|
||||
TURN_DIFFERENTIAL_STACK_DIR: stackDirectory,
|
||||
},
|
||||
});
|
||||
return JSON.parse(stdout) as CanonicalTurnCommandTrace;
|
||||
return withProjectedTraceMeta(JSON.parse(stdout) as CanonicalTurnCommandTrace);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user