<feed xmlns='http://www.w3.org/2005/Atom'>
<title>living-village.git/src/LivingVillage.Kernel.Tests/DeterminismTests.fs, branch p19-daylight-taming</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.somhairle.bid/living-village.git/atom?h=p19-daylight-taming</id>
<link rel='self' href='http://git.somhairle.bid/living-village.git/atom?h=p19-daylight-taming'/>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/'/>
<updated>2026-09-20T06:20:54+00:00</updated>
<entry>
<title>feat(m5): 增加可交互对话、需求观察与编年史</title>
<updated>2026-09-20T06:20:54+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T06:20:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=7e197babfbb68d7f7d1866d6a0ca47cf17d3af23'/>
<id>urn:sha1:7e197babfbb68d7f7d1866d6a0ca47cf17d3af23</id>
<content type='text'>
[变更性质]
- 本提交新增 M5 用户能力，不是缺陷修复。

[新增功能]
- 增加玩家六意图对话、需求面板、可见 NPC 观察、编年史与因果谣言冒烟验收。

[实现方案]
- 在 Kernel 中扩展 Avatar Mind、对话结果、观察数据、Annals 和确定性谣言链。
- 在 Desktop 中加入键盘交互、像素文本面板和运行时状态展示，并补充 Headless 与测试覆盖。

[影响范围]
- 覆盖 Kernel、Headless、Desktop 及测试工程；保留既有 M3/M4 确定性与交易、关系、谣言行为。
</content>
</entry>
<entry>
<title>feat(m4b): 增加可追踪谣言传播与回放</title>
<updated>2026-09-20T04:18:38+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T04:18:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=4f8aca922e6cf47dce95aab79541065d487d5272'/>
<id>urn:sha1:4f8aca922e6cf47dce95aab79541065d487d5272</id>
<content type='text'>
[变更性质]
- 本提交新增 M4b 谣言传播与确定性验收能力，不是单纯缺陷修复。

[新增功能]
- 支持带来源、父节点、深度、强度和路径的谣言传播、去重、衰减与过期处理。
- Headless 支持稳定谣言 dump、replay，以及与 batch 模式的互斥校验。

[实现方案]
- 通过不可变 World 更新和失败原子返回保持模拟确定性。
- 新增多跳传播、重复转述、过期父节点、非法参与者和稳定 trace 测试。

[影响范围]
- 影响 Kernel、Headless 和 Kernel 测试；不包含 M5/M6 或无关配置与文档改动。
</content>
</entry>
<entry>
<title>feat(m4a): 增加交易库存金钱与动态定价</title>
<updated>2026-09-20T03:29:11+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T03:29:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=23a9235f29e92adb51c3bf1a71f92cd8434e0939'/>
<id>urn:sha1:23a9235f29e92adb51c3bf1a71f92cd8434e0939</id>
<content type='text'>
[变更性质]
- 本提交新增 M4a 交易能力，不扩大到 M4b、M5 或 M6。

[新增功能]
- 支持 Food 库存、买卖双方金钱转移、原子成功与拒绝结果。
- 支持基于需求、库存、性格和近期成交记忆的动态定价。

[实现方案]
- 在 Sim 中增加 TradeRequest、TradeResult、交易失败类型、交易记忆与 TradeEvent。
- 以不可变 World 更新和确定性定价保持库存、金钱及事件守恒。
- 增加交易测试，并补齐既有 NPC fixture 与 MemoryKind 穷举匹配。

