mirror of
https://github.com/motajs/template.git
synced 2026-10-18 04:20:17 +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
387 lines
19 KiB
Markdown
387 lines
19 KiB
Markdown
---
|
||
schema_version: 1
|
||
open_count: 11
|
||
waived_count: 0
|
||
fixed_count: 17
|
||
total_count: 28
|
||
last_updated: 2026-09-16T08:20:22.513Z
|
||
---
|
||
|
||
# Broken Windows Ledger
|
||
|
||
> Cross-phase defect register. With `workflow.windows_enforce` enabled, `/gsd-ship` blocks while `open_count > 0`.
|
||
> Waive with `gsd-tools windows waive <id> "<reason>"` (reason required).
|
||
> Mark fixed with `gsd-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 | |
|
||
|
||
````json
|
||
[
|
||
{
|
||
"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
|
||
}
|
||
]
|
||
````
|