⚠️ breaking: rename 'solution' missions → 'fixer', solutions/ → fixes/#4033
⚠️ breaking: rename 'solution' missions → 'fixer', solutions/ → fixes/#4033clubanderson merged 1 commit intomainfrom
Conversation
Rename MissionClass type value from 'solution' to 'fixer' and all API/KB paths from solutions/ to fixes/ for consistency with the UI tab label "Fixes". Changes across 28 files: - MissionClass type: 'solution' → 'fixer' - Component renames: SolutionCard→FixerCard, SolutionDefinitionPanel→FixerDefinitionPanel - All KB paths: solutions/ → fixes/ (cardInstallMap, MissionLandingPage, MissionSidebar, etc.) - Analytics: emitSolution* → emitFixer*, GA4 events ksc_solution_* → ksc_fixer_* - Variable renames: solutionMissions → fixerMissions, filteredSolutions → filteredFixers - Go backend comments + test paths updated - Netlify functions + analytics dashboard updated - E2E tests updated - User-facing strings updated Companion PR: kubestellar/console-kb#1828 Signed-off-by: Andrew Anderson <andy@clubanderson.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
✅ Deploy Preview for kubestellarconsole ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
👋 Hey @clubanderson — thanks for opening this PR!
This is an automated message. |
There was a problem hiding this comment.
Pull request overview
Renames “solution” missions to “fixer” across the console, including KB path changes from solutions/ → fixes/, UI/components naming, and analytics event names.
Changes:
- Updates mission type model + KB path plumbing to use
fixes/andMissionClass='fixer'. - Renames UI components/strings from Solution → Fix/Fixer across Mission Browser and Mission Control.
- Renames analytics emitters/events and updates analytics dashboard + E2E coverage to match.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| web/src/lib/missions/types.ts | Renames MissionClass union member to 'fixer'. |
| web/src/lib/missions/matcher.ts | Updates terminology in matcher docs/comments. |
| web/src/lib/cards/cardInstallMap.ts | Updates KB install map paths to fixes/.... |
| web/src/lib/analytics.ts | Renames Solution analytics emitters/events to Fixer equivalents. |
| web/src/components/missions/SubmitToKBDialog.tsx | Updates submission defaults/paths/labels to fixer + fixes/. |
| web/src/components/missions/ShareMissionDialog.tsx | Updates shared markdown section heading to “Fix”. |
| web/src/components/missions/MissionLandingPage.tsx | Updates preferred/fallback mission fetch paths to fixes/.... |
| web/src/components/missions/MissionBrowser.tsx | Renames UI, state, imports, root browse path, and strings to Fix/Fixer. |
| web/src/components/missions/ImproveMissionDialog.tsx | Updates referenced mission file path to fixes/.... |
| web/src/components/missions/FixerCard.tsx | Renames SolutionCard component to FixerCard. |
| web/src/components/missions/browser/VirtualizedMissionGrid.tsx | Updates docs/comments to “fixes”. |
| web/src/components/missions/browser/missionCache.ts | Switches index path to fixes/index.json and maps classes to 'fixer'. |
| web/src/components/mission-control/useMissionControl.ts | Updates Mission Control planning prompt/wording to “fix”. |
| web/src/components/mission-control/types.ts | Updates Mission Control type docs to “fix”. |
| web/src/components/mission-control/PayloadGrid.tsx | Updates empty-state copy to “fix”. |
| web/src/components/mission-control/MissionControlDialog.tsx | Renames panel import and updates phase copy to “fix”. |
| web/src/components/mission-control/FlightPlanBlueprint.tsx | Updates KB path conventions to fixes/.... |
| web/src/components/mission-control/FixerDefinitionPanel.tsx | Renames SolutionDefinitionPanel to FixerDefinitionPanel + copy updates. |
| web/src/components/layout/mission-sidebar/MissionSidebar.tsx | Updates direct-import KB paths/index fallback to fixes/.... |
| web/src/components/cards/multi-tenancy/missionLoader.ts | Updates hardcoded legacy mission paths to fixes/.... |
| web/src/components/agent/AgentSelector.tsx | Updates install guide mission lookup paths to fixes/.... |
| web/public/analytics.html | Updates funnel label/key from solution → fixer viewed. |
| web/netlify/functions/missions-file.mts | Updates function docs example path to fixes/.... |
| web/netlify/functions/missions-browse.mts | Updates function docs example path to fixes. |
| web/netlify/functions/analytics-dashboard.mts | Updates GA4 query + response field for fixer viewed. |
| web/e2e/nightly/mission-explorer-import.spec.ts | Updates nightly import test to fetch fixes/index.json. |
| pkg/api/handlers/missions.go | Updates backend comments/examples to fixes/.... |
| pkg/api/handlers/missions_test.go | Updates handler tests to use fixes paths. |
| /** Path to the pre-built fixes index (single file, ~400KB) */ | ||
| const FIXES_INDEX_PATH = 'fixes/index.json' | ||
|
|
There was a problem hiding this comment.
Changing the index path to fixes/index.json can leave returning users stuck with a restored localStorage cache that still contains metadata.source paths under solutions/.... Because restoreCacheFromStorage() sets fixesDone=true, the cache fetch is skipped until TTL expiry, and subsequent mission loads will 404. Consider bumping MISSION_CACHE_STORAGE_KEY (cache versioning) or adding a migration/invalidation step when restored entries start with solutions/ (or when the expected index root changes).
🔄 Auto-Applying Copilot Code ReviewCopilot code review found 0 code suggestion(s) and 1 general comment(s). Also address these general comments:
Push all fixes in a single commit. Run Auto-generated by copilot-review-apply workflow. |
|
Thank you for your contribution! Your PR has been merged. Check out what's new:
Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey |
Updated emitSolutionViewed → emitFixerViewed in the YAML/MD parser flow within MissionBrowser.tsx. All other changes auto-merged cleanly. Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Summary
MissionClasstype value from'solution'to'fixer'solutions/tofixes/(API queries, card install map, landing page, etc.)SolutionCard→FixerCard,SolutionDefinitionPanel→FixerDefinitionPanelemitSolution*→emitFixer*, GA4 eventsksc_solution_*→ksc_fixer_*solutionMissions→fixerMissions,filteredSolutions→filteredFixers, etc.28 files changed across frontend, backend, Netlify, and tests.
Breaking change
Requires companion PR kubestellar/console-kb#1828 to be merged first (renames
solutions/→fixes/directory in the KB repo).What stays unchanged
Test plan
npm run buildpassesgo build ./...passesfixes/index.jsonfixes/KB pathsksc_fixer_*names