gsxdsm
|
937650472a
|
FN-7820: add Cost tab to task detail and optional card cost badge
Adds a shared cost-derivation utility and surfaces token/cost info in a new Cost tab on the task detail modal, plus an opt-in per-card cost badge on the board.
- Extract token-cost calculation into a shared taskTokenCost helper (read-time costFor derivation) reused by the Summary tab, new Cost tab, and card badge
- Add TaskDetailModal Cost tab (TaskCostTab.tsx/.css) showing cost breakdown for a task
- Simplify TaskSummaryTab by delegating cost math to the shared helper
- Add default-off project setting showCostBadgeOnCards (settings-schema.ts, types.ts) with a SettingsModal/AppearanceSection toggle
- Add CostBadgeContext to thread the setting into TaskCard without prop drilling
- Show an optional cost badge on TaskCard when the setting is enabled
- Update i18n strings across en/es/fr/ko/zh-CN/zh-TW locales
- Update docs (dashboard-guide.md, settings-reference.md) and add changeset fn-7820-cost-tab-and-card-badge.md
Files changed:
.changeset/fn-7820-cost-tab-and-card-badge.md | 7 ++
docs/dashboard-guide.md | 4 +
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-defaults.test.ts | 13 ++
packages/core/src/settings-schema.ts | 5 +
packages/core/src/types.ts | 5 +
packages/dashboard/app/App.tsx | 5 +
.../dashboard/app/components/SettingsModal.tsx | 6 +
packages/dashboard/app/components/TaskCard.css | 7 +-
packages/dashboard/app/components/TaskCard.tsx | 27 +++-
packages/dashboard/app/components/TaskCostTab.css | 51 ++++++++
packages/dashboard/app/components/TaskCostTab.tsx | 91 ++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 14 ++-
.../dashboard/app/components/TaskSummaryTab.tsx | 123 +-----------------
.../app/components/__tests__/TaskCard.test.tsx | 81 +++++++++++-
.../app/components/__tests__/TaskCostTab.test.tsx | 55 ++++++++
.../TaskDetailModal.attachments-and-tabs.test.tsx | 11 +-
.../settings/sections/AppearanceSection.tsx | 8 ++
.../sections/__tests__/AppearanceSection.test.tsx | 20 +++
.../settings-default-descriptions.test.tsx | 1 +
.../dashboard/app/context/CostBadgeContext.tsx | 19 +++
packages/dashboard/app/hooks/useAppSettings.ts | 15 +++
.../app/utils/__tests__/taskTokenCost.test.ts | 62 +++++++++
packages/dashboard/app/utils/taskTokenCost.ts | 139 +++++++++++++++++++++
packages/i18n/locales/en/app.json | 29 ++++-
packages/i18n/locales/es/app.json | 30 ++++-
packages/i18n/locales/fr/app.json | 27 +++-
packages/i18n/locales/ko/app.json | 30 ++++-
packages/i18n/locales/zh-CN/app.json | 30 ++++-
packages/i18n/locales/zh-TW/app.json | 30 ++++-
30 files changed, 789 insertions(+), 157 deletions(-)
Fusion-Task-Id: FN-7820
Fusion-Task-Lineage: d33c5678-a68c-4b29-9db1-8ff0369dfd72
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-07-11 18:07:00 -07:00 |
|
gsxdsm
|
927741a8cf
|
FN-7727: persist failed workflow step history across self-healing retries
Preserves prior failed pre-merge review attempts instead of overwriting them when self-healing re-runs a failed workflow step.
- Add optional bounded `priorAttempts?: WorkflowStepResult[]` field to `WorkflowStepResult` (capped at `MAX_WORKFLOW_STEP_PRIOR_ATTEMPTS`)
- Add shared pure `upsertWorkflowStepResult(existing, incoming, opts?)` helper in `@fusion/core` (packages/core/src/workflow-step-results.ts)
- Route the executor graph adapter's `recordWorkflowStepResult` and triage's `recordPlanReviewWorkflowResult` through the new helper so a self-healing recovery re-run snapshots the prior failed/advisory_failure attempt into `priorAttempts` instead of dropping it
- Selection logic (self-healing, merge-blocker, progress/timing) is unchanged and still reads only the current entry
- Surface prior failed attempts in the TaskDetailModal Summary tab's Workflow results list as a collapsed "previous failed attempts" disclosure
- Add core/engine/dashboard tests covering the upsert helper, self-healing recovery snapshotting, and the UI disclosure
- Document the behavior in docs/workflow-steps.md
- Add changeset for @runfusion/fusion (patch)
Files changed:
.changeset/fn-7727-persist-failed-step-history.md | 7 ++
docs/workflow-steps.md | 15 +++
.../src/__tests__/workflow-step-results.test.ts | 138 +++++++++++++++++++++
packages/core/src/index.gate.ts | 4 +
packages/core/src/index.ts | 4 +
packages/core/src/types.ts | 19 +++
packages/core/src/workflow-step-results.ts | 99 +++++++++++++++
.../dashboard/app/components/TaskDetailModal.css | 55 ++++++++
.../dashboard/app/components/TaskSummaryTab.tsx | 42 ++++++-
.../TaskSummaryTab.prior-attempts.test.tsx | 89 +++++++++++++
.../clear-terminal-workflow-step-failures.test.ts | 27 ++++
packages/engine/src/__tests__/self-healing.test.ts | 50 ++++++++
...flow-step-results-self-healing-recovery.test.ts | 115 +++++++++++++++++
packages/engine/src/executor.ts | 29 +++--
packages/engine/src/triage.ts | 14 ++-
15 files changed, 688 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-7727
Fusion-Task-Lineage: 7316fb18-bc92-426d-91f4-b1a4ad41c9b1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-07-09 19:58:05 -07:00 |
|
gsxdsm
|
63d1079d44
|
FN-7142: show task summary token costs
Add task summary visibility into token usage, model-level costs, and locale coverage.
- Render done-task Summary token usage by model with input, output, cached, total, and estimated cost columns.
- Thread global model pricing overrides into the summary cost calculation and mark unpriced models as unavailable.
- Add responsive token-cost styling, summary-tab coverage, dashboard docs, release notes, and locale keys.
Files changed:
.changeset/fn-7142-summary-token-cost.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/TaskDetailModal.css | 125 +++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 2 +-
.../dashboard/app/components/TaskSummaryTab.tsx | 177 ++++++++++++++-
.../__tests__/TaskDetailModal.summary-tab.test.tsx | 241 ++++++++++++++++++++-
packages/i18n/locales/en/app.json | 11 +
packages/i18n/locales/es/app.json | 52 ++++-
packages/i18n/locales/fr/app.json | 52 ++++-
packages/i18n/locales/ko/app.json | 52 ++++-
packages/i18n/locales/zh-CN/app.json | 52 ++++-
packages/i18n/locales/zh-TW/app.json | 52 ++++-
12 files changed, 794 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-7142
Fusion-Task-Lineage: ec1c7244-4779-46e7-be7c-b0e00b361fd7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-06-27 17:56:32 -07:00 |
|
gsxdsm
|
a19df338ad
|
FN-7131: add done-task summary tab
Done task details now open to a read-only Summary tab before Chat.
- Add TaskSummaryTab with completion summary markdown, landed-file stats, completed steps, workflow results, and retry context.
- Default done-task detail entrypoints to Summary while preserving explicit tab selections and plugin tab typing.
- Style and localize the Summary tab, document it, and add dashboard coverage for defaulting and tab content.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7131-summary-tab.md | 7 +
docs/dashboard-guide.md | 1 +
packages/dashboard/app/App.tsx | 2 +-
.../dashboard/app/components/TaskDetailModal.css | 181 +++++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 63 ++++--
.../dashboard/app/components/TaskSummaryTab.tsx | 160 +++++++++++++++
.../TaskDetailModal.definition-actions.test.tsx | 56 +++---
.../__tests__/TaskDetailModal.summary-tab.test.tsx | 222 +++++++++++++++++++++
.../dashboard/app/components/dashboard/types.ts | 2 +-
.../app/hooks/__tests__/useModalManager.test.ts | 10 +-
.../dashboard/app/hooks/useMainPanelTaskDetail.ts | 9 +-
packages/dashboard/app/hooks/useModalManager.ts | 12 +-
packages/dashboard/app/plugins/types.ts | 2 +-
packages/i18n/locales/en/app.json | 16 ++
14 files changed, 687 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-7131
Fusion-Task-Lineage: e8ca4ade-9904-4705-a151-d9e55f67b398
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
|
2026-06-27 12:15:42 -07:00 |
|