第 57 环 · 名字进问候(开机第一句叫得出名字)
第 56 环让每一场会话有了名字(名字格 0x200 + 槽号×6,24 字节 UTF-8),可开机第一句仍只是一个数字:「你有三场没聊完。」用户心里那场「查资料」在问候里没有名字——AI 记得有几场,却叫不出你在等哪一场。
这一环把名字接进问候:问候合成器自己去读被恢复那一场的名字格,把名字排进第一句。核不搬名字、不拼字,名字从内存直接进问候。
boot_greet 扩名。第 53 环的问候合成器只认「场数」,这一环给它加三样东西:
slot / slot_valid 由开关场引擎直连(恢复的是哪一场,不经核);0x1E0~0x1EB,OS 直接读上屏;开机 → 恢复 0xA3(槽 2)
读 0x20C~0x211 → 名字「查资料」
排:查资料,接着聊吧。 48 字节 / 12 字
写 0x1E0~0x1EB
没有名字 → 你有三场没聊完。 24 字节 / 6 字
删掉 0xA3 → 槽 2 名字格清零
新会话 0xA4 分到槽 2 → 问候不叫旧名字
软硬接口。问候页仍在 0xE00,新增只读探针:BG_NAMED(这一句有没有名字)、BG_W6..W11(后六个字)、BG_SLOT(名字从哪个槽读来);SCREEN33 接在 0xE5C。会话记忆区读口多一个主(问候引擎),写主优先级仍是 rn > fs > gp > bg > ss > arc。
协同仿真 tb_min_soc57:接着第 56 圈的三场会话(0xA1 / 0xA2「工作那场」/ 0xA3「查资料」)往下跑:
npu.boot:恢复最后一场 0xA3(槽 2)→ SX_CUR=0xA3;问候 BG_NAMED=1 / BG_BYTES=48 / BG_SID=0xA3 / BG_SLOT=2;0x1E0~0x1EB 十二个字与「查资料,接着聊吧。」参考行逐位相同;npu.forget 3:删掉 0xA3 → FS_OK=1,槽 2 名字格 0x20C~0x211 六字全 0——名字没有被留在格子里;npu.boot:SX_CUR=0xA4,BG_NAMED=0 / BG_BYTES=24 / BG_CNT=3 / BG_SID=0xA4,0x1E0 起 6 字 == 「你有三场没聊完。」——新会话没有继承旧名字,问候诚实退回按场数;主通路 SCREEN=0xF905FD04、SCREEN2~32 与第 25~56 环逐位一致——这一环只加了「读名字格进问候」一条通路,计算面一个字没动。第 56 圈协同仿真与第 53/55 圈单元仿真复跑通过(递增不推翻)。
Salt OS 开机没有桌面、没有图标,只有 AI 一个对话窗口——所以开机第一句就是整个产品的第一印象。到这一环,这句话终于能叫出人:「查资料,接着聊吧。」
对用户来说,这不是「问候语模板多了一个变量」,而是 AI 真的记得你在等哪一场;删掉一场之后,新的一场也不会顶着别人的名字出现。名字跟着会话走——这是「关系」而不是「功能」。
问候念清单。现在第一句只叫得出被恢复的那一场。下一圈让问候把清单上的名字都念出来:「工作那场、查资料,今天从哪场接着?」——一句话里既有名字,也有选择。
名字进问候。名字已经住进清单,可开机第一句还是「你有三场没聊完」——一个数字。下一圈让问候叫得出名字:开机直接说「「工作那场」还等着你」——AI 记得的不只是「有几场」,而是「你在等哪一场」。