feat(FN-5622): add goals REST API with store accessor and route handlers
Introduces a Goals REST API (`GET/POST/PUT /api/goals` and `GET/PUT /api/goals/:id`) backed by a new `@fusion/core` goal store and typed goal types, including comprehensive route and store test coverage. Documentation on architecture and storage is updated to reflect the new domain, and a changeset Fusion-Task-Id: FN-5622 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> Fusion-Task-Id: FN-5622
This commit is contained in:
@@ -174,7 +174,7 @@ Concrete references:
|
||||
- **Database adapter**: `packages/core/src/db.ts`
|
||||
- SQLite (`node:sqlite`) with WAL mode + foreign keys
|
||||
- JSON helpers: `toJson`, `toJsonNullable`, `fromJson`
|
||||
- Core schema tables include: `tasks`, `config`, `workflow_steps`, `activityLog`, `archivedTasks`, `automations`, `agents`, `agentHeartbeats`, approval tables (`approval_requests`, `approval_request_audit_events`), `task_documents`, `task_document_revisions`, mission hierarchy tables (`missions`, `milestones`, `slices`, `mission_features`, `mission_events`), plugin/routine tables (`plugins`, `routines`), roadmap tables (`roadmaps`, `roadmap_milestones`, `roadmap_features`), insight tables (`project_insights`, `project_insight_runs`), research tables (`research_runs`, `research_exports`, `research_run_events`), eval tables (`eval_runs`, `eval_task_results`, `eval_run_events`), todo tables (`todo_lists`, `todo_items`), `__meta`
|
||||
- Core schema tables include: `tasks`, `config`, `workflow_steps`, `activityLog`, `archivedTasks`, `automations`, `agents`, `agentHeartbeats`, approval tables (`approval_requests`, `approval_request_audit_events`), `task_documents`, `task_document_revisions`, mission hierarchy tables (`missions`, `milestones`, `slices`, `mission_features`, `mission_events`), goals table (`goals`), plugin/routine tables (`plugins`, `routines`), roadmap tables (`roadmaps`, `roadmap_milestones`, `roadmap_features`), insight tables (`project_insights`, `project_insight_runs`), research tables (`research_runs`, `research_exports`, `research_run_events`), eval tables (`eval_runs`, `eval_task_results`, `eval_run_events`), todo tables (`todo_lists`, `todo_items`), `__meta`
|
||||
- Migration-created tables include: `ai_sessions`, `messages`, `agentRatings`, `chat_sessions`, `chat_messages`, `runAuditEvents`, `mission_contract_assertions`, `mission_feature_assertions`, `mission_validator_runs`, `mission_validator_failures`, `mission_fix_feature_lineage`
|
||||
- `ai_sessions.status` lifecycle includes `draft` (pre-start planning session), then `generating`, `awaiting_input`, terminal `complete` / `error`
|
||||
- **Roadmap feature ownership**: roadmap contracts, ordering/handoff helpers, persistence, routes, and dashboard UI live in `plugins/fusion-plugin-roadmap` (package `@fusion-plugin-examples/roadmap`, plugin id `fusion-plugin-roadmap`) rather than dashboard/core ownership.
|
||||
@@ -184,6 +184,7 @@ Concrete references:
|
||||
- **Specialized stores**:
|
||||
- `AgentStore` (`agent-store.ts`) — filesystem-based agent metadata + heartbeat run history
|
||||
- `MissionStore` (`mission-store.ts`) — mission/milestone/slice/feature hierarchy
|
||||
- `GoalStore` (`goal-store.ts`) — strategic goal CRUD with server-enforced 5-active-goal cap
|
||||
- `AutomationStore` (`automation-store.ts`) — scheduled jobs with global/project scope isolation
|
||||
- `MessageStore` (`message-store.ts`) — SQLite-backed mailbox/inbox/outbox messaging
|
||||
- `ApprovalRequestStore` (`approval-request-store.ts`) — durable approval request lifecycle + append-only audit events
|
||||
|
||||
@@ -146,7 +146,7 @@ Important execution nuance:
|
||||
- **Backend settings keys defined in `@fusion/core`:** **78** total
|
||||
- **Global settings:** 17 (`GlobalSettings`)
|
||||
- **Project settings:** 61 (`ProjectSettings`)
|
||||
- **SQLite tables in project DB schema (`packages/core/src/db.ts`):** **46** (including migration-created tables)
|
||||
- **SQLite tables in project DB schema (`packages/core/src/db.ts`):** **47** (including migration-created tables)
|
||||
- **Issues identified:** **9**
|
||||
- High: 2
|
||||
- Medium: 5
|
||||
@@ -340,6 +340,7 @@ The `tasks.githubTracking` JSON column stores per-task GitHub tracking state (`e
|
||||
| `task_documents` | Task-scoped document metadata/content keyed by `(taskId, key)` with current revision pointer. |
|
||||
| `task_document_revisions` | Immutable revision history for task documents (content snapshots by revision). |
|
||||
| `__meta` | Schema version + monotonic `lastModified` change detector, plus one-time bootstrap metadata such as `bootstrappedAt` and `projectIdentity`. |
|
||||
| `goals` | Strategic intent records (`title`, optional `description`, `status`, timestamps) that can outlive mission timelines. |
|
||||
| `missions` | Mission-level planning hierarchy root. |
|
||||
| `milestones` | Milestones under missions, including dependency lists and validation state. |
|
||||
| `slices` | Slices under milestones with plan-state/activation metadata. |
|
||||
|
||||
Reference in New Issue
Block a user