diff --git a/server-tools/tcs-mother-body/life-time-master.mjs b/server-tools/tcs-mother-body/life-time-master.mjs index 5f771d8..f96105b 100644 --- a/server-tools/tcs-mother-body/life-time-master.mjs +++ b/server-tools/tcs-mother-body/life-time-master.mjs @@ -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}}; } diff --git a/server-tools/tcs-mother-body/persona-runtime-hub.test.mjs b/server-tools/tcs-mother-body/persona-runtime-hub.test.mjs index 1a8ecf9..667e226 100644 --- a/server-tools/tcs-mother-body/persona-runtime-hub.test.mjs +++ b/server-tools/tcs-mother-body/persona-runtime-hub.test.mjs @@ -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 {