summaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* p78: 夜帧水面微光斑、生成器世界炊烟与桥头窄光晕Somhairle H. Marisol6 days6-0/+94
|
* docs: overnight tick — P77 验收 push dce50b8,P78 派发记录Somhairle H. Marisol6 days1-0/+19
|
* p77: 日历卡/浮动提示药丸化并修复面板遮挡快捷栏Somhairle H. Marisol6 days6-0/+39
| | | | | | | | | | - DrawCalendarCard 改半透明底+1px 描边+accent 发丝线,日历卡微缩(52→48) - FloatingPrompt 新增 layoutWrapped/wrapText,锚定长文本逐字折行(不丢字、居中锚点、避让 HUD 带) - 新增 HudLayout.panelRect,DrawPanel 用其几何;DialogOverlay.bottomMargin 24→72 1280x720 下对话 rect 底 648、任务面板底 652,均 < hotbar 顶 660,不再压 3-8 号槽 - 新增 P77LayoutTests(4 尺寸不破版/不遮挡 + 真实长提示折行) - 证据 LV_P43/P44/P67_SHOT + scripts/analyze-p77.py(verdict PASS) 落 docs/evidence/p77-* - Desktop 361/361, Kernel 120/120, digest 953775FA...F7F6C 不变
* docs: overnight tick — P76 push (HUD 药丸化) + P77 派发记录Somhairle H. Marisol6 days1-11/+13
|
* p76: 底部条/槽位药丸化 + 对话/交互面板半透明描边与折行Somhairle H. Marisol6 days5-0/+35
| | | | DrawHotbar 去掉整条大色块与实心槽位,改半透明条+1px 描边+发丝线,槽位内键位小片与图形并排,选中用 accent 描边;新增 HudLayout.actionLegend(取真实 controlRows 的键位+动作名图例,纯展示不改绑定)。DrawDialogOverlay/DrawPanel 背景改半透明描边语言,禁用近纯黑底。新增 HudLayout.wrapText/wrapLines 按实测宽度折行,DrawPanel 弃用 Substring 截断。新增 P76HotbarPanelTests(4 例);LV_P43_SHOT 昼/夜 + LV_P44_SHOT 对话面板证据 + analyze-p76(四区无实心近黑块、亮像素充足,verdict=PASS)。Desktop 358/358、Kernel 120/120、digest 与 p70 一致。
* p75: HUD 顶部条去整宽深色带(改紧凑半透明药丸)Somhairle H. Marisol6 days4-0/+30
| | | | HudLayout:BarTop/BarBottom alpha=0,新增 pillHairline 1px 发丝线与 pillHeight;DrawHudBar 不再铺整条底色与整宽 accent,改画每段半透明药丸+发丝线,图标+数值并排、右侧留白充足。布局/语义/快捷键不变,HUD 结构仅视觉层次。新增 P75HudStripTests(4 例);LV_P43_SHOT 同机位昼/夜证据 + analyze-p75(顶部条近黑 2.6% vs 整宽带 100%、无实心黑块、亮字仍在,verdict=PASS)。Desktop 354/354、Kernel 120/120、digest 与 p70 一致。
* docs: overnight tick — P74 验收 push(水墨开场)Somhairle H. Marisol6 days1-13/+11
|
* p74: 启动开场过渡(水墨式渐显)+ 开始界面布局回归Somhairle H. Marisol6 days7-0/+38
| | | | 新增纯函数 InkReveal.fs(inkStrength ease-out 消散 + 6 滴预乘墨滴 dabs),DrawSplash 在场景层之上、标题之下绘制,与既有 reveal/veil 淡入叠加,形成可辨识水墨开场;单滴 alpha<255 且椭圆行落成,无实心黑块。开始界面沿用既有 开始/读档/退出(有档 继续)。新增 P74LaunchTransitionTests(4 例)与 LV_P74_SHOT/-analyze-p74 证据(5 帧墨幕非增、两两 diff>0,verdict=PASS)。HUD 结构未动;Desktop 350/350、Kernel 120/120、digest 与 p70 一致。
* docs: overnight tick — P72/P73 验收 push(行走 6+2 帧 / ↵Somhairle H. Marisol6 days1-14/+12
| | | | 昼夜光照四档)
* p73: 昼夜光照四时段档(清晨/正午/黄昏/夜晚)Somhairle H. Marisol6 days6-0/+45
| | | | M6Presentation 新增 periodAtTick/periodLighting 参数表(AmbientTint 乘性色调 + Veil/VeilAlpha 加性覆盖 + LanternGlow),边界与 timePeriodLabel 一致;正午为恒等档不改白平衡。DrawWorldView 并入时段色调与 effectiveLanternGlow(黄昏 0.6 起点亮、夜晚 1.0),覆盖色最后叠加。新增 P73 回归;新增 LV_P73_SHOT 同机位四帧证据 + analyze-p73(verdict=PASS);字形表补 正/午(345)。Desktop 346/346、Kernel 120/120、digest 与 p70 一致。
* docs: overnight tick — P71 验收 push + P72 验收 push(四向 6+2 帧)Somhairle H. Marisol6 days1-13/+18
|
* p72: 补齐六帧行走证据(含 FrameTwo 独立抽帧)Somhairle H. Marisol6 days3-1/+7
| | | | analyze-p72 改为按帧各取像素相异的独立抽帧;docs/evidence 增 p72-walk-frametwo.png,framesix 换为独立帧。已 add 全部改动,工作树就绪,未 push。
* p72: 角色行走四向动画帧提升(6 走 + 2 待机)Somhairle H. Marisol6 days7-6/+38
| | | | CharacterArt 运行时点阵图集从 4 走 + 2 待机扩为 6 走(新增左右低过渡步 4/5,由 1/2 镜像)+ 2 待机,格数 *8、图集 5120x48;VillageArt 帧循环 %6、characterSourceRectangle *8、characterAtlasWidth 5120。同步 P45/Prototype 帧断言、新增 P72 帧表完整性回归、脚本与素材重新生成、维护说明动画语义。白天正午村庄行走实跑证据落 docs/evidence/p72-*。Desktop 343/343、Kernel 120/120、digest 与 p70 一致。
* docs: overnight tick — P71 验收 push 6c68927Somhairle H. Marisol6 days1-10/+12
|
* p71: 中文 API/模块说明(docs/api-reference)Somhairle H. Marisol6 days7-0/+429
| | | | | | | | - 新增 docs/api-reference/:README + 6 模块(Sim/地图生成/桌面渲染/交互交易/职业/存读档) 每节含 职责·对外 API 概览·单位与量纲·不变量·失败分支·算法与性能取舍 - 口径以当前源码为准;性能引用实测 p70 基准(不含未测宣称) - P71ApiDocsTests(3 例,红先→绿):文件齐备/章节齐备/关键接口与单位锚点 - Desktop 341/341、Kernel 120/120;未改生产 .fs/.fsproj、未 push
* docs: overnight tick — P70 验收 push f01aa1a + P71 已派(中文 ↵Somhairle H. Marisol6 days1-5/+5
| | | | API/模块说明)
* p70: 启动帧率与渲染基准(真实可复跑数据)Somhairle H. Marisol6 days5-0/+167
| | | | | | | | | | | | - scripts/bench-p70.sh:两档基准——Kernel --performance-baseline(6000 tick ×3) + Desktop xvfb 60s 真实帧循环;scripts/analyze-p70.py 汇总裁决 - Game.fs:LV_FRAME_LOG=1 逐帧日志(墙钟帧间隔 + GC 线程分配增量 + tick/panel), 仅新增日志,不改渲染/更新逻辑 - P70PerformanceBaselineTests:Pin --performance-baseline final_digest=953775FA…(防漂移) - 实测:Kernel tps mean=466679 alloc=3032184 gen0/1/2=0/0/0 determinism=PASS; Desktop 60s frames=8788 fps=139.3 mean=7.179ms max=33.919ms 掉帧>33.3ms=2 每帧分配 mean=231KB p95=297KB;dotnet-counters 缺席已如实标注 - Desktop 338/338、Kernel 120/120;Kernel/Sim/渲染口径/字形表未动
* docs: overnight tick — P69 验收 push 1d56991 + P70 ↵Somhairle H. Marisol6 days1-14/+10
| | | | 已派(真实性能基准)
* p69: 中文 UI ↵Somhairle H. Marisol6 days1-0/+40
| | | | | | | | | | | 文案统一审校(面板措辞/交易缺货口径/页脚留白与 ESC) - 面板打开语统一:「年鉴已打开」→「年鉴面板已打开」(Interaction + requiredUiLabels) - 交易缺货口径统一:「背包不足」→「库存不足」(PlayerTrade,与对话交易失败名一致) - 分页页脚留白/大小写统一:「…页 空格 翻页 Esc 关闭」→「…页 空格 翻页 ESC 关闭」 - P69CopyAuditTests(2 例,红先)+ P61 钉住样例同步 - 只改字符串字面量与相关断言;Kernel/Sim/MapSnapshot 未动 - Desktop 338/338、Kernel 119/119;digest 953775FA…7F6C 不变
* docs: overnight tick — P69 已派(文案统一审校)Somhairle H. Marisol6 days1-1/+4
|
* docs: overnight tick — P68 验收通过 + push ↵Somhairle H. Marisol6 days1-482/+12
| | | | 4aa6fab,整图截图缺口关闭
* p68: 512×384 整图离线渲染截图证据Somhairle H. Marisol6 days4-0/+73
| | | | | | | | | | | - MapSnapshot:MapGen.Result 纯 CPU 渲染为整图 PNG(每瓦片 8px,自包含 IHDR/IDAT/IEND + CRC32 + ZLibStream,无外部图像依赖);调色板覆盖 河流/主路/农田/民居屋顶/小径/桥/树丛 - Program.fs:LV_P68_MAPSHOT=1 钩子用 paramsForSize 512 384 seed=4242 生成并 离线渲染整图后退出(headless,不需图形设备) - P68MapSnapshotTests(3 例,红先):尺寸/PNG 签名、要素像素存在、两次渲染逐字节一致 - scripts/analyze-p68.py:尺寸/调色板像素/无黑白大块/missing_glyph_slots=0/确定性 - Desktop 336/336、Kernel 119/119;digest 953775FA…7F6C ×3 PASS;未动 Kernel/Sim
* p67: 每日任务面板展示目标(TargetNpc/TargetTile 可见化)Somhairle H. Marisol6 days5-0/+87
| | | | | | | | | | - TaskRuntime.targetText/taskLine:帮工→「村民 N」、翻土→「自家地块」, 无目标时与旧任务行文案逐字节一致(不加箭头/目标名) - Interaction TaskPanel 任务行改用 taskLine(其余面板/文案不动) - 字形表新增 地 块 →(343 字,图集重生成);ChineseText.requiredUiLabels 增补 - P67TaskTargetUiTests(5 例,红先)+ PrototypeTests 计数同步 340→343 - LV_P67_SHOT 证据钩子(有目标/无目标各一帧)+ scripts/analyze-p67.py - Desktop 333/333、Kernel 119/119;digest 953775FA…7F6C ×3 PASS;未动 Kernel/Sim
* docs: overnight tick — P67 观察轮(writer ↵Somhairle H. Marisol6 days1-1/+7
| | | | 健康推进,渲染接线段)
* docs: overnight tick — P66 验收通过 + push 247d0bc,§2.4 全收口Somhairle H. Marisol6 days1-0/+14
|
* p66: 每日任务目标具体化 TargetNpc/TargetTile 定点Somhairle H. Marisol6 days2-0/+87
| | | | | | | | | | | | | | - Kernel Occupation:TaskTargets + targetNpcOf/targetTileOf + dailyTaskOfWith/ refreshTodayWith/refreshStateWith(splitmix 同源定点,候选排序消除顺序依赖,禁随机) - 仅既有 satisfiesCompletion 会读目标的模板定点:帮工→TargetNpc、翻土→TargetTile; 其余 8 模板目标保持 None(不改完成语义) - Desktop WorldBootstrap:reachableTargets(世界 NPC + 样板菜地瓦片)+ occupationStateForWorld/refreshOccupationTodayWorld;Game 开局/跨日/证据路径切换 - 历史入口 dailyTaskOf/refreshState/occupationStateFor 保留为空候选通配包装(逐字节不变) - 红先 P66TaskTargetTests(8 例):同 seed 幂等、跨 seed 落在可达集合、候选顺序无关、 历史通配回归、帮工/翻土定点门控完成、跨日重定点、v3 round-trip + v2 基线 - scripts/p66-target-report.fsx + docs/evidence/p66-analysis.txt(PASS) - Desktop 328/328,Kernel 119/119;digest 953775FA…7F6C ×3 PASS;Sim.fs 未动
* docs: P66 补充限定记录Somhairle H. Marisol6 days1-1/+1
|
* docs: overnight tick — P66 派发(任务目标定点切片)Somhairle H. Marisol6 days1-0/+8
|
* docs: overnight tick — P65 验收通过 push ↵Somhairle H. Marisol6 days1-0/+16
| | | | 2da1cba(职业切片五·询价接谣言池)
* p65: 职业切片五 货郎打听行情读 World.Rumors(中文行情短答 ↵Somhairle H. Marisol6 days5-0/+100
| | | | | | | | | | | | | + 稿证据) - Kernel Occupation 新增 freshReliableRumors/inquiryRumor/marketInquiryText(纯判定+文案, 对齐 Sim.latestRumorFor 新鲜度/可信度口径,全序命中规则,禁随机;不改 Sim.fs) - Desktop chooseIntent:货郎 OfferTrade 读对话前谣言池,Status=inquiry|<短答>;statusLabel 透出 - 真字补 17 字(东头西北巷口盐巴米布茶柴涨两文落些)并重出 atlas(340 字/384x528) - 红先 P65RumorInquiryTests(6 例):命中/幂等/陈旧·微弱·空池/仅货郎/非货郎回归逐字节/ save v2 头不变+v3 round-trip/穷举组合无缺字 - LV_P65_SHOT 钩子 + scripts/analyze-p65.py + docs/evidence/p65-*(PASS) - Desktop 320/320,Kernel 119/119;digest 953775FA…7F6C ×3 PASS
* docs: overnight tick — P65 派发(职业切片五·询价接谣言池)Somhairle H. Marisol6 days1-0/+9
|
* docs: overnight tick — P64 整改验收通过 push ec49a83, A3 全关Somhairle H. Marisol6 days1-1/+9
|
* p64: ↵Somhairle H. Marisol6 days6-52/+47
| | | | 整改桥梁栏杆可辨(深墨栏体/亮扶手/望柱)与内景四角布局(Hermes vision 复核)
* docs: overnight tick — P64 数字门过但 vision 不通过, 整改单已派Somhairle H. Marisol6 days1-0/+18
|
* p64: A3 ↵Somhairle H. Marisol6 days6-0/+99
| | | | 样板三处视觉雕琢(俯瞰上半补种/桥栏杆与护岸石/内景家具)+ 证据
* docs: overnight tick — P63 验收 push 128164d + A3 门全关闭 + P64 已派Somhairle H. Marisol6 days1-0/+8
|
* docs: overnight tick — P62 验收 push 91a3b30 + G2 门关闭Somhairle H. Marisol6 days1-0/+12
|
* p62: G2 补齐民居内景与村庄全貌取证帧(真实 Interact 进门 ↵Somhairle H. Marisol6 days5-0/+74
| | | | + 真实相机俯瞰)
* docs: overnight tick — P61 验收 push + P62 已派Somhairle H. Marisol6 days1-0/+14
|
* p61: G1 字形图集补齐 16 个 UI 用字(红→绿),中文界面完整Somhairle H. Marisol6 days4-0/+51
| | | | | | | | | | | | | | | | | | | | | | | 红:新增 src/LivingVillage.Desktop.Tests/P61GlyphCoverageTests.fs——扫描 Desktop 源码 字符串字面量内的全部 CJK 字,断言 100% 在 CjkGlyphAtlas 内;并逐字钉 G1 缺的 16 字(冬包卷品夏料春玩秋第背车轴页香鱼)、requiredUiLabels、以及运行期文案 (日历「春·第1天」/页脚「第 1/3 页…翻页」/「V 卖出 背包物品×1」/鱼卷轴香料玩车回)。 实现前实测 3 失败:缺字形 16。 绿:向 CjkGlyphAtlas.characterTable 补入 16 字(保持有序、去重),同步 Assets/cjk-glyphs.txt,并跑 scripts/generate-cjk-glyph-atlas.sh 用既有 Noto Sans CJK 重生成预生成 PNG:384x504(16x21 格,+16 字),16 个新字格均有真实字体墨迹 (ink_px 148-233,非程序几何伪字形)。更新 PrototypeTests 的图集几何常量 (307→323、rowCount 20→21、pixelHeight 480→504)。 证据:LV_P61_SHOT=1 拍 2 帧(p61-calendar 右上日历「春 · 第1天」;p61-dialog-footer 真实 Interact 开对话,页脚「第 1/3 页…翻页」+ 选项「V 卖出 背包物品×1」)。 analyze(p61-analysis.txt):缺字空白位=0、黑块=0、白块=0/2;全部抽检文案 missing_glyph_slots=0。钩子为 Game.fs 纯追加(53 行,0 删除),未动 HUD 结构。 回归(p61-verification.txt):Desktop 308/308(+4 P61)+ Kernel 119/119; --performance-baseline ×3 digest 953775FAEB2F… 不变,determinism PASS。 未改 Kernel/Sim,未引外部素材(沿用既有 Noto 字体来源),未 push。
* docs: overnight tick — P61 已派发Somhairle H. Marisol6 days1-0/+6
|
* docs: overnight tick — P60 收口 + Hermes vision 补验Somhairle H. Marisol6 days1-0/+15
|
* p60: ↵Somhairle H. Marisol6 days11-0/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | 江南可玩样板端到端盘点与缺口证据(只盘点,零代码改动) 入口:仓内不存在 LV_DEBUGGAME;用真实游戏内钩子驱动同一 Game 循环取证 (LV_P46_SHOT 启动/菜单、LV_P44_SHOT 白天 NPC 对话、LV_P39_SHOT 夜晚石灯笼、 LV_P53_REC 提示-交互-关闭短帧链),复制为 docs/evidence/p60-*.png 共 7 帧。 盘点结论(docs/evidence/p60-inventory.md): - 已完成:桥/河/岸/石板路/植物、村民四向动画、昼夜光照、提示-交互-关闭链、玩家与可区分村民。 - 部分完成:① 民居可进入——功能与测试齐备(Interaction.fs:400-424、Game.fs:2688-2690、 PrototypeTests/P36PromptTests/SampleTests),但无内景游戏截图;② 中文界面——字形图集 (CjkGlyphAtlas.characterTable,307 字)缺 16 个 UI 用字:冬包卷品夏料春玩秋第背车轴页香鱼, 缺字被置空(Game.fs:73-92),影响右上日历「春夏秋冬·第N天」、对话页脚「第…页」、 背包/交易/物品名/回车提示等。 帧分析(p60-analysis.txt):黑块 0、白块 0/7 failures、字面豆腐块 0; 对话 rect (190,558,900,138),提示 rect (598,288,52,26) 且 paint 44.55 / restore 0.00(P53 PASS)。 缺口分层:阻塞确认门 = 缺字 16(G1)、民居内景无截图(G2)、逐帧 vision 自审未执行(G3, 本 writer 模型无图像输入且环境无 OCR/vision CLI/凭据);不阻塞 = 长视野成本留档(G4)、 复用钩子非单一入口(G5)。均只给最小整改建议,未修。 回归(p60-verification.txt):Desktop 304/304 + Kernel 119/119; --performance-baseline ×3 digest 953775FAEB2F… 不变,determinism PASS。未 push。
* docs: overnight tick — P59 验收通过 push f681867Somhairle H. Marisol6 days1-0/+8
|
* docs: overnight tick — P59 已派(Sim 多世界并存压测)Somhairle H. Marisol6 days1-0/+7
|
* docs: overnight tick — P58 验收通过 push 2c559a7; M3 ↵Somhairle H. Marisol6 days1-0/+33
| | | | 缩尺批验门槛收口
* docs: overnight tick — M3-2 ↵Somhairle H. Marisol6 days1-0/+14
| | | | 标定亲测(1世界×2/5/10天=34.6/87.7/173.6s) + P58 派发
* docs: overnight tick — P57 验收通过 push cbd89dbSomhairle H. Marisol6 days1-0/+29
|
* p57: ↵Somhairle H. Marisol6 days4-0/+32
| | | | 菜单/启动水面第二层高光波光——逐列相位错开(步进2.4rad)/更快(周期80 vs 96 tick)/更亮更窄细高光条 + 昼夜 tint 衰减参数 + 帧计数纯函数回归;ANALYZE splash hl/main std=274.97 corr=-0.017、menu hl/main std=279.77 corr=-0.011、层间相关<0.95、相位差2.4rad、无黑块白块
* docs: overnight tick — P56 验收通过 push 06f011bSomhairle H. Marisol6 days1-0/+7
|