mirror of
https://github.com/motajs/template.git
synced 2026-10-13 00:00:19 +08:00
- add 06-17-SUMMARY.md with the 27-row measured table, measurement parameters, fixed side load breakdown, truthful Low-vs-High branch note and D-44 gate results - register 06-TEST-FINDINGS.md #06-17-1 (HeroEquipment keeps the replaced attribute reference, so equipment bonuses are lost after hero.loadState; confirmed by a throwaway probe: atk 5 -> 0 at all three compressions) - register WINDOWS.md entry #28 for the stage-1 minimum equipment seed deviation
19 KiB
19 KiB
| schema_version | open_count | waived_count | fixed_count | total_count | last_updated |
|---|---|---|---|---|---|
| 1 | 11 | 0 | 17 | 28 | 2026-09-16T08:20:22.513Z |
Broken Windows Ledger
Cross-phase defect register. With
workflow.windows_enforceenabled,/gsd-shipblocks whileopen_count > 0. Waive withgsd-tools windows waive <id> "<reason>"(reason required). Mark fixed withgsd-tools windows fixed <id>.
| id | phase | kind | file | line | description | status | reason | recorded_at | resolved_at |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 01 | stub | packages-user/data-state/src/core.ts | 153 | Serialized event registration and map-id binding remains an intentional deferred TODO. | fixed | 2026-09-08T15:06:40.634Z | 2026-09-10T12:20:52.319Z | |
| 2 | 01 | unrun-verify | .planning/phases/01-event/01-05-SUMMARY.md | Downstream implementation verification was not run because the user explicitly prohibited downstream plan execution. | open | 2026-09-08T15:37:54.227Z | |||
| 3 | 01 | deviation | packages-user/data-base/src/map/mapLayer.ts | Replaced unsupported Map upsert runtime calls so the raw map event path runs under Node Vitest. | open | 2026-09-08T15:54:23.173Z | |||
| 4 | 02 | skipped-test | packages-user/data-common/src/common/mover.test.ts | 4 个 it.skip 坐标回写回归用例(x/y 正交、斜向、传送),待 02-02 修复 mover.ts:651 后翻绿 | fixed | 2026-09-09T07:51:25.555Z | 2026-09-09T09:34:39.843Z | ||
| 5 | 02 | stub | packages-user/data-system/src/path/system.ts | 254 | interrupt() is an intentional placeholder that only stops the in-flight move; takeover sequencing (stop-then-await per approved option 1) is implemented by 02-03 Task 4 | fixed | 2026-09-09T09:34:59.707Z | 2026-09-09T13:24:24.755Z | |
| 6 | 02 | stub | packages-user/data-state/src/hero/moverImpl.ts | 284 | Existing cannotEnter() is intentionally empty because no event trigger corresponds to movement blocked by an impassable mask; D-08 direct OnTouch dispatch handles allowed adjacent no-pass targets. | open | 2026-09-10T01:38:48.570Z | ||
| 7 | 03 | stub | packages-user/data-common/src/save/memory.ts | 90 | MemorySaveSystem.saveAutosaveToDB is an intentional no-op because Node never persists to IndexedDB. | fixed | 2026-09-10T07:45:16.944Z | 2026-09-11T06:11:48.592Z | |
| 8 | 03 | stub | packages-user/data-common/src/save/memory.ts | 90 | MemorySaveSystem.saveAutosaveToDB is an intentional no-op because Node never persists to IndexedDB. | fixed | 2026-09-10T07:45:32.524Z | 2026-09-11T06:11:49.370Z | |
| 9 | 03 | stub | packages-user/data-state/src/legacy/dependencies.ts | 53 | Node legacy dependency boundary intentionally registers no browser loading callbacks. | fixed | 2026-09-10T07:45:33.228Z | 2026-09-11T06:04:34.207Z | |
| 10 | 03 | deviation | packages-user/data-base/src/map/mapLayer.ts | 216 | Replaced Map.getOrInsertComputed with explicit Map lookup so the replay event path is Node-safe without a global prototype shim. | open | 2026-09-10T07:45:33.930Z | ||
| 11 | 03 | unrun-verify | .planning/phases/03-data-completion/deferred-items.md | Repository type gate remains non-zero on pre-existing render/legacy and Tile contract diagnostics; owned Node tracer and data tests pass. | fixed | 2026-09-10T07:45:45.249Z | 2026-09-10T07:58:56.466Z | ||
| 12 | 03 | unrun-verify | .planning/phases/03-data-completion/deferred-items.md | Repository type gate remains non-zero on pre-existing render/legacy diagnostics; Tile contract diagnostics are resolved. | open | 2026-09-10T07:58:50.208Z | |||
| 13 | 03 | deviation | packages-user/data-common/src/store/tileStore.test.ts | Applied ESLint/Prettier CRLF formatting required by the project after functional Tile tests passed. | open | 2026-09-10T07:59:02.467Z | |||
| 14 | 03 | stub | packages-user/data-state/src/core.ts | 166 | Existing deferred serialized event registration and map-event-id binding TODO; preserved by Plan 03-03. | fixed | 2026-09-10T08:47:49.808Z | 2026-09-10T12:20:54.566Z | |
| 15 | 03 | deviation | packages-user/data-common/src/replay/array.ts | Repaired replay parameter encoding so diagnostic params remain original and deterministic. | open | 2026-09-10T09:18:58.279Z | |||
| 16 | 03 | deviation | packages-user/data-state/test/replayVerifier.ts | Added a package-local verifier harness shared by Vitest and the Node runner to avoid composite-script import resolution. | open | 2026-09-10T09:18:58.946Z | |||
| 17 | 03 | deviation | packages-user/data-state/test/fixtures/closed-loop.ts | Applied repository Prettier/CRLF formatting to the fixed replay fixture and runner files. | open | 2026-09-10T09:18:59.589Z | |||
| 18 | 03 | deviation | script/check-data-circular.ts | Plan 03-15 scoped circular gate reports seven pre-existing legacy/render boundary cycles through data-state/src/legacy/move.ts; replay command class changes do not touch those imports. | open | 2026-09-11T06:27:22.412Z | |||
| 19 | 06 | skipped-test | packages-user/data-system/src/combat/damage.test.ts | 06-01-1 suspected bug: calculateCritical yields info not matching nextValue (Finding #06-01-1) | fixed | 2026-09-14T00:54:02.628Z | 2026-09-15T09:05:01.001Z | ||
| 20 | 06 | skipped-test | packages-user/data-system/src/combat/mapDamage.test.ts | 06-01-2 suspected bug: MapDamage.deleteEnemy leaves enemy-sourced damage (Finding #06-01-2) | fixed | 2026-09-14T00:54:03.338Z | 2026-09-15T09:05:02.090Z | ||
| 21 | 06 | skipped-test | packages-user/data-system/src/combat/combat.test.ts | 06-01-3 suspected bug: CombatFlow.before truthy/falsy semantics inverted vs interface doc (Finding #06-01-3) | fixed | 2026-09-14T00:54:04.044Z | 2026-09-15T09:05:02.930Z | ||
| 22 | 06 | skipped-test | packages-user/data-common/src/common/mover.test.ts | backward(count>1) 方向摆动、净位移为零(#06-08-1),已 it.skip 待用户确认 | fixed | 2026-09-14T09:03:38.649Z | 2026-09-15T12:58:50.953Z | ||
| 23 | 06 | skipped-test | packages-user/data-common/src/replay/array.test.ts | 受阻塞缺口 G-06-04-A:多字节 bigint / 超 int32 int64 编解码缺陷 #06-04-1/#06-04-2 未修复,正确预期用例保持 it.skip | fixed | 2026-09-15T02:46:32.026Z | 2026-09-15T10:51:28.234Z | ||
| 24 | 06 | skipped-test | packages-user/data-base/src/enemy/manager.test.ts | 受阻塞缺口 G-06-03-A:复用映射未接入 createEnemy/createEnemyById(#06-03-1),四朝向复用生成独立怪物的正确预期用例保持 it.skip | fixed | 2026-09-15T02:46:32.772Z | 2026-09-15T09:17:32.073Z | ||
| 25 | 06 | skipped-test | packages-user/data-base/src/hero/saveLoad.test.ts | 受阻塞缺口 G-06-09-B:压缩档 loadDiff 未回退装备原始定义(#06-09-1),EquipmentState 百分比加成 Low/High 档正确预期用例保持 it.skip | fixed | 2026-09-15T03:31:00.000Z | 2026-09-15T12:33:32.230Z | ||
| 26 | 06 | skipped-test | packages-user/data-base/src/hero/saveLoad.test.ts | 受阻塞缺口 G-06-09-B:HeroEquipment.saveState 未深拷贝 equipped/slots(#06-09-2),经 HeroState 容器三档恢复装备映射的正确预期用例保持 it.skip | fixed | 2026-09-15T03:31:01.000Z | 2026-09-15T12:33:33.035Z | ||
| 27 | 06 | skipped-test | packages-user/data-system/src/combat/context.test.ts | 625 | 受阻塞缺口 G-06-01-D:deleteAura 后再次 buildup 不回到基础值(#06-15-1,与 #06-01-4 同根因),正确预期用例保持 it.skip 待用户确认 | fixed | 2026-09-15T05:23:29.159Z | 2026-09-15T09:05:03.731Z | |
| 28 | 06 | deviation | packages-user/data-state/test/saveablesReal.perf.ts | stage-1 fixture seeds the minimum 1 equipment instance (plan said no side load) because HeroEquipsStore.loadState raises error 58 with an empty equipment list | open | 2026-09-16T08:20:22.513Z |
[
{
"id": 1,
"kind": "stub",
"phase": "01",
"file": "packages-user/data-state/src/core.ts",
"line": 153,
"description": "Serialized event registration and map-id binding remains an intentional deferred TODO.",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-08T15:06:40.634Z",
"resolved_at": "2026-09-10T12:20:52.319Z"
},
{
"id": 2,
"kind": "unrun-verify",
"phase": "01",
"file": ".planning/phases/01-event/01-05-SUMMARY.md",
"line": null,
"description": "Downstream implementation verification was not run because the user explicitly prohibited downstream plan execution.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-08T15:37:54.227Z",
"resolved_at": null
},
{
"id": 3,
"kind": "deviation",
"phase": "01",
"file": "packages-user/data-base/src/map/mapLayer.ts",
"line": null,
"description": "Replaced unsupported Map upsert runtime calls so the raw map event path runs under Node Vitest.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-08T15:54:23.173Z",
"resolved_at": null
},
{
"id": 4,
"kind": "skipped-test",
"phase": "02",
"file": "packages-user/data-common/src/common/mover.test.ts",
"line": null,
"description": "4 个 it.skip 坐标回写回归用例(x/y 正交、斜向、传送),待 02-02 修复 mover.ts:651 后翻绿",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-09T07:51:25.555Z",
"resolved_at": "2026-09-09T09:34:39.843Z"
},
{
"id": 5,
"kind": "stub",
"phase": "02",
"file": "packages-user/data-system/src/path/system.ts",
"line": 254,
"description": "interrupt() is an intentional placeholder that only stops the in-flight move; takeover sequencing (stop-then-await per approved option 1) is implemented by 02-03 Task 4",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-09T09:34:59.707Z",
"resolved_at": "2026-09-09T13:24:24.755Z"
},
{
"id": 6,
"kind": "stub",
"phase": "02",
"file": "packages-user/data-state/src/hero/moverImpl.ts",
"line": 284,
"description": "Existing cannotEnter() is intentionally empty because no event trigger corresponds to movement blocked by an impassable mask; D-08 direct OnTouch dispatch handles allowed adjacent no-pass targets.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-10T01:38:48.570Z",
"resolved_at": null
},
{
"id": 7,
"kind": "stub",
"phase": "03",
"file": "packages-user/data-common/src/save/memory.ts",
"line": 90,
"description": "MemorySaveSystem.saveAutosaveToDB is an intentional no-op because Node never persists to IndexedDB.",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-10T07:45:16.944Z",
"resolved_at": "2026-09-11T06:11:48.592Z"
},
{
"id": 8,
"kind": "stub",
"phase": "03",
"file": "packages-user/data-common/src/save/memory.ts",
"line": 90,
"description": "MemorySaveSystem.saveAutosaveToDB is an intentional no-op because Node never persists to IndexedDB.",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-10T07:45:32.524Z",
"resolved_at": "2026-09-11T06:11:49.370Z"
},
{
"id": 9,
"kind": "stub",
"phase": "03",
"file": "packages-user/data-state/src/legacy/dependencies.ts",
"line": 53,
"description": "Node legacy dependency boundary intentionally registers no browser loading callbacks.",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-10T07:45:33.228Z",
"resolved_at": "2026-09-11T06:04:34.207Z"
},
{
"id": 10,
"kind": "deviation",
"phase": "03",
"file": "packages-user/data-base/src/map/mapLayer.ts",
"line": 216,
"description": "Replaced Map.getOrInsertComputed with explicit Map lookup so the replay event path is Node-safe without a global prototype shim.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-10T07:45:33.930Z",
"resolved_at": null
},
{
"id": 11,
"kind": "unrun-verify",
"phase": "03",
"file": ".planning/phases/03-data-completion/deferred-items.md",
"line": null,
"description": "Repository type gate remains non-zero on pre-existing render/legacy and Tile contract diagnostics; owned Node tracer and data tests pass.",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-10T07:45:45.249Z",
"resolved_at": "2026-09-10T07:58:56.466Z"
},
{
"id": 12,
"kind": "unrun-verify",
"phase": "03",
"file": ".planning/phases/03-data-completion/deferred-items.md",
"line": null,
"description": "Repository type gate remains non-zero on pre-existing render/legacy diagnostics; Tile contract diagnostics are resolved.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-10T07:58:50.208Z",
"resolved_at": null
},
{
"id": 13,
"kind": "deviation",
"phase": "03",
"file": "packages-user/data-common/src/store/tileStore.test.ts",
"line": null,
"description": "Applied ESLint/Prettier CRLF formatting required by the project after functional Tile tests passed.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-10T07:59:02.467Z",
"resolved_at": null
},
{
"id": 14,
"kind": "stub",
"phase": "03",
"file": "packages-user/data-state/src/core.ts",
"line": 166,
"description": "Existing deferred serialized event registration and map-event-id binding TODO; preserved by Plan 03-03.",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-10T08:47:49.808Z",
"resolved_at": "2026-09-10T12:20:54.566Z"
},
{
"id": 15,
"kind": "deviation",
"phase": "03",
"file": "packages-user/data-common/src/replay/array.ts",
"line": null,
"description": "Repaired replay parameter encoding so diagnostic params remain original and deterministic.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-10T09:18:58.279Z",
"resolved_at": null
},
{
"id": 16,
"kind": "deviation",
"phase": "03",
"file": "packages-user/data-state/test/replayVerifier.ts",
"line": null,
"description": "Added a package-local verifier harness shared by Vitest and the Node runner to avoid composite-script import resolution.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-10T09:18:58.946Z",
"resolved_at": null
},
{
"id": 17,
"kind": "deviation",
"phase": "03",
"file": "packages-user/data-state/test/fixtures/closed-loop.ts",
"line": null,
"description": "Applied repository Prettier/CRLF formatting to the fixed replay fixture and runner files.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-10T09:18:59.589Z",
"resolved_at": null
},
{
"id": 18,
"kind": "deviation",
"phase": "03",
"file": "script/check-data-circular.ts",
"line": null,
"description": "Plan 03-15 scoped circular gate reports seven pre-existing legacy/render boundary cycles through data-state/src/legacy/move.ts; replay command class changes do not touch those imports.",
"status": "open",
"reason": "",
"recorded_at": "2026-09-11T06:27:22.412Z",
"resolved_at": null
},
{
"id": 19,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-system/src/combat/damage.test.ts",
"line": null,
"description": "06-01-1 suspected bug: calculateCritical yields info not matching nextValue (Finding #06-01-1)",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-14T00:54:02.628Z",
"resolved_at": "2026-09-15T09:05:01.001Z"
},
{
"id": 20,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-system/src/combat/mapDamage.test.ts",
"line": null,
"description": "06-01-2 suspected bug: MapDamage.deleteEnemy leaves enemy-sourced damage (Finding #06-01-2)",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-14T00:54:03.338Z",
"resolved_at": "2026-09-15T09:05:02.090Z"
},
{
"id": 21,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-system/src/combat/combat.test.ts",
"line": null,
"description": "06-01-3 suspected bug: CombatFlow.before truthy/falsy semantics inverted vs interface doc (Finding #06-01-3)",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-14T00:54:04.044Z",
"resolved_at": "2026-09-15T09:05:02.930Z"
},
{
"id": 22,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-common/src/common/mover.test.ts",
"line": null,
"description": "backward(count>1) 方向摆动、净位移为零(#06-08-1),已 it.skip 待用户确认",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-14T09:03:38.649Z",
"resolved_at": "2026-09-15T12:58:50.953Z"
},
{
"id": 23,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-common/src/replay/array.test.ts",
"line": null,
"description": "受阻塞缺口 G-06-04-A:多字节 bigint / 超 int32 int64 编解码缺陷 #06-04-1/#06-04-2 未修复,正确预期用例保持 it.skip",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-15T02:46:32.026Z",
"resolved_at": "2026-09-15T10:51:28.234Z"
},
{
"id": 24,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-base/src/enemy/manager.test.ts",
"line": null,
"description": "受阻塞缺口 G-06-03-A:复用映射未接入 createEnemy/createEnemyById(#06-03-1),四朝向复用生成独立怪物的正确预期用例保持 it.skip",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-15T02:46:32.772Z",
"resolved_at": "2026-09-15T09:17:32.073Z"
},
{
"id": 25,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-base/src/hero/saveLoad.test.ts",
"line": null,
"description": "受阻塞缺口 G-06-09-B:压缩档 loadDiff 未回退装备原始定义(#06-09-1),EquipmentState 百分比加成 Low/High 档正确预期用例保持 it.skip",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-15T03:31:00.000Z",
"resolved_at": "2026-09-15T12:33:32.230Z"
},
{
"id": 26,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-base/src/hero/saveLoad.test.ts",
"line": null,
"description": "受阻塞缺口 G-06-09-B:HeroEquipment.saveState 未深拷贝 equipped/slots(#06-09-2),经 HeroState 容器三档恢复装备映射的正确预期用例保持 it.skip",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-15T03:31:01.000Z",
"resolved_at": "2026-09-15T12:33:33.035Z"
},
{
"id": 27,
"kind": "skipped-test",
"phase": "06",
"file": "packages-user/data-system/src/combat/context.test.ts",
"line": 625,
"description": "受阻塞缺口 G-06-01-D:deleteAura 后再次 buildup 不回到基础值(#06-15-1,与 #06-01-4 同根因),正确预期用例保持 it.skip 待用户确认",
"status": "fixed",
"reason": "",
"recorded_at": "2026-09-15T05:23:29.159Z",
"resolved_at": "2026-09-15T09:05:03.731Z"
},
{
"id": 28,
"kind": "deviation",
"phase": "06",
"file": "packages-user/data-state/test/saveablesReal.perf.ts",
"line": null,
"description": "stage-1 fixture seeds the minimum 1 equipment instance (plan said no side load) because HeroEquipsStore.loadState raises error 58 with an empty equipment list",
"status": "open",
"reason": "",
"recorded_at": "2026-09-16T08:20:22.513Z",
"resolved_at": null
}
]