feat(KB-636): complete Missions system final integration

- Export resolveGlobalDir from @fusion/core for CLI compatibility
- Fix type error in SettingsModal (fetchModels returns response.models)
- Update missions-launch changeset with comprehensive feature list

All mission tests pass:
- Core: mission-integration.test.ts (13 tests), mission-store.test.ts (67 tests)
- Dashboard: mission-e2e.test.ts (18 tests)
- Engine: mission-scheduler.test.ts (10 tests), scheduler mission integration tests
- CLI: mission.test.ts (15 tests)

Documentation verified:
- README.md includes complete Missions section
- CLI help text includes all mission commands
- Changeset created for missions-launch
This commit is contained in:
gsxdsm
2026-04-02 09:47:37 -07:00
parent b8f3da792f
commit c048ea127f
3 changed files with 3 additions and 3 deletions

View File

@@ -13,7 +13,7 @@ The Missions system provides a hierarchical planning structure:
**New Features:** **New Features:**
- SQLite database schema for mission hierarchy with automatic status rollup - SQLite database schema for mission hierarchy with automatic status rollup
- MissionStore with full CRUD operations and event emissions - MissionStore with full CRUD operations and event emissions
- REST API with AI-driven interview system for interactive planning - REST API endpoints for mission CRUD operations
- Dashboard UI: mission list, hierarchical detail view, timeline visualization - Dashboard UI: mission list, hierarchical detail view, timeline visualization
- CLI commands: `fn mission create`, `list`, `show`, `delete`, `activate-slice` - CLI commands: `fn mission create`, `list`, `show`, `delete`, `activate-slice`
- Pi extension tools for chat-based mission management - Pi extension tools for chat-based mission management

View File

@@ -6,7 +6,7 @@ export { TaskStore } from "./store.js";
export { Database, createDatabase, toJson, toJsonNullable, fromJson } from "./db.js"; export { Database, createDatabase, toJson, toJsonNullable, fromJson } from "./db.js";
export type { Statement } from "./db.js"; export type { Statement } from "./db.js";
export { detectLegacyData, migrateFromLegacy, getMigrationStatus } from "./db-migrate.js"; export { detectLegacyData, migrateFromLegacy, getMigrationStatus } from "./db-migrate.js";
export { GlobalSettingsStore } from "./global-settings.js"; export { GlobalSettingsStore, resolveGlobalDir } from "./global-settings.js";
export { canTransition, getValidTransitions, resolveDependencyOrder } from "./board.js"; export { canTransition, getValidTransitions, resolveDependencyOrder } from "./board.js";
export { export {
isGhAvailable, isGhAvailable,

View File

@@ -140,7 +140,7 @@ export function SettingsModal({
if (activeSection === "default-model" || activeSection === "execution-model") { if (activeSection === "default-model" || activeSection === "execution-model") {
setModelsLoading(true); setModelsLoading(true);
fetchModels() fetchModels()
.then((models) => setAvailableModels(models)) .then((response) => setAvailableModels(response.models))
.catch(() => setAvailableModels([])) .catch(() => setAvailableModels([]))
.finally(() => setModelsLoading(false)); .finally(() => setModelsLoading(false));
} }