[影响范围]
- 仅影响 LivingVillage.Kernel 交易逻辑及五个 M4a 相关测试项目文件。
</content>
</entry>
<entry>
<title>feat: M3a 30 NPC 社区 — initialWorldN 网格布局 + Wander 寻伴闲聊 v1(ChatInit 事件队列 + 双方 Chatted 记忆 valence+0.3 + Social+40) + headless 聊天统计; 修复 clamp 泛型比较装箱(30npc 1天 63.5s→15.7s, 输出逐字节一致) + M3a 对拍/闲聊对称测试</title>
<updated>2026-09-18T19:20:56+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-18T19:20:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=4993bc37cb00356b83cb4f8a2e4a92fc2fe77922'/>
<id>urn:sha1:4993bc37cb00356b83cb4f8a2e4a92fc2fe77922</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: M2b NPC 记忆与行为稳定化 — 环形记忆(≤64: tick/kind/valence) + 行动粘性(最小600tick, urgent&lt;20豁免) + 夜间(22-6)sleep权重x3 + Desktop蓝色NPC与标题行动名 + headless摘要(mem_count/last_valence/行动平均持续/昼夜sleep占比) + 粘性与valence测试</title>
<updated>2026-09-18T18:37:20+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-18T18:37:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=2f46d1789088eb165271bd915844376aa5a84768'/>
<id>urn:sha1:2f46d1789088eb165271bd915844376aa5a84768</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: M2a NPC 心智基础 — Needs 衰减 + Personality(seed) + 决策层v1(需求缺口×性格权重) + 四语义点直线移动 + headless NPC 摘要 + 对拍/衰减测试</title>
<updated>2026-09-18T18:24:26+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-18T18:24:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=4627a29302aa780ba8de1e537a869650601debc3'/>
<id>urn:sha1:4627a29302aa780ba8de1e537a869650601debc3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: M1 模拟器内核 — SplitMix64 RNG + 确定性 step + 对拍测试 + headless 冒烟工具 + Desktop 自动演示</title>
<updated>2026-09-18T16:18:43+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-18T16:18:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=59458d149d7cecf73e708faa6d9e6db2bcd89dfd'/>
<id>urn:sha1:59458d149d7cecf73e708faa6d9e6db2bcd89dfd</id>
<content type='text'>
[变更性质]
本 commit 为功能开发，交付设计文档 §2 模拟器内核（里程碑 M1），非缺陷修复或结构重构。

[新增功能]
- Kernel：Rng.fs 提供 SplitMix64 纯函数 RNG（ofSeed / nextUInt64 / nextFloat32），World 携带种子状态。
- Kernel：Sim.fs 重写为 struct record（Vec2/Avatar/Input/TimeStep/World），step : World → TimeStep → World 纯函数，dt 固定 1/60 由内核常量给定，Time = Tick * dt 不做浮点累加；initialWorld 由无参改为带 seed。
- Tests：MSTest 确定性对拍——同 seed 轨迹逐 tick 相等、异 seed 发散、step 纯度、长跑有限/有界/时间-刻度关系、SplitMix64 已知向量、nextFloat32 值域。
- Headless：--days N --seed S 冒烟工具，每 1000 tick 输出摘要行，统计 NaN/越界计数并决定退出码。
- Desktop：LV_AUTOPLAY=1 环境变量启用正弦驱动自动演示，窗口标题与启动日志标注模式。

[实现方案]
- 全部状态用 [&lt;Struct&gt;] record，模拟路径零堆分配，支撑 51.84 亿刻长跑。
- step 不消费 World 内 RNG，种子经由外部确定性驱动脚本生效（每 900 刻换段，8 方向查表 + 三档幅值，避开三角函数保证跨平台位精确）。
- Headless 内存口径取 GC.GetTotalMemory(true)（全收集后的稳态驻留），避免 GetTotalMemory(false) 随 Gen0 段扩张漂移误报泄漏。

[影响范围]
- Kernel 保持零 MonoGame 引用，模拟与渲染彻底分离；sln 新增 Headless 与 Tests 两个项目。
- Release 构建 0 警告 0 错误，7/7 测试通过；1000 天长跑 5,184,000,000 刻退出码 0，无 NaN 无越界，内存 87,824 → 93,000 字节（1.06x &lt; 2x）。
- 同 seed 两次运行 stdout 字节一致，seed 42/43 轨迹不同。
</content>
</entry>
</feed>
