<feed xmlns='http://www.w3.org/2005/Atom'>
<title>living-village.git/src/LivingVillage.Kernel/Sim.fs, branch p20-map-gen-foundation</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.somhairle.bid/living-village.git/atom?h=p20-map-gen-foundation</id>
<link rel='self' href='http://git.somhairle.bid/living-village.git/atom?h=p20-map-gen-foundation'/>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/'/>
<updated>2026-09-21T15:53:40+00:00</updated>
<entry>
<title>perf(sim): M6a 谣言窗口扫描去中间表——最新在前早停递归替代 takeWhile/filter/sort，零分配且等价</title>
<updated>2026-09-21T15:53:40+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T15:53:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=cc850bf7998daa0d785facaca59f89ec2aab6225'/>
<id>urn:sha1:cc850bf7998daa0d785facaca59f89ec2aab6225</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(sim): M6a 谣言工作集容量上界+按天淘汰——DayIndex 派生字段/纯函数 trim/窗口化扫描/O(1) nextId</title>
<updated>2026-09-21T15:12:20+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T15:12:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=d94ec2dc875c6c45973c6d6d6730b4a57fadeb3e'/>
<id>urn:sha1:d94ec2dc875c6c45973c6d6d6730b4a57fadeb3e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(occupation): 职业系统第一片 — Kernel 结构 / bootstrap 注入 / 存档 v3</title>
<updated>2026-09-21T09:18:11+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T09:18:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=cf214889490a62ba4fe84fb0055bc2133776e8a2'/>
<id>urn:sha1:cf214889490a62ba4fe84fb0055bc2133776e8a2</id>
<content type='text'>
Occupation.fs（Kind/Profile/State + 农夫/渔夫/货郎/书生 中文名常量，按设计 §1 表给初始 Money/Energy/Inventory）；ItemKind 扩出 Fish/Spice/Scroll（basePrice 分支补齐，Food 10.0f 数值路径不变 → 无职业 digest 不动）；WorldBootstrap.initialWorldWithOccupation 默认 None = 旧行为（Money/Energy 覆盖，库存字段先留数据侧、物理挂接留交易单——取舍见 design §2-C 反对加字段）；WorldSave: v3 头仅在有职业时写入（保存 saveToFileWith / loadFromFileWith，v1/v2/v3 无职业类型默认，token 顺序 version|w|h|kind|task|story|…），默认路径 save 输出逐字节等同现行 v2；P10 测试 5 例（§1 表值、v3 round-trip、v1/v2 不吞档、双 seed 逐字节、中文名）；Kernel.Tests 引用 Desktop 以驱动 WorldBootstrap（取舍：不做测试专用 shim）。TaskToken/StoryStage 为 v3 占位（任务系统后续单实现）。
</content>
</entry>
<entry>
<title>feat(kernel): 地图边界参数化与存档 v2</title>
<updated>2026-09-21T06:55:37+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T06:55:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=ab19df0ebad8da972cd30f89f7cfd8ef38b8c0ae'/>
<id>urn:sha1:ab19df0ebad8da972cd30f89f7cfd8ef38b8c0ae</id>
<content type='text'>
Sim 地图边界由常量 52 改为可配置（configureBounds，默认 64x48 = 与全部基线一致）；Sim.step 裁剪、initialWorld 中心出生时点按当前边界读取；WorldSave 升级 V2 头携带 width/height 两字段，V1 旧存档照常读入并自动回退到 64x48；回归：512x384 边界裁剪/初界转正/双份存档往返/案例 v1 档兼容读。修复前一段中报错已修正的测试代码（Ensure saved-file timeouts）。
</content>
</entry>
<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>fix(m3): 保留关系记忆并避免立即重复聊天</title>
<updated>2026-09-20T02:50:44+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T02:50:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=2f8ce45de7e4d9fb1aef1e35ef9d025b72f07b58'/>
<id>urn:sha1:2f8ce45de7e4d9fb1aef1e35ef9d025b72f07b58</id>
<content type='text'>
[问题原因]
- 常规记忆写入会挤出 Chatted 事件，导致关系权重失去长期输入。
- NPC 聊天选伴没有排除最近对象，可能立即重复同一聊天伙伴。

[问题根因]
- 记忆列表只使用单一容量截断策略，没有区分关系记忆和常规记忆。
- 聊天伙伴搜索只按距离选择，没有读取最近聊天记忆。

[修复方案]
- 为关系记忆保留容量，并继续限制总记忆容量。
- 优先选择非最近聊天伙伴；无替代对象时回退到原有选择逻辑。
- 增加记忆保留和重复聊天回归测试。

[影响范围]
- 修改 LivingVillage.Kernel 的 NPC 记忆与聊天伙伴选择。
- 不改变 headless 参数或关系矩阵接口；现有构建与测试流程保持兼容。
</content>
</entry>
<entry>
<title>fix: M3c 关系半衰期单位错误 86400L(=24模拟分钟)→ticksPerDay(1模拟日=5,184,000tick) + 衰减改真半衰 exp(-ln2*age/halfLife)(age=halfLife 处权重恰0.5, 旧式 exp(-age/halfLife) 为 e^-1≈0.368) + 单测锁定(1天=5184000tick/halfLife=1天/半衰权重0.5, 手算期望随真半衰语义更新) + headless 批验新增旧判据 old_crit 观测报告(60% 覆盖判据保留为门)</title>
<updated>2026-09-19T10:47:24+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-19T10:47:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=ab0cdf47f453bf3e12df0201cd7bd1835fb03cae'/>
<id>urn:sha1:ab0cdf47f453bf3e12df0201cd7bd1835fb03cae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: M3b 关系网络派生 — Sim.relationMatrix 双向累加+时间衰减(halfLife 86400tick, |r|&gt;0.5 阈值) + headless --dump-relations 与 --batch K D 验收(chats max/avg、relcnt 差异、无NaN) + Desktop L 键关系视图(暂停+快照, 绿/红线粗细∝|r|, cyan NPC 点) + LV_STEPS_PER_FRAME 调试快进 + 衰减/矩阵/30npc 对称测试(19/19) + xvfb 截图验证 PASS</title>
<updated>2026-09-19T03:07:07+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-19T03:07:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=c1242ee391a25d5e5664befb5efe84b3e471ffd2'/>
<id>urn:sha1:c1242ee391a25d5e5664befb5efe84b3e471ffd2</id>
<content type='text'>
</content>
</entry>
</feed>
