Fusion
ad45a236fa
feat(FN-4108): persist scope override fields (+4 more)
Commits merged:
- test(FN-4073): finalize invariant regression coverage
- feat(FN-4073): complete Step 4 — document merge invariant
- feat(FN-4073): complete Step 3 — enforce squash file-scope invariant
- feat(FN-4073): complete Step 2 — add file-scope invariant helper
- feat(FN-4073): complete Step 1 — persist scope override fields
Files changed:
.changeset/FN-4073-file-scope-invariant.md | 9 +
AGENTS.md | 6 +
packages/core/src/__tests__/store-update.test.ts | 18 ++
packages/core/src/db.ts | 2 +
packages/core/src/store.ts | 34 +-
packages/core/src/types.ts | 8 +
.../__tests__/merger-file-scope-invariant.test.ts | 357 +++++++++++++++++++++
.../engine/src/__tests__/merger-test-helpers.ts | 5 +
packages/engine/src/merger.ts | 155 ++++++++-
9 files changed, 582 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-4108
2026-05-12 21:52:58 -07:00
..
2026-05-07 18:08:08 +02:00
2026-05-12 21:52:58 -07:00
2026-04-28 14:25:56 -07:00
2026-05-06 21:36:31 -07:00
2026-05-09 15:56:11 -07:00
2026-05-06 21:36:31 -07:00
2026-05-07 12:00:43 -07:00
2026-04-08 01:39:15 -07:00
2026-04-30 10:19:54 -07:00
2026-05-10 15:34:58 -07:00
2026-05-11 21:48:26 -07:00
2026-05-11 21:48:26 -07:00
2026-05-02 13:24:37 -07:00
2026-05-06 17:06:46 -07:00
2026-04-09 15:14:19 -07:00
2026-05-08 20:30:40 -07:00
2026-05-12 07:47:10 -07:00
2026-05-03 02:02:25 -07:00
2026-04-15 16:32:16 -07:00
2026-05-01 22:38:37 -07:00
2026-05-10 23:36:10 -07:00
2026-03-25 18:32:10 -04:00
2026-05-10 19:13:05 -07:00
2026-05-12 07:47:10 -07:00
2026-05-12 18:20:17 -07:00
2026-05-10 15:33:24 -07:00
2026-04-24 08:55:02 -07:00
2026-05-06 03:52:18 -07:00
2026-05-12 21:52:58 -07:00
2026-05-12 07:47:11 -07:00
2026-05-12 18:33:13 -07:00
2026-05-03 14:10:11 -07:00
2026-04-23 23:02:36 -07:00
2026-05-05 13:42:39 -07:00
2026-05-06 11:09:05 -07:00
2026-05-08 12:05:46 -07:00
2026-05-06 06:05:05 -07:00
2026-05-06 13:38:23 -07:00
2026-05-06 19:55:55 -07:00
2026-05-07 15:53:58 -07:00
2026-04-23 23:02:35 -07:00
2026-05-03 02:02:25 -07:00
2026-04-28 14:25:55 -07:00
2026-05-10 08:28:07 -07:00
2026-04-29 07:10:52 -07:00
2026-05-12 19:10:07 -07:00
2026-05-03 02:36:07 -07:00
2026-05-03 02:36:07 -07:00
2026-05-04 23:47:26 -07:00
2026-04-24 08:54:25 -07:00
2026-05-05 06:32:33 -07:00
2026-05-09 14:41:58 -07:00
2026-04-19 20:48:14 -07:00
2026-05-05 06:32:33 -07:00
2026-05-11 17:46:42 -07:00
2026-05-03 15:13:08 -07:00
2026-05-10 19:13:05 -07:00
2026-05-07 00:05:34 -07:00
2026-05-10 23:36:10 -07:00
2026-04-29 07:58:58 -07:00
2026-05-01 23:26:14 -07:00
2026-05-09 22:40:20 -07:00
2026-04-17 14:09:37 -07:00
2026-04-28 18:21:17 -07:00
2026-04-18 12:21:14 -07:00
2026-04-08 14:58:34 -07:00
2026-04-28 14:25:55 -07:00
2026-05-04 23:47:26 -07:00
2026-05-01 12:25:44 -07:00
2026-05-12 17:03:10 -07:00
2026-05-07 02:15:14 -07:00
2026-05-08 08:07:01 -07:00
2026-05-10 23:36:09 -07:00
2026-05-11 21:48:26 -07:00
2026-05-03 02:02:25 -07:00
2026-04-30 21:20:56 -07:00
2026-04-19 20:48:13 -07:00
2026-05-12 17:04:32 -07:00
2026-05-04 22:17:10 -07:00
2026-05-03 09:11:04 -07:00
2026-05-03 02:02:25 -07:00
2026-04-16 23:07:40 -07:00
2026-04-17 12:13:39 -07:00
2026-04-23 23:02:35 -07:00
2026-05-12 18:26:58 -07:00
2026-05-12 17:04:33 -07:00
2026-05-08 14:03:17 -07:00
2026-04-29 12:02:56 -07:00
2026-04-29 07:58:58 -07:00
2026-05-12 21:52:58 -07:00
2026-04-08 11:21:18 -07:00
2026-05-12 19:10:07 -07:00
2026-05-11 06:47:43 -07:00
2026-05-12 17:24:44 -07:00
2026-05-06 18:37:23 -07:00
2026-04-29 12:02:56 -07:00
2026-04-25 21:43:38 -07:00
2026-05-12 21:52:58 -07:00