feat(FN-3513): add eval domain store, plugin dashboard view registry, and G

This merge adds three major features: an eval domain (`eval-store.ts`, `eval-types.ts`) with persistence schema for evaluation data; a plugin dashboard view registry with navigation integration for third-party dashboard extensions; and GitHub source metadata traceability that locks and enforces issu

Fusion-Task-Id: FN-3513
This commit is contained in:
Fusion
2026-05-05 12:20:28 -07:00
committed by gsxdsm
parent d7880c66b0
commit 30f6381ec0
11 changed files with 125 additions and 61 deletions

View File

@@ -251,6 +251,19 @@ async function fetchGitHubIssuesViaGh(
}
}
function buildGitHubIssueSource(owner: string, repo: string, issue: { number: number; html_url: string }) {
return {
sourceIssue: {
provider: "github" as const,
repository: `${owner}/${repo}`,
externalIssueId: String(issue.number),
issueNumber: issue.number,
url: issue.html_url,
},
sourceMetadata: { issueUrl: issue.html_url, issueNumber: issue.number },
};
}
async function fetchGitHubIssueViaGh(
owner: string,
repo: string,
@@ -988,21 +1001,16 @@ export default function kbExtension(pi: ExtensionAPI) {
const body = issue.body?.trim() || "(no description)";
const description = `${body}\n\nSource: ${sourceUrl}`;
const source = buildGitHubIssueSource(owner, repo, issue);
const task = await store.createTask({
title: title || undefined,
description,
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: `${owner}/${repo}`,
externalIssueId: String(issue.number),
issueNumber: issue.number,
url: issue.html_url,
},
sourceIssue: source.sourceIssue,
source: {
sourceType: "github_import",
sourceMetadata: { issueUrl: issue.html_url },
sourceMetadata: source.sourceMetadata,
},
});
@@ -1085,21 +1093,16 @@ export default function kbExtension(pi: ExtensionAPI) {
const body = issue.body?.trim() || "(no description)";
const description = `${body}\n\nSource: ${sourceUrl}`;
const source = buildGitHubIssueSource(owner, repo, issue);
const task = await store.createTask({
title: title || undefined,
description,
column: "triage",
dependencies: [],
sourceIssue: {
provider: "github",
repository: `${owner}/${repo}`,
externalIssueId: String(issue.number),
issueNumber: issue.number,
url: issue.html_url,
},
sourceIssue: source.sourceIssue,
source: {
sourceType: "github_import",
sourceMetadata: { issueUrl: issue.html_url },
sourceMetadata: source.sourceMetadata,
},
});