summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fix(m3): 保留关系记忆并避免立即重复聊天Somhairle H. Marisol2026-09-202-15/+95
| | | | | | | | | | | | | | | | | | | [问题原因] - 常规记忆写入会挤出 Chatted 事件,导致关系权重失去长期输入。 - NPC 聊天选伴没有排除最近对象,可能立即重复同一聊天伙伴。 [问题根因] - 记忆列表只使用单一容量截断策略,没有区分关系记忆和常规记忆。 - 聊天伙伴搜索只按距离选择,没有读取最近聊天记忆。 [修复方案] - 为关系记忆保留容量,并继续限制总记忆容量。 - 优先选择非最近聊天伙伴;无替代对象时回退到原有选择逻辑。 - 增加记忆保留和重复聊天回归测试。 [影响范围] - 修改 LivingVillage.Kernel 的 NPC 记忆与聊天伙伴选择。 - 不改变 headless 参数或关系矩阵接口;现有构建与测试流程保持兼容。
* fix(m3): 加固监督器生命周期与冻结证据校验Somhairle H. Marisol2026-09-191-90/+419
| | | | | | | | | | | | | | | | | | | [问题原因] - 监督器需要在批次退出、中断、控制器重启和状态异常时保持 fail-closed。 - 同秒控制器重启可能复用旧日志及退出标记,造成生命周期结果误判。 [问题根因] - 旧判据未完整绑定固定阶段参数、world 索引与 seed,冻结清单也未覆盖递归文件完整性。 - 进程身份和孤儿子进程检测不足,无法可靠区分重复拉起与中断现场。 [修复方案] - 固定 PHASES 判据,强化退出码、日志、manifest、PID 身份和孤儿检测。 - 增加递归 v2 manifest、同秒路径去重、原子状态处理和真实隔离生命周期 selftest。 - 对失败或 interrupted 状态停机并生成诊断,禁止自动重启。 [影响范围] - 仅修改 scripts/m3_supervise.py。 - 不修改生产 state、日志、frozen evidence 或其他工作区文件。
* chore: gitignore scripts/__pycache__Somhairle H. Marisol2026-09-191-0/+1
|
* infra: P0 监督加固 — m3_supervise.py ↵Somhairle H. Marisol2026-09-194-117/+623
| | | | 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 补冻结/锁/通知状态文件
* chore: M3 验收监督脚本 scripts/m3_supervise.py — cron 10min no_agent ↵Somhairle H. Marisol2026-09-192-0/+157
| | | | 状态机(idle→30x20→50x100→done), pid/cmdline 防重复拉起, 运行中零输出, PASS 链式推进/FAIL 停机待人工, --selftest(9 项解析+转移断言); .gitignore 补 m3_logs/m3_state/.opencode-tmp
* fix: M3c 关系半衰期单位错误 ↵Somhairle H. Marisol2026-09-193-11/+41
| | | | 86400L(=24模拟分钟)→ticksPerDay(1模拟日=5,184,000tick) + 衰减改真半衰 exp(-ln2*age/halfLife)(age=halfLife 处权重恰0.5, 旧式 exp(-age/halfLife) 为 e^-1≈0.368) + 单测锁定(1天=5184000tick/halfLife=1天/半衰权重0.5, 手算期望随真半衰语义更新) + headless 批验新增旧判据 old_crit 观测报告(60% 覆盖判据保留为门)
* feat: M3b 关系网络派生 — Sim.relationMatrix ↵Somhairle H. Marisol2026-09-195-50/+382
| | | | 双向累加+时间衰减(halfLife 86400tick, |r|>0.5 阈值) + headless --dump-relations 与 --batch K D 验收(chats max/avg、relcnt 差异、无NaN) + Desktop L 键关系视图(暂停+快照, 绿/红线粗细∝|r|, cyan NPC 点) + LV_STEPS_PER_FRAME 调试快进 + 衰减/矩阵/30npc 对称测试(19/19) + xvfb 截图验证 PASS
* feat: M3a 30 NPC 社区 — initialWorldN 网格布局 + Wander 寻伴闲聊 ↵Somhairle H. Marisol2026-09-194-84/+291
| | | | v1(ChatInit 事件队列 + 双方 Chatted 记忆 valence+0.3 + Social+40) + headless 聊天统计; 修复 clamp 泛型比较装箱(30npc 1天 63.5s→15.7s, 输出逐字节一致) + M3a 对拍/闲聊对称测试
* feat: M2b NPC 记忆与行为稳定化 — 环形记忆(≤64: ↵Somhairle H. Marisol2026-09-194-23/+240
| | | | tick/kind/valence) + 行动粘性(最小600tick, urgent<20豁免) + 夜间(22-6)sleep权重x3 + Desktop蓝色NPC与标题行动名 + headless摘要(mem_count/last_valence/行动平均持续/昼夜sleep占比) + 粘性与valence测试
* feat: M2a NPC 心智基础 — Needs 衰减 + Personality(seed) + ↵Somhairle H. Marisol2026-09-193-7/+205
| | | | 决策层v1(需求缺口×性格权重) + 四语义点直线移动 + headless NPC 摘要 + 对拍/衰减测试
* feat: M1 模拟器内核 — SplitMix64 RNG + 确定性 step + 对拍测试 ↵Somhairle H. Marisol2026-09-199-24/+361
| | | | | | | | | | | | | | | | | | | | | | | | + headless 冒烟工具 + Desktop 自动演示 [变更性质] 本 commit 为功能开发,交付设计文档 §2 模拟器内核(里程碑 M1),非缺陷修复或结构重构。 [新增功能] - Kernel:Rng.fs 提供 SplitMix64 纯函数 RNG(ofSeed / nextUInt64 / nextFloat32),World 携带种子状态。 - Kernel:Sim.fs 重写为 struct record(Vec2/Avatar/Input/TimeStep/World),step : World → TimeStep → World 纯函数,dt 固定 1/60 由内核常量给定,Time = Tick * dt 不做浮点累加;initialWorld 由无参改为带 seed。 - Tests:MSTest 确定性对拍——同 seed 轨迹逐 tick 相等、异 seed 发散、step 纯度、长跑有限/有界/时间-刻度关系、SplitMix64 已知向量、nextFloat32 值域。 - Headless:--days N --seed S 冒烟工具,每 1000 tick 输出摘要行,统计 NaN/越界计数并决定退出码。 - Desktop:LV_AUTOPLAY=1 环境变量启用正弦驱动自动演示,窗口标题与启动日志标注模式。 [实现方案] - 全部状态用 [<Struct>] record,模拟路径零堆分配,支撑 51.84 亿刻长跑。 - step 不消费 World 内 RNG,种子经由外部确定性驱动脚本生效(每 900 刻换段,8 方向查表 + 三档幅值,避开三角函数保证跨平台位精确)。 - Headless 内存口径取 GC.GetTotalMemory(true)(全收集后的稳态驻留),避免 GetTotalMemory(false) 随 Gen0 段扩张漂移误报泄漏。 [影响范围] - Kernel 保持零 MonoGame 引用,模拟与渲染彻底分离;sln 新增 Headless 与 Tests 两个项目。 - Release 构建 0 警告 0 错误,7/7 测试通过;1000 天长跑 5,184,000,000 刻退出码 0,无 NaN 无越界,内存 87,824 → 93,000 字节(1.06x < 2x)。 - 同 seed 两次运行 stdout 字节一致,seed 42/43 轨迹不同。
* feat: M0 骨架 — F# 解决方案 + MonoGame DesktopGL 游戏循环 + ↵Somhairle H. Marisol2026-09-186-0/+270
| | | | 32x32 瓦片地图 + 化身 WASD + 镜头跟随 + FPS 计数
* docs: 《活着的村庄》设计文档 v1 + ↵Han Muqi2026-09-184-0/+161
opencode.json(ark-plan/glm-5.3-flash) + README