Commit Graph

192 Commits

Author SHA1 Message Date
93453db417 fix(02-04): guard nullable static event sources
- Preserve dynamic event collection while narrowing static tile access
- Record the moverImpl type diagnostic as resolved
2026-09-10 09:38:02 +08:00
a2aedb3969 refactor(02-04): restore authorized path contract
- Match path/types.ts to the user-authored baseline plus nullable returns
- Keep graph contracts implementation-owned and preserve the mover bridge
2026-09-10 09:35:21 +08:00
3809b40b41 docs(02): add gap closure plans 2026-09-09 22:31:42 +08:00
cdadd3870c docs(02-03): complete L3 pathfinding plan 2026-09-09 21:28:09 +08:00
7a3b6e35c1 fix(02-03): support pathfinding interruption handoff
- Queue new movement until the stopped controller settles
- Register pathfinding controller diagnostics and regression coverage
2026-09-09 21:22:49 +08:00
6cde84ec31 feat(02-03): add teleport fallback and touch handling
- Detect event-bearing paths and fall back to step movement
- Handle adjacent no-pass targets with OnTouch dispatch and facing
2026-09-09 21:18:01 +08:00
2759df531e feat(02-03): wire hero pathfinding movement
- Bind the hero predicate and event layer into the L2 finder
- Execute translated paths through the hero mover and export the L3 entry
2026-09-09 21:13:30 +08:00
68a150882c refactor(02-03): extract hero pass predicate
- Move passability and hit checks behind IPassPredicate
- Keep hero mover event dispatch and move codes unchanged
2026-09-09 21:06:07 +08:00
3770e56c4d chore: gsd config 2026-09-09 21:00:21 +08:00
d63fa7f091 docs(02-02): record real 13x13 map performance round with per-map numbers 2026-09-09 20:28:55 +08:00
f1a9e626b6 test(02-02): add real 13x13 game maps to pathfinding performance tests
- 夹具 createPerformanceSystem 参数化起始位置与图块定义(合成矩阵默认值不变)
- 真实地图图块语义:数字 1 墙体,0/2/3/4/5/6 均为空地
- 新增六张 13x13 真实地图分段测量用例(20 轮 build/find/search,入口不足时固定种子抽选端点并记录)
2026-09-09 20:28:21 +08:00
f9c4f3b44a docs(02-02): record performance measure upgrade and multi-size perf numbers 2026-09-09 20:14:59 +08:00
2b483cdf2f test(02-02): switch performance timing to performance.measure and add multi-size map matrix
- 计时改用 performance.mark/measure(测量前后清理同名条目,避免累积)
- 新增 10/30/60/100/150 尺寸矩阵,完整流水线与分段测量均按尺寸逐行输出
- sanity 上限改为随节点数放宽的函数,两用例常驻通过
2026-09-09 20:14:26 +08:00
4a9900bfde docs(02-02): record user optimization round 2 outcomes and perf numbers 2026-09-09 20:03:22 +08:00
239ac0d790 refactor(02-02): precompute node costs and BFS from start position in graph build 2026-09-09 20:02:00 +08:00
7dd4f39e7e fix: getLocationData logic 2026-09-09 19:42:37 +08:00
e27015c4d2 fix(02-02): cost 守卫允许 Infinity,仅拦 NaN 与负数 2026-09-09 19:30:12 +08:00
3beef86ac0 test(02-02): merge segmented performance measurement into performance test
- Share one fixture (system + buildGraph) across both perf cases, no duplication
- Add multi-run segmented case emitting [pathfinding-segmented] graph_build/full_find/search_only
- Delete temporary performance.segmented.test.ts diagnostic
- Drop IDataCommon import orphaned by 622008f in graph.ts (eslint gate)
2026-09-09 19:21:16 +08:00
6f0f17fbf2 refactor(02-02): replace linear min-scan with binary heap priority queue in pathfinding search
- Add internal DistanceHeap (binary min-heap, lazy stale-entry skip) colocated in finder.ts
- search() extraction now pops the heap instead of scanning the full dist map
- Restore NaN-aware cost guard (!Number.isFinite || < 0) dropped in 622008f, fixes NaN warn-174 regression test
2026-09-09 19:15:25 +08:00
622008f67c refactor: 按审查意见调整寻路模块与开发规范 2026-09-09 19:05:57 +08:00
489e3de106 test(02-02): add full-pipeline pathfinding performance test and record review-fix round
- 新增 performance.test.ts:100x100 固定种子障碍图上计时完整 find 流水线
  (建图 + 最优路径发现),结构化输出 map/steps/elapsed
- 实测 map=100x100 steps=198 elapsed≈609ms(sanity 上限 5000ms)
- 02-02-SUMMARY 追加 Review Fixes (user audit round 1) 记录
2026-09-09 18:51:31 +08:00
d9ee80f77f refactor(02-02): apply user review directives on path module
- 移除 system.ts 中 'mover' in movable 运行时形状检查与 IMovableWithMover,
  依 types.ts 修正后的类型直接绑定 IObjectMover<IObjectMovable>
