Commit Graph

587 Commits

Author SHA1 Message Date
9005d3579b chore: lines 统计忽略测试文件 2026-09-18 08:31:59 +08:00
ae5a956492 chore: 删除 IDirectionMapper,全换成 IFaceHandler 2026-09-18 08:26:57 +08:00
943659e2d1 docs(phase-07): defer plan 07-16 until the data-layer rework completes 2026-09-18 08:13:32 +08:00
a02241a4bb docs(phase-07): record post-refactor test-breakage gaps for plan 07-16 2026-09-17 21:54:34 +08:00
51f085c4f0 docs(07-16): create post-refactor test alignment plan 2026-09-17 21:53:03 +08:00
4aaea68b65 refactor: 寻路系统改进 2026-09-17 21:21:08 +08:00
50b8b3e651 docs(07-15): correct the recorded plan duration and name the summary commit 2026-09-17 21:05:42 +08:00
39762405f5 docs(07-15): complete review-recheck defect batch plan
- review mapping: CR-01 to Q1, WR-01 to Q2, WR-02 to Q3, WR-03 to Q4, each with its fix commit and closure state
- gate results, per-defect reverse-verification evidence and the re-recorded test:ci baseline
- escalations: the user-owned equipment.test.ts replay-stub drift blocks the CR-01 witness; WINDOWS.md intentionally untouched; ROADMAP.md/STATE.md left to the orchestrator
2026-09-17 21:04:11 +08:00
bb1986508a fix(07-15): restore modifier bookkeeping when cloning an attribute
- clone() now binds each cloned modifier to the clone, records its modifierName, mirrors the source save flag and recomputes the attribute, matching addModifier's bookkeeping
- a cloned attribute can enumerate, index and persist its modifiers, and a cloned modifier's setValue notifies the clone
- add the bookkeeping and save-ability regression cases
2026-09-17 20:55:58 +08:00
49116c0784 fix(07-15): reject an expand multiplier of exactly one
- both multiplier checks tighten from < 1 to <= 1, matching warning 149's own text (must be greater than 1)
- an exact multiplier of 1 now warns 149 and falls back to the existing factor 2, so buffer expansion always terminates
- add the multiplier-of-one regression case (two code 149 warnings, 15 appended steps all read back in order)
2026-09-17 20:52:20 +08:00
a7c9f97c94 fix(07-15): drop unencodable replay params instead of a zero-length record
- normalizeParam returns null for an unencodable param value, matching its own jsDoc and the documented discard semantics of normalizeParamList
- the command param count, the bytes actually written and the param cursor stay consistent so later commands keep their correct byte offsets
- add the discard-alignment regression case (count 0, later command bytes intact, read stream aligned)
2026-09-17 20:48:47 +08:00
53f067a0af fix(07-15): compare equipment without rebinding the equipped modifiers
- compareEquip clones each compared item's modifier before adding it to the comparison clone and removes the same clone objects afterwards
- the live attribute's already-bound modifiers never enter the clone and are never unbound
- add the equipped-item diff regression case (both directions, no warning 108, live bookkeeping untouched)
2026-09-17 20:46:10 +08:00
19ad1ea91a docs(07-15): extend parallel-edit discipline to unrelated test failures 2026-09-17 20:32:12 +08:00
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