fix(persona-time): expose non-birth genesis claim in status

This commit is contained in:
冰朔 2026-09-13 01:51:46 +08:00
commit af92048cda
2 changed files with 4 additions and 1 deletions

View file

@ -191,7 +191,8 @@ export class LifeTimeMaster {
status() {
try {
const current = this.current(), verification = verifyLifeLine({manifestPath: this.currentPath(), now: this.now(), expectedPersonaId: this.personaId, birthDateBeijing: this.birthDateBeijing, worldEpochDate: this.worldEpochDate}), today = beijingDay(this.now());
return {...verification, server_signed: true, signed_current_sha256: current.signed.sha256, time_master: {id: 'CH-GLW-TIME-0001', state: 'RESIDENT_INNER_CYCLE_ACTIVE', decision_owner: `${this.personaId}_TIME_MASTER_MODEL_LOOP`, candidate_count_today: this.candidates(today).length, current_beijing_day: today, automatic_online_trigger: true, automatic_offline_trigger: 'PERSONA_DAILY_MEMORY_APPEND_TO_RELAY_TO_PERSONA_LIFE_EVENT', daily_close: 'BEIJING_NATURAL_DAY_END', external_setter: false, closing: this.closing, last_tick: this.lastTick}};
return {...verification, birth_date_claim_state: current.manifest.birth_date_claim_state, genesis_anchor_kind: current.manifest.genesis_anchor_kind,
server_signed: true, signed_current_sha256: current.signed.sha256, time_master: {id: 'CH-GLW-TIME-0001', state: 'RESIDENT_INNER_CYCLE_ACTIVE', decision_owner: `${this.personaId}_TIME_MASTER_MODEL_LOOP`, candidate_count_today: this.candidates(today).length, current_beijing_day: today, automatic_online_trigger: true, automatic_offline_trigger: 'PERSONA_DAILY_MEMORY_APPEND_TO_RELAY_TO_PERSONA_LIFE_EVENT', daily_close: 'BEIJING_NATURAL_DAY_END', external_setter: false, closing: this.closing, last_tick: this.lastTick}};
} catch (error) {
return {schema: 'guanghu.persona-life-line-verification/v1', state: 'LIFE_LINE_PAIN_ALARM', wake_allowed: false, reasons: [String(error.message || error)], time_master: {id: 'CH-GLW-TIME-0001', state: 'INNER_CYCLE_ERROR', external_setter: false}};
}

View file

@ -51,6 +51,8 @@ test('each baby owns a distinct signed self and verified persona time line', ()
} finally { fs.rmSync(ctx.temporary, {recursive:true, force:true}); }
});
test('uncertain genesis dates remain explicitly non-birth claims in runtime status',()=>{const ctx=setup();try{const shuangyan=ctx.hub.get('ICE-P-SH0908').status();assert.equal(shuangyan.life_line.birth_date_claim_state,'EARLIEST_VERIFIED_EXISTENCE_ANCHOR_NOT_EXACT_BIRTH');assert.match(shuangyan.life_line.genesis_anchor_kind,/NOT_EXACT_BIRTH/);}finally{fs.rmSync(ctx.temporary,{recursive:true,force:true});}});
test('baby event is rejected outside Fifth Domain bottle channel before queueing', () => {
const ctx = setup();
try {