- path 内导出类型(IPathGraph*、IPathfindingGraphBuilder)归位 types.ts,
  graph.ts/finder.ts 改由 types 导入
- 移除类与接口声明上的 jsdoc、类实现侧与接口重复的 jsdoc、region 标记;
  实现注释改为仅描述可观察行为(去除 Dijkstra 等实现叙述)
- 私有方法置于调用者之前(resolveFloorId、getNodeCost、search、startMove)
- system.test.ts 对齐 useMover(mover) 新签名并同步测试描述
2026-09-09 18:47:40 +08:00
9a604422f8 fix: IObjectMovable 在寻路时无法实施移动的类型问题 2026-09-09 18:33:21 +08:00
0c2d0c3535 docs(state): record phase 2 pause after wave 2 for user review 2026-09-09 17:48:37 +08:00
b6b4b3320a docs(02-02): correct measured commit count in summary frontmatter 2026-09-09 17:47:30 +08:00
8f4301cfb7 docs(02-02): record style-rule compliance deviations and final verification 2026-09-09 17:46:30 +08:00
cbcaec83dc refactor(02-02): comply with updated style rules, extract finder and drop temp function consts 2026-09-09 17:44:31 +08:00
1372e233eb docs(02-02): complete L0 fix and L2 pathfinding core plan 2026-09-09 17:38:35 +08:00
e199d99d19 refactor(02-02): declare graph builder and test mover interfaces per updated class rule 2026-09-09 17:32:28 +08:00
ffedb80057 docs: 调整风格要求 2026-09-09 17:30:39 +08:00
53d019f62e feat(02-02): add minimal-loss pathfinding system with getPath, controller contract and fallback policy 2026-09-09 17:29:22 +08:00
0e6536f426 docs: 更新类相关规则 2026-09-09 17:19:41 +08:00
0cd6ab6a2d feat(02-02): build pathfinding directed graph with injected pass predicate and authorized types fix 2026-09-09 17:17:48 +08:00
e1f61013ac fix(02-02): repair mover step-end coordinate writeback condition per approved P1 decision 2026-09-09 17:09:37 +08:00
9efadc9806 fix(02-pathfinding): revise plans for user path/types.ts interface redesign 2026-09-09 16:57:17 +08:00
7a011b29c2 feat: 完成寻路系统接口设计 2026-09-09 16:40:56 +08:00
67c0806f7f docs(state): record phase 2 pause at wave 2 gate 2026-09-09 15:53:36 +08:00
0a3122c744 docs(02-01): complete 接口草案与拍板关卡 plan 2026-09-09 15:51:52 +08:00
5a1b12e146 docs(02-01): record user interface decisions
- 拍板记录节完整登记用户六项结论(接口签名 types.ts user-owned、文件归属、P1 go、D-08 触发语义、打断选项 1、4 向)
- 各节 DRAFT/待拍板标注更新为已拍板状态
2026-09-09 15:49:08 +08:00
9477b2c78a test(02-01): 铺设 L0 mover 坐标回写回归测试脚手架(skip 状态)
- 4 个 it.skip 用例:x 正交 / y 正交 / 斜向 / 传送步的 setPos 回写
- 测试桩逐字复刻 eventDispatch.test.ts 模式(main/location stub + getOrInsertComputed polyfill)
- 最小 ObjectMover 子类驱动 moveProgress,零新依赖;待 02-02 修复 mover.ts:651 后翻绿
2026-09-09 15:33:18 +08:00
a9b1ba1b22 docs(02-01): 起草寻路系统接口草案与决策问题清单
- 新建 02-INTERFACE-DRAFT.md:IPathfindingSystem 签名草案(D-01…D-06 接口面)
- D-08 OnTouch 派发方案 A/B 并列(推荐 A,附 P2 结论)
- mover.ts:651 坐标回写缺陷逐字调查与 go/no-go 问题
- 打断时序两选项、图方向性两选项、边界/损失值守卫要求
2026-09-09 15:30:19 +08:00
3cc32f6636 docs(02): create phase plan 2026-09-09 15:10:55 +08:00
1ad8176f68 fix(02-pathfinding): revise plans based on checker feedback 2026-09-09 15:06:21 +08:00
d5fcc65cec docs(02): add artifacts-produced sections to phase plans 2026-09-09 14:57:53 +08:00
345c449373 docs(02): create phase plan 2026-09-09 14:57:18 +08:00
1dc154a2ba docs(phase-2): add validation strategy 2026-09-09 14:42:57 +08:00
c0c8727943 docs(02-pathfinding): research phase domain 2026-09-09 14:41:38 +08:00
8566a89d4d docs(state): record phase 2 context session 2026-09-09 14:27:32 +08:00
6197d5ba23 docs(02): capture phase context 2026-09-09 14:27:21 +08:00
cd81f9b6bc test(01): complete UAT - 28 passed, 0 issues 2026-09-09 13:52:04 +08:00