| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
河道倒影(waterFrameTickAt微抖)+岸边芦苇加密度+鸭/叶漂浮元素+近景屋顶统一光源阴影
|
| |
|
|
| |
逐格涟漪(复用waterFrameTickAt)+灯笼呼吸+屋脊上双视差云影, 全纯函数可复现
|
| |
|
|
| |
四向x(走4+待机2)原创点阵内嵌图集, 行走/停止/idle 接入渲染
|
| |
|
|
| |
完整背景框+中文断行换行+分页翻页+Esc关闭+输入隔离(原创32x64点阵头像)
|
| |
|
|
| |
右上日历钟卡/体力条形图/底部10格hotbar(1-0选中+高亮+输入隔离)
|
| |
|
|
| |
防降振回归 (leader fix: 提交+推送)
|
| |
|
|
|
|
|
|
|
| |
- VillageArt.drawCc0BoatOverlay 增加夜层专用暗化系数 0.7(仅夜光晕层生效,
白天不调用 overlay,p40-day/p40-boat 逐字节不变)
- P40ArtTests 新增 NightBoatAwningIsAtLeast40GreyDarkerThanSurroundingGlow:
内嵌 PNG 解码读取夜帧,断言船 2 瓦包围盒比 24px 光晕环至少暗 40 灰阶
- 新增 scripts/check-p40-night-boat-contrast.py 独立像素守卫
- 重出 docs/evidence/p40-night.png(contrast 103.2 >= 40)
|
| |
|
|
|
|
|
|
|
|
|
| |
- make-cc0-art.py 重绘 boat 篷面为实心拱形竹篷:拱线以下逐列实心填充,
连续脊线高光跨越两半在瓦片边界相接,肋骨/端盖/甲板阴影收边(原 1px 竖柱
栅栏式画法改为整片拱面)
- 重生成 Assets/cc0-tiles.png(同参数逐字节稳定)
- P40ArtTests 新增 BoatAwningIsASolidArchWithAContinuousRidge 像素级断言:
脊线无透明断列、拱下每列有实心竹色、左右两半拱顶同高
属 P40 整改的篷面实心 + 回归部分。
|
| |
|
|
|
|
|
|
|
| |
- CenterCameraOnTile 让相机直对船瓦片,avatar 挪到岸上非水瓦片,消除遮挡
- day/night/boat 三个证据镜头统一以船为中心;boat 帧整条船(234-235,50)完整入框
- 夜光晕后重绘船体(drawCc0BoatOverlay),修复桥头灯把船洗白
- make-p40-closeups.py 裁剪框对准船真实包围盒,closeup 不再裁切船
- 相机遮挡修复含 leader 外科修复(CenterCameraOnTile)
- 重出 docs/evidence/p40-day/night/boat 及 closeup 2x
|
| |
|
|
|
|
|
|
|
| |
- P40ArtTests 6 例:连贯带覆盖路网且抑制孤立散布、摆放确定性、红灯笼落门口、
红/石灯笼同光晕路径、同 seed 重生成一致、P40 索引在界内
- AssetPackTests 索引列表加 19/20;fsproj 注册 P40ArtTests
- scripts/make-p40-closeups.py 乌篷船 2x NEAREST 特写
- docs/维护说明.md 追加 P40 小节;证据 4 帧白块检查 0 命中,重复运行 byte-identical
- Release 全量 Desktop 201/201、Kernel 119/119 exit 0
|
| |
|
|
|
|
|
|
|
| |
格)
- make-cc0-art.py: 新增 draw_paving(19)/draw_red_lantern(20);重绘 draw_boat(14/15)
放大船体 + 醒目拱形竹篷,重绘 draw_stone_lantern(16) 三段石结构强化
- 索引 0-13、17-18 逐字节不变(git show 复核);二次生成 byte-identical
- docs/素材来源.md 更新为 21 格并新增第 5 节 P40
|
| |
|
|
|
|
|
|
|
|
| |
- P39ArtTests 9 例:桥/船/灯笼/摊位/芦苇地形与确定性、NightLightTilesIncludeRoadLanterns、
StallsAndLanternsDoNotOverlapForOddAndEvenSpacing(奇 {3,5,7,11,13}/偶 {2,4,6,8,12})、
DegenerateSpacingPlacesNothing({0,1,-3} 返回空集)
- AssetPackTests 更新为 19 格 + 新索引;fsproj 注册 P39ArtTests
- scripts/make-p39-closeups.py:2x NEAREST 特写
- docs/维护说明.md 追加 P39 小节;证据 5 帧白块检查 0 命中,重复运行 byte-identical
- Release 全量 Desktop 195/195、Kernel 119/119
|
| |
|
|
|
|
|
| |
- scripts/make-cc0-art.py 由 384x32(12格) 扩到 608x32(19格),新增
draw_bridge_center/end、draw_boat、draw_stone_lantern、draw_stall、draw_reeds
- 旧索引 0-11 逐字节不变;产物 1523 bytes,sha256 ef86ced2…6adcb,二次生成一致
- docs/素材来源.md 更新为 19 格并新增第 4 节(P39 清单 + 摆放规则 + fallback 差异)
|
| |
|
|
|
|
|
|
|
|
|
| |
- cc0-tiles.png 由 4 格扩到 12 格:0-3 仍 Kenney 地面,4-11 为自绘构件
(4 水A/5 水B/6 屋脊/7 屋檐/8 木构墙/9 木格窗/10 栏杆/11 门)
- 自绘 2 相位水面 cc0WaterTileIndexAt=(tick/32+x+2y)%2,单帧覆盖双相位;
河道与水田/水网共用;江南 fallback 不变
- drawWorld 接入:cc0 模式下民居屋顶/墙/窗/门、桥栏杆、水面走真素材,其余道具仍江南
- AssetPackTests 更新图集尺寸(12 格)+整数缩放,新增构件索引与双水相位用例
- docs/素材来源.md 记录自绘清单;同步 assets-and-licenses 与维护说明 P34 小节
- docs/evidence/p34-*.png 昼/夜/2x 特写/水波/对照(check-no-white-blocks 0 命中)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
真实像素素材样板(地面+角色竖直切片)
- 修复 make-cc0-art.py 地块取样间距:packed sheet 无间距(16px pitch),旧 17px 误采错格
- 重选草地/石板格 (9,8)/(10,8)/(4,8)/(4,9),整数 2x NEAREST 重建 cc0-tiles.png
- VillageArt 暴露 selectedGround/CharacterAtlasRelativePath 纯函数,保留 LV_ASSET_PACK=cc0
开关与程序绘制江南图集 fallback
- 新增 AssetPackTests:图集加载尺寸、整数倍缩放、开关/回退断言
- docs/素材来源.md 记录来源/许可/sha256/构建/开关;同步 assets-and-licenses 与维护说明 P33 小节
- docs/evidence/p33-atlas-*.png 昼/夜/2x 特写/程序绘制对照(check-no-white-blocks 0 命中)
|
| |
|
|
|
|
|
|
| |
民居第二变体强化配色与轮廓(青灰挑檐色阶 + 竖长格栅窗 + 绿院门)
- make-jiangnan-art.py slot 28/29/30:B 变体改用亮青灰瓦色阶、竖长木格栅窗、绿双扇院门
- VillageArt 变体 B 渲染:挑檐多叠一层、向两侧各出一格(水面之上不叠),墙身统一格栅窗
- 仅绘制分支,瓦片/可达性零改动
|
| |
|
|
| |
大图河岸装饰(护岸石垒/芦苇/垂柳)仅视觉层,不挡通行
|
| |
|
|
| |
民居立面第二变体(挑檐/木格栅窗/院门)沿河沿路交替
|
| |
|
|
| |
街边中式细节物(石灯笼/水缸/摊贩摊位)图集扩展 28 格
|
| |\
| |
| |
| | |
流式可观测性+门槛缩尺+成本量化(独立复验全绿)
|
| | |
| |
| |
| |
| |
| |
| | |
- PHASES phase2 改为 (50,20)(长局成本超线性,50x100 约 335 CPU-h 不可行)
- verify_batch 索引判据改为集合恰为 0..K-1(允许流式完成序非升序)
- world 行判据 token 忽略行尾 elapsed_s=<秒> 观测字段
- selftest 增加流式乱序/elapsed 追加/不掩 BAD 用例
|
| |/
|
|
|
|
|
| |
- 删除 188 硬编码;改为非空 + 每行恰 1 个字符(locale 无关 UTF-8 码点计数)+
字符唯一 + 与 16 列图集网格自洽(行容量覆盖字符数且无多余空行,PNG IHDR 读尺寸)
- 修复 LC_ALL=C 下 ${#line} 按字节计数导致 CJK 误判的隐患
- dylib 架构/Mach-O/ZIP 完整性校验保持不变
|
| |
|
|
|
|
|
|
| |
- premultiply 定点:核心 (255,226,168,34)->(34,30,22,34),(252,196,128,34)->(34,26,17,34),
通道恒 <= alpha、<250 无白
- lanternGlowLayers 径向/预乘/无白、水面 per-tile 三相、角色脚底对齐断言
- scripts/check-no-white-blocks.py:夜晚帧不得有 >=64x64、每通道>=250、alpha>=250 的块
(P13 旧帧 42/69 命中,P14 修复后 0 命中)
|
| |
|
|
|
|
|
|
| |
- 维护说明更新为 Desktop 75/75、Kernel 79/79
- 新增动画语义小节(图集布局、cellIndex、各帧 tick 窗口)
- 新增 P13 证据命令(Xvfb 白天/夜晚录帧 + 接触表脚本)
- 新增 scripts/make-animation-evidence.py(镜像渲染端帧数学,
从真实图集生成确定性接触表),忽略 evidence/ 输出目录
|
| |
|
|
|
|
|
|
|
|
| |
- 角色图集每个 (变体,方向) 由 2 帧扩到 6 帧(4 走路 + 2 待机呼吸),
cellIndex=(variant*4+direction)*6+frame,图集 3840x48
- 世界图集扩到 25 格 800x32:水面第 3 相 WaterSpriteC(slot 21)、
炊烟三帧 SmokeSpriteA/B/C(slot 22-24)
- 帧选择为纯函数:walk=(tick/4)%4、idle=(tick/24)%2、
water=(tick/32)%3、smoke=(tick/40)%3
- 重生成 jiangnan/cc0 图集(脚本可复现,逐字节一致)
|
| |
|
|
| |
third_party 收录 Kenney Tiny Farm(CC0,来源 kenney.nl,sha256 a06f75f3…)与 Puny Characters(CC0,opengameart 作者 Shade,sha256 971d7b07…),上游名未改,License 原文保留于包内;新增 scripts/make-cc0-art.py 确定性管线:Kenney 地块 16px → 2x 32px 整数放大(草亮/草深/路径/泥地四块 128x32 图集),Puny 角色 16x24 内容带 2x 精确映射 32x48(2560x48 图集,变体/方向/帧几何与江南人物一致;仅南向素材——北向沿用原朝向、西/东镜像,限制已在脚本注释与 provenance 记录)。
|
| |
|
|
| |
人物图集 5 变体 x 4 向 x 4 帧(2560x48,全部经 make-jiangnan-art.py 原创,四种腿步:站立/左跨/站立微跳/右跨镜像);animationFrame 按 tick/4 mod 4 确定性取帧(16 tick 一循环,禁实时时钟);快照式回归断言四帧循环与逐帧图集列映射,主角同规则。
|
| |
|
|
| |
人物图集扩至五套变体(1280x48):靛蓝袍配布巾、褐衫配发髻马甲、翠衫配发簪红巾、灰袍配瓜皮帽,主角专属斗笠独立第五套;村民按 id 取模四种服饰轮转,永不与主角同装,四向两帧动画保持。
|
| |
|
|
| |
图集新增柳树(垂枝两段)、灌木、花丛、芦苇、石凳、灯笼七类图块并经复制规则进构建;场景加入两株垂柳、两丛灌木、两处花丛、水中两簇芦苇、河畔石凳与两盏岸边灯笼,芦苇立于水面、灯笼立于岸道,全部入图集无程序几何占位。
|
| |
|
|
| |
场景改为沿村蜿蜒水带(北岸凸湾、中段横贯、南段收窄),南北两岸石板路沿河展开,木桥三块纵跨全河连接民居门前石径;水面新增第二张波纹图块,按世界 tick/32 取模确定性交替,绘制无新增每帧分配。
|
| |
|
|
| |
新增屋脊/檐口/木构粉墙/格窗/木门五个地块图块,可进屋民居以门为锚点绘制四宽三高完整立面(黛瓦正脊、檐口层次、木构白墙、格窗与木门);新增 planFootprint 供生成阻挡判定,村民不会刷在建筑图块上。
|
| |
|
|
|
|
|
|
| |
- scripts/make-jiangnan-art.py 生成三张原创透明 PNG:世界 256x32、角色 1024x48、内景 392x96
- VillageArt.fs 移除进程内像素烘焙,改为 BaseDirectory 加载图集并校验尺寸
- 内景渲染改用图集(地板/墙/窗/桌/床/屏/毯/柜),新增玩家专属 StrawHat 变体
- 内景新增地毯与柜子装饰,角色按 FeetPosition 定位
- fsproj 随包复制三张 PNG;m6c-package.sh 校验三张 PNG 进入交付包
|
| |
|
|
|
|
|
|
|
|
| |
完成江南村庄场景、角色表现和中文界面的 M6c 交付范围。
新增 CJK 字形图集、中文文案与运行时加载,补充民居情境交互和确定性村庄美术表现。
更新资源复制与 Linux/macOS 打包校验,加入 188 字符清单、资源许可说明和对应原型测试。
补充江南美术方向与 M6c 交付说明,并保持原有模拟内核和桌面构建入口不变。
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[Change Nature]
This commit adds release packaging maintenance for the macOS test build.
[Maintenance Work]
- Publish osx-arm64 and osx-x64 as self-contained applications.
- Bundle launchers, Info.plist, native dependencies, verification evidence, and ZIP checksums.
- Document unsigned, unnotarized usage and per-application Gatekeeper handling.
[Implementation]
- Reject missing apphosts or incompatible Mach-O/native dylib architectures.
- Generate reproducible timestamped release directories without overwriting prior output.
- Create DMGs only when hdiutil is available on the build host.
[Impact]
- Adds scripts/macos-package.sh only.
- Does not modify game source, M3 acceptance state, logs, or existing worktree changes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[Change Nature]
- This commit adds the M6c Linux delivery surface without changing simulation behavior.
[New Capability]
- Publish self-contained linux-x64 output with framework-dependent fallback and a package-relative launcher.
- Document the menu, controls, save paths, autoplay verification, milestones, and asset/license boundaries.
[Implementation]
- Add the M6c packaging and startup scripts.
- Add release notes and an asset/license inventory.
- Keep release artifacts and verification evidence under ignored artifacts/m6c-release/.
[Impact]
- Runtime code and M3 acceptance artifacts are unchanged.
- The package was exercised under Xvfb; prior provider metadata remains an unstaged worktree change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[问题原因]
- 监督器需要在批次退出、中断、控制器重启和状态异常时保持 fail-closed。
- 同秒控制器重启可能复用旧日志及退出标记,造成生命周期结果误判。
[问题根因]
- 旧判据未完整绑定固定阶段参数、world 索引与 seed,冻结清单也未覆盖递归文件完整性。
- 进程身份和孤儿子进程检测不足,无法可靠区分重复拉起与中断现场。
[修复方案]
- 固定 PHASES 判据,强化退出码、日志、manifest、PID 身份和孤儿检测。
- 增加递归 v2 manifest、同秒路径去重、原子状态处理和真实隔离生命周期 selftest。
- 对失败或 interrupted 状态停机并生成诊断,禁止自动重启。
[影响范围]
- 仅修改 scripts/m3_supervise.py。
- 不修改生产 state、日志、frozen evidence 或其他工作区文件。
|
| |
|
|
| |
flock防重入/原子状态/冻结Release全依赖+sha256清单/真实child退出码(sh -c exitfile)/PID+starttime身份/收紧PASS判据(批次参数+world行数全OK+batch_summary+verdict token+清单hash+commit绑定)/失败停机并写diagnosis报告, selftest 33项合成断言; completion_notify.py 新completion-notice.md hash仅打印一次缺失静默, selftest 7项; Headless --batch 世界级并行(LV_BATCH_WORKERS 默认modest 4, 逐世界确定性, 输出按序, world行与串行逐字节一致); .gitignore 补冻结/锁/通知状态文件
|
|
|
状态机(idle→30x20→50x100→done), pid/cmdline 防重复拉起, 运行中零输出, PASS 链式推进/FAIL 停机待人工, --selftest(9 项解析+转移断言); .gitignore 补 m3_logs/m3_state/.opencode-tmp
|