FN-7660: rename remaining board-column "Triage" labels to "Planning"
Rename remaining "Triage" board-column label references to "Planning" across dashboard editors, locale strings, and docs. - Fixed BUILTIN_WORKFLOW_COLUMN_LABELS.triage in board-workflows.ts (was still "Triage", clobbering FN-7599's IR rename); column id "triage" stays unchanged - Updated dashboard components (AgentDetailView, RoutineEditor, ScheduleForm, ScheduleStepsEditor) to use the "Planning" label - Updated en/app.json locale strings (board.triage, schedule.columnTriage/taskColumnTriage/triageColumn) to "Planning" - Updated board-workflows tests to assert the new label - Updated docs/dashboard-guide.md Triage/Planning column references to "Planning", preserving the FN-7653 intake-only gating correction - Added a patch changeset documenting the label-consistency fix Files changed: .changeset/fn-7660-planning-label-consistency.md | 7 +++++++ docs/dashboard-guide.md | 9 +++++---- packages/dashboard/app/components/AgentDetailView.tsx | 2 +- packages/dashboard/app/components/RoutineEditor.tsx | 2 +- packages/dashboard/app/components/ScheduleForm.tsx | 2 +- packages/dashboard/app/components/ScheduleStepsEditor.tsx | 2 +- .../dashboard/src/routes/__tests__/board-workflows.test.ts | 7 ++++++- packages/dashboard/src/routes/board-workflows.ts | 10 +++++++++- packages/i18n/locales/en/app.json | 8 ++++---- 9 files changed, 35 insertions(+), 14 deletions(-) Fusion-Task-Id: FN-7660 Fusion-Task-Lineage: fc6c94d6-9876-4c0e-80b1-a5518903952e Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
This commit is contained in:
7
.changeset/fn-7660-planning-label-consistency.md
Normal file
7
.changeset/fn-7660-planning-label-consistency.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@runfusion/fusion": patch
|
||||
---
|
||||
|
||||
summary: Built-in workflow boards and Automations editors now label the intake column "Planning", not "Triage".
|
||||
category: fix
|
||||
dev: board-workflows canonical label map BUILTIN_WORKFLOW_COLUMN_LABELS.triage was still "Triage", overriding FN-7599's IR rename; set to "Planning". English schedule.columnTriage/taskColumnTriage/triageColumn set to "Planning" and dashboard locale copy re-synced. Also fixed board.triage (AgentDetailView task-column badge) and docs/dashboard-guide.md references. Column id "triage" unchanged.
|
||||
@@ -219,9 +219,10 @@ FNXC:TaskCardMobileSelection 2026-07-01-00:00: Mobile Board long-press is a task
|
||||
<!-- FNXC:BoardDoneSorting 2026-06-29-00:00: The Done board column exposes a local descending sort selector so operators can review either latest completions or highest task IDs without changing other lifecycle columns. -->
|
||||
<!-- FNXC:BoardDoneSorting 2026-06-29-20:28: Document both Done sort modes as descending-only and Done-column-only so legacy Done and workflow complete-lane operators understand the selector does not change other lifecycle columns. -->
|
||||
<!-- FNXC:BoardDoneActions 2026-06-30-00:00: Done/complete column sort choices and Archive All Done now live in the column actions dropdown, so docs must point operators to the menu instead of separate header controls. -->
|
||||
<!-- FNXC:PlanApproval 2026-07-01-08:47: Operators need the Board Triage/intake column action menu documented as a binary shortcut for project plan auto-approval while Settings remains the full workflow/auto-approve/require-all editor.
|
||||
FNXC:PlanApproval 2026-07-07-00:00 (FN-7653 correction): the switch is intake/planning-column-only — it must not appear on hold (Todo-like) columns, even though hold columns also gate planning-adjacent behavior. The built-in Coding workflow's Todo column (hold trait) was wrongly showing this control; docs now match the corrected intake-only gating. -->
|
||||
- The Triage/Planning column actions dropdown includes **Auto-approve plan**. Turning it on sets the project plan approval mode to auto-approve all planned tasks; turning it off returns to the workflow/default plan approval behavior. In workflow-mode Boards, the same switch appears only on the intake/planning column and on the equivalent **All workflows** aggregate intake column — not on hold (Todo-like) or other lifecycle columns. Use Settings → Merge for the full three-state project control, including **Require approval for all tasks**.
|
||||
<!-- FNXC:PlanApproval 2026-07-01-08:47: Operators need the Board Planning/intake column action menu documented as a binary shortcut for project plan auto-approval while Settings remains the full workflow/auto-approve/require-all editor.
|
||||
FNXC:PlanApproval 2026-07-07-00:00 (FN-7653 correction): the switch is intake/planning-column-only — it must not appear on hold (Todo-like) columns, even though hold columns also gate planning-adjacent behavior. The built-in Coding workflow's Todo column (hold trait) was wrongly showing this control; docs now match the corrected intake-only gating.
|
||||
FNXC:TriageRename 2026-07-08-00:00 (FN-7660): the board column formerly labeled "Triage" is canonically "Planning"; docs refer to it as the Planning column throughout. -->
|
||||
- The Planning column actions dropdown includes **Auto-approve plan**. Turning it on sets the project plan approval mode to auto-approve all planned tasks; turning it off returns to the workflow/default plan approval behavior. In workflow-mode Boards, the same switch appears only on the intake/planning column and on the equivalent **All workflows** aggregate intake column — not on hold (Todo-like) or other lifecycle columns. Use Settings → Merge for the full three-state project control, including **Require approval for all tasks**.
|
||||
- Column ordering semantics: `todo` mirrors scheduler pickup order (priority descending, then oldest `createdAt`, then task ID); `triage`, `in-progress`, `in-review`, and `archived` remain priority-first with task-ID tie-breaks; `done` defaults to most recent completion first (`columnMovedAt`, then `updatedAt`, then `createdAt` fallback) and can be switched from the Done/complete column actions dropdown to descending task ID. In workflow mode, non-archived columns marked with the `complete` flag use the same Done menu items even when their column ID or label is customized.
|
||||
- Done-column sorting has two descending modes: **Completion date (newest first)** keeps the default completion-time order, while **Task ID (newest first)** places the highest numeric task IDs first. The sort actions are only shown in Done/complete column action menus, including custom workflow completion lanes; Archive All Done lives in the same menu when available.
|
||||
- On mobile, both default and workflow-mode boards fill the project viewport while the column strip remains the internal horizontal scroller with contained edge overscroll.
|
||||
@@ -919,7 +920,7 @@ Features:
|
||||
- **Token Usage by Agent** includes task-derived token counts for ephemeral/task-worker system agents when system agents are shown, matching Agent detail and Command Center Team token surfaces.
|
||||
- Agent list cards show the configured **Model** or plugin **Runtime** for each agent, falling back to **Auto** when no override is set
|
||||
<!-- FNXC:AgentTaskStateDrift 2026-06-27-16:46: Agent task badges include the linked task column so parked `triage`/`todo` ownership from the FN-7138 invariant is not misread as execution drift. -->
|
||||
- Agent list, live-agent, and detail task badges show the linked task ID with its current column when the task is non-terminal (for example `FN-6902 · Triage` or `FN-6902 · In Progress`). Terminal linked tasks are omitted, and unresolved column lookups render an explicit `Unresolved task` suffix so missing or deleted task links are not mistaken for healthy parked work.
|
||||
- Agent list, live-agent, and detail task badges show the linked task ID with its current column when the task is non-terminal (for example `FN-6902 · Planning` or `FN-6902 · In Progress`). Terminal linked tasks are omitted, and unresolved column lookups render an explicit `Unresolved task` suffix so missing or deleted task links are not mistaken for healthy parked work.
|
||||
- First-run setup asks whether to create an optional project agent after project registration. The default template is **CEO**; users can choose another preset, use the AI interview when `experimentalFeatures.agentOnboarding` is enabled, or skip it. Fusion can still build tasks without an agent by starting temporary agents to plan, code, review, and merge task work.
|
||||
- Start, pause, stop, and trigger agent runs from the view and from detail panels
|
||||
- In **Agent detail**, use the kebab **Bulk agent actions** button in the header utility cluster (next to **Refresh** and **Close**) to run project-wide lifecycle transitions for non-ephemeral agents in the current project — **Pause All Agents** targets agents in the `active` or `running` state, while **Resume All Agents** targets agents in the `paused` state only
|
||||
|
||||
@@ -2298,7 +2298,7 @@ function TasksTab({
|
||||
<span className="agent-task-id">{task.id}</span>
|
||||
<span className={`agent-task-column column-${task.column}`}>{
|
||||
({
|
||||
triage: t("board.triage", "Triage"),
|
||||
triage: t("board.triage", "Planning"),
|
||||
todo: t("board.todo", "Todo"),
|
||||
"in-progress": t("board.inProgress", "In Progress"),
|
||||
"in-review": t("board.inReview", "In Review"),
|
||||
|
||||
@@ -703,7 +703,7 @@ export function RoutineEditor({ routine, onSubmit, onCancel, scope: formScope, p
|
||||
<div className="form-group">
|
||||
<label htmlFor="routine-task-column">{t("schedule.taskColumnLabel", "Target Column")}</label>
|
||||
<select id="routine-task-column" value={taskColumn} onChange={(e) => setTaskColumn(e.target.value)}>
|
||||
<option value="triage">{t("schedule.taskColumnTriage", "Triage")}</option>
|
||||
<option value="triage">{t("schedule.taskColumnTriage", "Planning")}</option>
|
||||
<option value="todo">{t("schedule.taskColumnTodo", "To Do")}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -739,7 +739,7 @@ export function ScheduleForm({ schedule, onSubmit, onCancel, scope: formScope, p
|
||||
value={taskColumn}
|
||||
onChange={(e) => setTaskColumn(e.target.value)}
|
||||
>
|
||||
<option value="triage">{t("schedule.columnTriage", "Triage")}</option>
|
||||
<option value="triage">{t("schedule.columnTriage", "Planning")}</option>
|
||||
<option value="todo">{t("schedule.columnTodo", "To Do")}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -331,7 +331,7 @@ function StepEditor({ step, onSave, onCancel }: StepEditorProps) {
|
||||
value={taskColumn}
|
||||
onChange={(e) => setTaskColumn(e.target.value)}
|
||||
>
|
||||
<option value="triage">{t("schedule.triageColumn", "Triage")}</option>
|
||||
<option value="triage">{t("schedule.triageColumn", "Planning")}</option>
|
||||
<option value="todo">{t("schedule.todoColumn", "To Do")}</option>
|
||||
</select>
|
||||
<small>{t("schedule.targetColumnHelp", "Column where the new task will be created")}</small>
|
||||
|
||||
@@ -81,14 +81,19 @@ describe("buildBoardWorkflowsPayload", () => {
|
||||
"done",
|
||||
"archived",
|
||||
]);
|
||||
// FN-7660: the intake column (id: "triage") displays as "Planning";
|
||||
// the id itself is unchanged.
|
||||
expect(defaultWf!.columns.map((c) => c.name)).toEqual([
|
||||
"Triage",
|
||||
"Planning",
|
||||
"Todo",
|
||||
"In Progress",
|
||||
"In Review",
|
||||
"Done",
|
||||
"Archived",
|
||||
]);
|
||||
const intakeColumn = defaultWf!.columns.find((c) => c.id === "triage");
|
||||
expect(intakeColumn).toBeDefined();
|
||||
expect(intakeColumn!.name).toBe("Planning");
|
||||
const inReview = defaultWf!.columns.find((c) => c.id === "in-review");
|
||||
expect(inReview).toBeDefined();
|
||||
expect(inReview!.flags.mergeBlocker).toBe(true);
|
||||
|
||||
@@ -70,9 +70,17 @@ export interface BoardWorkflowsPayload {
|
||||
taskWorkflowIds: Record<string, string>;
|
||||
}
|
||||
|
||||
/*
|
||||
* FNXC:Workflows 2026-07-07-00:00:
|
||||
* The canonical built-in lifecycle label for the intake column (id: "triage")
|
||||
* is "Planning" — FN-7599 renamed the IR column name, but this override map
|
||||
* was still clobbering it back to "Triage" for built-in workflows via
|
||||
* describeColumns(ir, true). Do not re-clobber the IR rename (FN-7660); the
|
||||
* column id itself remains "triage" everywhere (types, DB, transitions).
|
||||
*/
|
||||
const BUILTIN_WORKFLOW_COLUMN_LABELS: Record<string, string> = {
|
||||
ideas: "Ideas",
|
||||
triage: "Triage",
|
||||
triage: "Planning",
|
||||
todo: "Todo",
|
||||
"in-progress": "In Progress",
|
||||
"in-review": "In Review",
|
||||
|
||||
@@ -1213,7 +1213,7 @@
|
||||
"workflowMismatch": "Drag can't move a card between workflows. Use the workflow switcher instead."
|
||||
},
|
||||
"todo": "To Do",
|
||||
"triage": "Triage",
|
||||
"triage": "Planning",
|
||||
"workflow": {
|
||||
"edit": "Edit workflows",
|
||||
"new": "New workflow"
|
||||
@@ -5295,7 +5295,7 @@
|
||||
"catchUpPolicyRunOne": "Run the most recent missed run",
|
||||
"catchUpPolicySkip": "Skip missed runs",
|
||||
"columnTodo": "To Do",
|
||||
"columnTriage": "Triage",
|
||||
"columnTriage": "Planning",
|
||||
"command": "Command",
|
||||
"commandHelp": "Shell command to execute. Runs with your user permissions.",
|
||||
"commandHint": "Shell command to execute.",
|
||||
@@ -5473,7 +5473,7 @@
|
||||
"targetColumnLabel": "Target Column",
|
||||
"taskColumnLabel": "Target Column",
|
||||
"taskColumnTodo": "To Do",
|
||||
"taskColumnTriage": "Triage",
|
||||
"taskColumnTriage": "Planning",
|
||||
"taskDescription": "Task Description *",
|
||||
"taskDescriptionHelp": "Describes the task that will be created.",
|
||||
"taskDescriptionHint": "Describes the task that will be created.",
|
||||
@@ -5493,7 +5493,7 @@
|
||||
"title": "Automations",
|
||||
"todoColumn": "To Do",
|
||||
"toggleError": "Failed to toggle routine",
|
||||
"triageColumn": "Triage",
|
||||
"triageColumn": "Planning",
|
||||
"triggerApi": "API",
|
||||
"triggerCron": "Cron",
|
||||
"triggerManual": "Manual",
|
||||
|
||||
Reference in New Issue
Block a user