<feed xmlns='http://www.w3.org/2005/Atom'>
<title>living-village.git/src/LivingVillage.Desktop.Tests/P31StoryUiTests.fs, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.somhairle.bid/living-village.git/atom?h=main</id>
<link rel='self' href='http://git.somhairle.bid/living-village.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/'/>
<updated>2026-09-22T08:42:26+00:00</updated>
<entry>
<title>feat(desktop): P31 step4 story progress display + evidence shots</title>
<updated>2026-09-22T08:42:26+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-22T08:42:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/living-village.git/commit/?id=4f512323e521bf57dee7b2bd5e060b69b7b6d029'/>
<id>urn:sha1:4f512323e521bf57dee7b2bd5e060b69b7b6d029</id>
<content type='text'>
- Task panel (T key): a storyline row per occupation, e.g. ju-qing-xian:
shui-wei-yu-shou-cheng, zou-fang-zhong (line name + stage name); absent
for occupation-free saves.
- Occupation select page: minimal hint line showing the selected
  occupation's storyline name.
- Evidence hook LV_STORY_SHOT=1 (+LV_STORY_OCCUPATION, LV_STORY_STAGE):
  boots a real world through the standard bootstrap, advances the story
  via the real dialogue pipeline (chooseDialogueWith bias + Story.onDialogue
  + StoryAnnal append), opens the task panel and saves one back-buffer
  frame, then exits. 4 Xvfb shots (farmer/fisher/peddler/scholar) captured
  under art/ (gitignored, not committed).
- 4 new desktop tests (156 -&gt; 160): panel storyline lines, bias + story
  advance through M5Interaction, no-occupation path stays story-free.
</content>
</entry>
</feed>
