d5b4b3cc1c
docs(07-15): lock user adjudication Q1..Q4 = A for the review-recheck batch
2026-09-17 20:29:36 +08:00
210b67e395
docs(07): create phase plan for review-recheck gap closure
2026-09-17 20:25:31 +08:00
7b18784995
docs(07-15): revise plan per checker feedback (collection type scope, tracking sync ownership)
2026-09-17 20:16:50 +08:00
495bf34b2f
docs(07-15): add naming pre-approval to the D-09 checkpoint
2026-09-17 19:53:11 +08:00
fa8d9563d6
docs(07-15): create review-recheck fix plan (CR-01/WR-01/WR-02/WR-03)
2026-09-17 19:51:52 +08:00
ceb5d1e9ad
docs: 新增关于命名的要求
2026-09-17 19:46:18 +08:00
e9e9939bd8
refactor: 删除 data-state 中的 legacy 文件夹
2026-09-17 19:37:30 +08:00
5f97352f94
docs(phase-07): record review-recheck gaps and reopen phase for 07-15
2026-09-17 19:30:09 +08:00
a9bb075267
docs: 添加必须经由 gsd 流程的提示词
2026-09-17 19:25:48 +08:00
a2a8e6ec35
refactor: ReplaySystem.route -> ReplaySystem.array,修复 disabled 标记在 setReplayArray 中清零可能导致意外记录的问题
2026-09-17 19:18:30 +08:00
3a3a6ac82d
refactor: 统一 refreshEnemy 和 refreshEnemyAndClearCache
2026-09-17 19:08:34 +08:00
34ba9e873b
fix: 录像 onRecordCommand 钩子参数错误
2026-09-17 19:02:47 +08:00
219ac4991d
fix: Flag 系统语义问题
2026-09-17 19:01:46 +08:00
b7478cc77b
docs(phase-07): transition — evolve PROJECT.md and STATE.md
2026-09-17 18:50:39 +08:00
db8ba8a35d
docs(phase-07): complete phase execution
2026-09-17 18:45:23 +08:00
a027b04d14
chore: 清空类型错误
2026-09-17 18:38:29 +08:00
87dea63399
refactor: 删除 legacy-client 文件夹
2026-09-17 18:31:18 +08:00
6d7cc2af22
refactor: 删除 legacy-client
2026-09-17 18:30:39 +08:00
12c2943c5e
refactor: 删除 legacy-plugin-client
2026-09-17 18:28:06 +08:00
cd8a4c45a9
docs(07): add incremental code review recheck report
2026-09-17 18:26:03 +08:00
e2e27d9ff2
refactor: 删除 data-fallback
2026-09-17 18:24:07 +08:00
10755475a4
refactor: 删除 legacy-plugin-data
2026-09-17 18:21:35 +08:00
7e4418362b
docs(07-14): correct measured commit count in summary
...
- actuals.commits corrected 3 -> 5 (measured via plan_head_before)
- Discloses foreign concurrent user commit f7e5e5e (AGENTS.md, +10) which landed mid-run
- Corrects Self-Check: plan commits touch only .planning files; AGENTS.md attributed solely to f7e5e5e
2026-09-17 18:08:28 +08:00
a941d394e8
docs(phase-07): update tracking after plan 07-14
...
- STATE.md: current plan 14/14; 3 decisions logged (Q1..Q4 不改动 / WONTFIX disposition / 66-file baseline)
- ROADMAP.md: 07-14 marked handled with the WONTFIX disposition; Phase 7 plan count 14/14
- state.json: machine-readable timestamp sync
2026-09-17 18:06:27 +08:00
66972142c5
docs(07-14): complete legacy hero proxy plan as user-adjudicated wontfix
...
- Scope: #06-17-7 / 07-LOADSTATE-AUDIT.md item C, plan 07-14
- Verdict: WONTFIX by user adjudication (Q1..Q4 不改动); compat layer slated for deletion
- Zero code changes, zero new tests, zero new dependencies
- must_haves hero.ts modification + hero.test.ts intentionally NOT produced (recorded deviation)
- pnpm test:ci closure baseline: 66 files / 737 passed / 0 failed / 1 skipped
- No WINDOWS.md entry created (D-14); 07-VERIFICATION.md marked stale, /gsd-verify-work 7 required
2026-09-17 18:03:39 +08:00
f7e5e5ec2a
docs: 更新提示词
2026-09-17 18:03:31 +08:00
25b213a3f4
docs(07-14): lock user adjudication — #06-17-7 wontfix, compat layer slated for removal
...
- Q1..Q4 all 不改动: legacy data-fallback compatibility layer is untouched
- Verbatim user answer recorded in 07-14-PLAN.md Task 0 <record>
- Disposition: #06-17-7 / audit item C = wontfix (经用户裁定不修复)
- Legitimate Phase 7 criterion-1 disposition: 修复或经用户裁定不修复
- Consequence: zero code changes, zero tests, zero new dependencies
2026-09-17 18:00:46 +08:00
a80e383892
docs(07-13): correct measured commit count in summary
2026-09-17 17:42:33 +08:00
0fcb101c8b
chore(07-13): sync machine-readable state after plan 13
2026-09-17 17:39:16 +08:00
d92e405dc2
docs(07-13): complete map invalidation boundaries plan
2026-09-17 17:38:23 +08:00
13234b762a
fix(07-13): clear existing dynamic tiles before loading
...
- add private clearDynamics() that snapshots the managed dynamic tiles and drops each via the deleteDynamic semantics (syncStaticEvent + removeTile + onDeleteDynamic), without awaiting the hook
- call it as the first line of loadState so all three compression tiers and the missing-dynamicBlocks case start from a clean slate (#06-17-8)
- add regressions: mapLayer hook/instance witness and the three-tier repeated-load non-accumulation case
2026-09-17 17:27:09 +08:00
c1df1e0116
fix(07-13): prune deleted views and empty sourceless points
...
- deleteEnemy removes the deleted view from point.affectedBy and drops its point.damages entry so lazy refreshIndex never revisits a dead view (IN-01)
- deleteMapDamage removes the sourcelessDamage IPointInfo once both damages and affectedBy are empty, keeping markDirtyIndex
- add IN-01 regressions: dead-view witness (getDamageWithoutCheck not called) and the two arms of the sourceless empty-point cleanup
2026-09-17 17:23:01 +08:00
cff4291512
fix(07-13): #CR-02 mark removed indexes dirty and register empty view sets
...
removeEnemyAffecting collects removed coordinate indexes and markDirtyIndex each; refreshEnemyAndClearCache/refreshEnemy register enemyStore.set(view, set) before the empty-set return so later markEnemyDirty uses local refresh instead of refreshAll(). Adds a Chinese comment before each new it.
2026-09-17 16:56:33 +08:00
3da7863580
Merge branch 'refactor/data' of github.com:motajs/template into refactor/data
...
# Conflicts:
# .planning/phases/07-data-fixes/07-12-SUMMARY.md
2026-09-17 16:53:23 +08:00
b37c218f2d
docs(07-13): lock user adjudications for CR-02/IN-01/load-dynamics cleanup
2026-09-17 16:36:49 +08:00
674b325c55
docs(phase-07): update tracking after plan 07-12
2026-09-17 16:13:19 +08:00
4917baae08
docs(07-12): complete equipment/attribute save correctness plan
...
- WR-05/WR-06/compareEquip 索引已闭合,WR-04 登记为设计如此(零代码改动、零断言翻转)
- IN-02 测试对齐 ba60ef9(生产零改动),码 58 覆盖变化已登记
- D-44 门禁:eslint 0 错误、vue-tsc 文件级 0 命中、test:ci 729 通过 / 0 失败 / 1 跳过
- Phase 7 验证已失效,需重跑 /gsd-verify-work 7
2026-09-17 16:12:17 +08:00
954c3fcd8a
docs(07-12): complete equipment/attribute save correctness plan
...
- WR-05/WR-06/compareEquip 索引已闭合,WR-04 登记为设计如此(零代码改动、零断言翻转)
- IN-02 测试对齐 ba60ef9(生产零改动),码 58 覆盖变化已登记
- D-44 门禁:eslint 0 错误、vue-tsc 文件级 0 命中、test:ci 729 通过 / 0 失败 / 1 跳过
- Phase 7 验证已失效,需重跑 /gsd-verify-work 7
2026-09-17 16:11:00 +08:00
3e68880e82
fix(07-12): compareEquip 在克隆属性上按对象定位删除目标(Q4 仅修 (i))
...
- 原属性索引为负或克隆槽位越界时不删除任何修饰器
- 删除目标改为克隆属性同槽位的自身对象,不再跨对象拼接索引
- 回归构造 rebuildModifiers 重建后的负索引路径,含触发机制断言
2026-09-17 16:06:53 +08:00
d8fb6f088c
fix(07-12): loadState 用 disable/revert 包裹重新装备(WR-06)
...
- HeroEquipment.loadState 在重新装备循环外包一层录像禁用窗口,try/finally 保证恢复
- 录像桩补禁用计数语义,读档期间写入的指令被丢弃
- 回归覆盖:读档不产生录像指令、禁用与恢复配对平衡、读档后 equip/unequip 记录仍保留
2026-09-17 16:01:32 +08:00
ab18aa3ec7
fix(07-12): deleteModifierByIndex 委托 deleteModifier(WR-05)
...
- 按索引取出修饰器后委托 deleteModifier,删除簿记收敛为一份实现
- 返回被删修饰器;索引越界或为负返回 null 且不删除任何修饰器
- 回归覆盖:迭代器产出、索引解析、final 重算、重新挂载、存盘开关清理、越界
2026-09-17 15:56:50 +08:00
762bf2e95c
docs(07-12): 记录装备加成事实源契约(WR-04 设计如此,零行为变更)
...
- types.ts 的 IEquipmentStateSave / IEquipmentState 补充契约注释
- 装备自身数值与百分比加成是事实源,存档持久化这两个表并由其重建装备修饰器
- 跨读档不保留旧修饰器引用属预期;运行时改加成须经装备自身而非改其修饰器
2026-09-17 15:56:26 +08:00
b99d040b11
test(07-12): 对齐空存档 nextUid 重置契约(IN-02,测试专用)
...
- saveLoad.test.ts 的码 58 用例改写为「空存档 → 随后 add 发号 0 且不产生码 58」
- 用例内注释登记码 58 分支只剩非空畸形数组可达,生产实现保持原样
- equipStore.ts 零改动(生产修复基线 ba60ef9)
2026-09-17 15:54:02 +08:00
7c04ed4a58
docs(07-12): lock user adjudications for WR-04/05/06 + compareEquip
2026-09-17 15:48:53 +08:00
fe63494b12
docs(07-12): fold IN-02 test-only contract alignment into plan 07-12
2026-09-17 15:11:03 +08:00
ba60ef99eb
fix: equipStore 的 nextUid 在空存档下报错
2026-09-17 14:56:56 +08:00
b6d1976fc7
docs(phase-07): update tracking after plan 07-11
2026-09-17 14:07:00 +08:00
4481ee91f8
docs(07-11): complete container same-reference save/load plan
2026-09-17 14:05:27 +08:00
e4d392330c
fix(07-11): #06-17-4/5/6 add top-level same-reference integration assertions
...
- CoreState 三档往返中断言装备实例、flag 字段与 follower 实例跨读档为同一实例
- 同时断言其数值/位置仍等于存档点(同引用不改变恢复结果)
- 新增 registerIdentityEquipment 夹具,既有夹具与断言未改动
2026-09-17 13:57:46 +08:00
78f6796915
fix(07-11): #06-17-6 preserve follower instances across loadState
...
- HeroFollowersController 新增 restoreFollowers 保留式恢复入口
- 同索引同图块数字原地 loadState 并保留实例;否则替换槽位并按既有语义触发增删钩子
- 存档中不存在的末尾跟随者按存档为准删除
- HeroState.loadState 改用 restoreFollowers,不再 removeAllFollowers 全量重建(保持同步)
- IHeroFollowersController 补声明与 jsDoc;新增同实例/替换/删除/补齐回归用例
2026-09-17 13:53:46 +08:00