<feed xmlns='http://www.w3.org/2005/Atom'>
<title>living-village.git/src/LivingVillage.Desktop/WorldBootstrap.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-21T14:57:50+00:00</updated>
<entry>
<title>feat(desktop): P15 开局职业选择页——新档四选一+暂不选择，接入 v3 存档与当日任务</title>
<updated>2026-09-21T14:57:50+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T14:57:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=60bbc83d9a1d047933e4128e7b48e1c61c925a14'/>
<id>urn:sha1:60bbc83d9a1d047933e4128e7b48e1c61c925a14</id>
<content type='text'>
- MenuState：新增 OccupationSelect 页与 StartNewGameWith 命令；occupationOptions=农夫/渔夫/货郎/书生/暂不选择，
  默认高亮「暂不选择」= 不写职业的旧行为；四选一确认后发 StartNewGameWith，ESC 返回主菜单（既有 MainMenu
  行为与测试不变）。
- WorldBootstrap.occupationStateFor/refreshOccupationToday：按 seed+职业种子生成/跨日刷新当日 Offered 任务。
- Game：主菜单「开始新游戏」→ 职业选择页；选定后 initialWorldWithOccupation 注入 Money/Energy 与 Today，
  m5View.Task 随之写入 v3 存档；游玩中按日刷新；autoplay/flow 默认走「暂不选择」保持旧演示行为；DrawMenu 渲染职业页。
- 测试 Desktop 93（新增 6）：职业页选项顺序/默认 None/标签、确认命令与返回、bootstrap 四职业 Money/Energy+当日池内
  Offered 任务、四职业 v3 round-trip（职业+任务逐字段）、T 面板显示所选职业的模板名与「待接受」、跨日刷新保持同日。
</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(desktop): 增加可选昼光自动演示启动</title>
<updated>2026-09-21T00:37:29+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T00:37:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=c932969539b00a42937f0aa5ed1e10b4e94932a3'/>
<id>urn:sha1:c932969539b00a42937f0aa5ed1e10b4e94932a3</id>
<content type='text'>
[变更性质]
- 本提交新增可选的 Desktop 启动行为，不改变默认启动行为。

[新增功能]
- 设置 LV_AUTOPLAY_DAYLIGHT=1 时，初始世界和 StartNewGame 从黎明 tick 开始。
- 未设置该变量时继续从 tick 0 的夜晚状态开始。

[实现方案]
- 在 WorldBootstrap 中集中计算昼光起始 tick 和同步时间。
- 在 Game 中复用同一世界工厂，并增加黎明与默认状态回归测试。

[影响范围]
- 仅影响 Desktop 运行时代码和测试；Kernel 保持不变。
- 环境变量为显式 opt-in，不影响现有自动演示和普通启动路径。
</content>
</entry>
<entry>
<title>feat(desktop): 固化样例世界与昼光呈现</title>
<updated>2026-09-21T00:16:10+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-21T00:16:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=f64045ca6245ed853f4d8ac1bcce6f4fe13068ce'/>
<id>urn:sha1:f64045ca6245ed853f4d8ac1bcce6f4fe13068ce</id>
<content type='text'>
[变更性质]
- this commit adds a deterministic desktop bootstrap for the playable sample world.

[新增功能]
- this commit places the avatar away from the home doorway and separates villagers from scene footprints.
- this commit provides a warm high-contrast daylight tint and exits autoplay after SampleComplete.

[实现方案]
- this commit isolates desktop spawn policy in WorldBootstrap and routes game startup and sample tests through it.
- this commit adds regression coverage for spawn positions, spacing, determinism, and daylight tint.

[影响范围]
- this commit affects the Desktop application and Desktop tests only.
- this commit preserves Kernel behavior and does not include unrelated worktree changes.
</content>
</entry>
</feed>
