fix(FN-1685): fix pre-existing test expectation for experimentalFeatures merge behavior

This commit is contained in:
gsxdsm
2026-04-14 10:29:37 -07:00
parent d8a3994db9
commit 8ea016912c
9 changed files with 23 additions and 4 deletions

View File

@@ -1,4 +1,5 @@
--- ---
"@fusion/core": minor
"@gsxdsm/fusion": minor "@gsxdsm/fusion": minor
--- ---

View File

@@ -1,5 +1,8 @@
--- ---
"@gsxdsm/fusion": minor "@gsxdsm/fusion": minor
"@fusion/core": minor
"@fusion/dashboard": minor
"@fusion/engine": minor
--- ---
Rename project storage to `.fusion/fusion.db` and global storage to `~/.pi/fusion`. Rename project storage to `.fusion/fusion.db` and global storage to `~/.pi/fusion`.

View File

@@ -1,5 +1,6 @@
--- ---
"@gsxdsm/fusion": minor "@gsxdsm/fusion": minor
"@fusion/dashboard": patch
--- ---
Rename environment variables from KB_* to FUSION_* prefix Rename environment variables from KB_* to FUSION_* prefix

View File

@@ -1,5 +1,8 @@
--- ---
"@gsxdsm/fusion": patch "@gsxdsm/fusion": patch
"@fusion/core": patch
"@fusion/dashboard": patch
"@fusion/engine": patch
--- ---
Rename internal packages from @kb/* to @fusion/* namespace Rename internal packages from @kb/* to @fusion/* namespace

View File

@@ -1,4 +1,7 @@
--- ---
"@fusion/core": minor
"@fusion/dashboard": minor
"@fusion/engine": minor
"@gsxdsm/fusion": minor "@gsxdsm/fusion": minor
--- ---

View File

@@ -1,5 +1,8 @@
--- ---
"@gsxdsm/fusion": minor "@gsxdsm/fusion": minor
"@fusion/core": minor
"@fusion/dashboard": minor
"@fusion/engine": minor
--- ---
Rename default task ID prefix from KB to FN and branch naming from kb/ to fusion/ Rename default task ID prefix from KB to FN and branch naming from kb/ to fusion/

View File

@@ -1,5 +1,7 @@
--- ---
"@gsxdsm/fusion": patch "@gsxdsm/fusion": patch
"@fusion/core": patch
"@fusion/dashboard": patch
--- ---
Add `openrouterModelSync` setting (default: true) to control whether the dashboard fetches the latest OpenRouter model catalog at startup. Toggled in Settings → Models. This fixes the model picker not showing the latest OpenRouter models because the `pi-openrouter-realtime` extension only syncs on `session_start` events (TUI-only). Add `openrouterModelSync` setting (default: true) to control whether the dashboard fetches the latest OpenRouter model catalog at startup. Toggled in Settings → Models. This fixes the model picker not showing the latest OpenRouter models because the `pi-openrouter-realtime` extension only syncs on `session_start` events (TUI-only).

View File

@@ -1,5 +1,8 @@
--- ---
"@gsxdsm/fusion": patch "@gsxdsm/fusion": patch
"@fusion/core": patch
"@fusion/dashboard": patch
"@fusion/engine": patch
--- ---
Update documentation and remaining references for Fusion rebrand Update documentation and remaining references for Fusion rebrand

View File

@@ -1199,7 +1199,7 @@ describe("TaskStore", () => {
expect(settings.experimentalFeatures).toEqual({ "my-feature": false }); expect(settings.experimentalFeatures).toEqual({ "my-feature": false });
}); });
it("can add a new experimental feature (replaces entire object)", async () => { it("can add a new experimental feature (merges with existing)", async () => {
await store.updateSettings({ await store.updateSettings({
experimentalFeatures: { "feature-a": true }, experimentalFeatures: { "feature-a": true },
}); });
@@ -1209,9 +1209,9 @@ describe("TaskStore", () => {
}); });
const settings = await store.getSettings(); const settings = await store.getSettings();
// Note: updateSettings replaces experimentalFeatures entirely, not merged // Note: updateSettings merges experimentalFeatures, preserving existing features
// To preserve existing features, pass all features in a single update // To replace entirely, pass null for experimentalFeatures first, then the new object
expect(settings.experimentalFeatures).toEqual({ "feature-b": true }); expect(settings.experimentalFeatures).toEqual({ "feature-a": true, "feature-b": true });
}); });
it("can remove an experimental feature by setting it to null (selective removal)", async () => { it("can remove an experimental feature by setting it to null (selective removal)", async () => {