FN-8296: add chat-requested task verification
Enable chat agents to queue and monitor executor-owned verification runs. - Persist task verification requests through a new PostgreSQL migration. - Expose action-gated chat request and status tools with executor processing. - Show verification status in task and Command Center views. - Advance the schema baseline to migration 0024 and keep chat mocks complete. Files changed: .changeset/fn-8296-feature.md | 7 ++ docs/agent-tool-surface-full-loop.md | 10 +-- docs/dashboard-guide.md | 4 + packages/core/src/index.ts | 2 + .../core/src/postgres/migrations/0000_initial.sql | 20 +++++ .../migrations/0024_task_verification_request.sql | 20 +++++ packages/core/src/postgres/schema-applier.ts | 13 ++- packages/core/src/postgres/schema/project.ts | 25 ++++++ packages/core/src/store.ts | 16 +++- packages/core/src/task-store/reads.ts | 14 +++- packages/core/src/task-store/remaining-ops-6.ts | 49 ++++++++++- packages/core/src/types.ts | 30 +++++++ packages/dashboard/app/api/legacy.ts | 1 + packages/dashboard/app/api/task-content.ts | 10 +++ .../dashboard/app/components/TaskDetailModal.tsx | 17 +++- .../app/components/TaskVerificationStatus.css | 94 ++++++++++++++++++++++ .../app/components/TaskVerificationStatus.tsx | 39 +++++++++ .../__tests__/TaskVerificationStatus.test.tsx | 28 +++++++ .../components/command-center/CommandCenter.css | 33 ++++++++ .../components/command-center/CommandCenter.tsx | 37 ++++++++- packages/dashboard/src/__tests__/chat.test.ts | 1 + packages/dashboard/src/chat.ts | 55 +++++++++++++ .../src/routes/register-command-center-routes.ts | 20 +++++ .../src/routes/register-task-workflow-routes.ts | 17 ++++ packages/engine/src/executor.ts | 51 +++++++++++- packages/engine/src/gating-classifications.ts | 5 ++ packages/engine/src/index.ts | 2 +- 27 files changed, 605 insertions(+), 15 deletions(-) Fusion-Task-Id: FN-8296 Fusion-Task-Lineage: f94647cf-c89f-4f0e-b25f-cbf5b56683bc Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
This commit is contained in:
@@ -243,6 +243,7 @@ export {
|
||||
fetchAgentLogs,
|
||||
fetchAgentLogsWithMeta,
|
||||
fetchSessionFiles,
|
||||
fetchTaskVerificationRequest,
|
||||
fetchTaskComments,
|
||||
addTaskComment,
|
||||
updateTaskComment,
|
||||
|
||||
@@ -15,11 +15,21 @@ import type {
|
||||
NativeStructureRef,
|
||||
NativeStructurePreviewResult,
|
||||
AgentLogEntry,
|
||||
TaskVerificationRequest,
|
||||
} from "@fusion/core";
|
||||
import { appendTokenQuery, withTokenHeader } from "../auth";
|
||||
import { api, buildApiUrl } from "./client.js";
|
||||
import { withProjectId } from "./health.js";
|
||||
|
||||
/**
|
||||
* FNXC:TaskVerificationStatus 2026-07-30-00:00:
|
||||
* Task detail polls this persisted read model because verification state changes do
|
||||
* not mutate the task row and therefore do not emit a task-board SSE update.
|
||||
*/
|
||||
export function fetchTaskVerificationRequest(taskId: string, projectId?: string): Promise<TaskVerificationRequest | null> {
|
||||
return api<TaskVerificationRequest | null>(withProjectId(`/tasks/${encodeURIComponent(taskId)}/verification-request`, projectId));
|
||||
}
|
||||
|
||||
export async function uploadAttachment(id: string, file: File, projectId?: string): Promise<TaskAttachment> {
|
||||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
|
||||
Reference in New Issue
Block a user