<feed xmlns='http://www.w3.org/2005/Atom'>
<title>living-village.git/src/LivingVillage.Kernel/WorldSave.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:12:20+00:00</updated>
<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): P15 补齐货郎/书生各 2 条每日任务模板 + 既有事件通道信号桥（Kernel 纯函数 TDD）</title>
<updated>2026-09-21T14:55:01+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T14:55:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=0222501162d18447aa162e9c53e000bc42ccbbd9'/>
<id>urn:sha1:0222501162d18447aa162e9c53e000bc42ccbbd9</id>
<content type='text'>
- TaskTemplateId 扩出 BuyGoods(收货)/Resell(转卖)/ObserveNotes(观察记事)/ReasonDebate(论理)，
  taskPoolOf 货郎=[收货,转卖]、书生=[观察记事,论理]，四职业池均非空。
- TaskSignal 增 Purchased(玩家买入)/Observed(观察)，satisfiesCompletion 给出四模板完成判定；
  新增 occupationSeedOf/refreshToday（跨日才重生成，同日含 Done/Failed 终态保留）。
- signalOfInteraction/advanceTask：仅 playerId 发起的 DialogueEvent/TradeEvent 产生信号，
  NPC 互动不派任务；Offered 须先 acceptTask，终态不可复活。WorldSave 模板 token 双向同步。
- 测试 83 全绿（新增 6：池非空、货郎书生逐日池内确定、模板中文名、完成信号正负、
  事件桥含玩家买/卖与 NPC 忽略、既有 DialogueEvent→accept→Done 全链路、refreshToday 逐日）。
- 不动 Sim.step 数值路径；旧档 v3 模板 token 仅新增合法值，未知模板仍拒绝。
</content>
</entry>
<entry>
<title>feat(occupation): P11 存档 v3 today-task 尾段（annals 后追加）+ 双向兼容</title>
<updated>2026-09-21T10:49:50+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T10:49:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=27f0ca0597e2799e2a1ed431aadeb559c6dfbcf2'/>
<id>urn:sha1:27f0ca0597e2799e2a1ed431aadeb559c6dfbcf2</id>
<content type='text'>
Occupation.State 增 Today: DailyTask option（State 声明移至 DailyTask 之后；TaskToken 保留为 v3 前缀占位扩展位）。WorldSave：saveWith 有任务时在 annals 之后追加尾段 task-today|&lt;template&gt;|&lt;state&gt;|&lt;offered&gt;|&lt;due&gt;|npc-none/some|tile-none/some；无任务/无职业不追加（默认 None = 旧行为，v2 逐字节不变）。load 重构为内部 parse 返回 (World, Occupation.State option)：尾段可选——旧 v3（P10 版式无尾段）新 reader 读出 Today=None；v1/v2 无任务；尾段后多余 token 或未知模板 token 拒绝（不吞档）。loadFromFileWith 顺手修正：不再经 stateOf 重置，前缀 task/stage 与 Today 全量保真。5 例测试：尾段位置（marker 在 annal 之后）+ 全字段 round-trip + 重存逐字节一致、无任务 v3 旧版式、v1/v2 无尾段 + 未知模板拒绝、尾段后垃圾拒绝、字节级双跑一致。
</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(m6a): add file save acceptance smoke</title>
<updated>2026-09-20T12:58:23+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T12:58:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=5cb4970e2410a43e528b4b3e44dda15fac0a219a'/>
<id>urn:sha1:5cb4970e2410a43e528b4b3e44dda15fac0a219a</id>
<content type='text'>
[Change Nature]
This commit adds the bounded M6a file-save acceptance path.

[New Capability]
- Add file-level round-trip and deterministic continuation coverage.
- Add Headless --m6a-smoke with digest checks and explicit PASS/FAIL output.

[Implementation]
- Reject non-finite numeric values and negative inventory quantities.
- Exercise dialogue, chat/rumor, trade, events, annals, time, and RNG state.

[Impact]
- Affects Kernel save parsing, Kernel tests, and Headless smoke tooling.
- Preserves the existing save format and M5 smoke behavior.
</content>
</entry>
<entry>
<title>feat(m6a): add save speed and day-night controls</title>
<updated>2026-09-20T07:14:23+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-20T07:14:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=9724663602b4b1eb755bf334c475dc2c80e4b386'/>
<id>urn:sha1:9724663602b4b1eb755bf334c475dc2c80e4b386</id>
<content type='text'>
</content>
</entry>
</feed>
