Merge branch 'fusion/fn-1690' into main

- Add roadmap schema migration v32 with covering indexes for roadmapItems table
- Implement RoadmapStore with CRUD and deterministic ordering
- Wire RoadmapStore access via TaskStore.getRoadmapStore()
- Update architecture.md with RoadmapStore persistence docs
- Fix pre-existing test failures in SettingsModal and store tests
This commit is contained in:
gsxdsm
2026-04-14 10:56:04 -07:00
parent 6df783df9f
commit a38de531c0
2 changed files with 5 additions and 2 deletions

View File

@@ -55,6 +55,8 @@ export default tseslint.config(
// with project conventions (argsIgnorePattern for underscore params, etc.) // with project conventions (argsIgnorePattern for underscore params, etc.)
"plugins/examples/*/src/**/*.ts", "plugins/examples/*/src/**/*.ts",
"plugins/examples/*/src/**/*.tsx", "plugins/examples/*/src/**/*.tsx",
// Agent skill plugin templates — follow project conventions for underscore params
".pi/agent/skills/create-fusion-plugin/templates/**/*.ts",
], ],
plugins: { plugins: {
"@typescript-eslint": tseslint.plugin, "@typescript-eslint": tseslint.plugin,

View File

@@ -2,6 +2,7 @@ import { describe, it, expect, beforeAll } from "vitest";
import { definePlugin } from "./index.js"; import { definePlugin } from "./index.js";
import type { FusionPlugin } from "../../core/src/plugin-types.js"; import type { FusionPlugin } from "../../core/src/plugin-types.js";
import { validatePluginManifest } from "../../core/src/plugin-types.js"; import { validatePluginManifest } from "../../core/src/plugin-types.js";
import type { TaskStore } from "../../core/src/store.js";
let validateFn: typeof validatePluginManifest; let validateFn: typeof validatePluginManifest;
@@ -51,7 +52,7 @@ describe("Plugin SDK", () => {
name: "my_tool", name: "my_tool",
description: "A useful tool", description: "A useful tool",
parameters: {}, parameters: {},
execute: async (params, ctx) => ({ execute: async (_params, _ctx) => ({
content: [{ type: "text" as const, text: "Hello!" }], content: [{ type: "text" as const, text: "Hello!" }],
}), }),
}, },
@@ -176,7 +177,7 @@ describe("Plugin SDK", () => {
it("exports PluginContext type", () => { it("exports PluginContext type", () => {
const ctx: import("../../core/src/plugin-types.js").PluginContext = { const ctx: import("../../core/src/plugin-types.js").PluginContext = {
pluginId: "test", pluginId: "test",
taskStore: {} as any, taskStore: {} as unknown as TaskStore,
settings: {}, settings: {},
logger: { logger: {
info: () => {}, info: () => {},