Moving a card out of a non-legacy workflow column — e.g. Coding (Ideas) "ideas" → "todo" — was rejected with "Invalid transition: 'ideas' → 'todo'. Valid targets: none". Workflow columns graduated to always-on but moveTaskInternal's compat-flag legacy branch (the default path, since no experimental flag is emitted) validated every move against the legacy VALID_TRANSITIONS table, which is keyed only by the built-in column ids. Default-workflow moves survived by coincidence (its ids ARE the legacy ids); a task in a custom column had no key so every move was rejected. The legacy branch now resolves a non-legacy source column's targets from the task's own workflow adjacency (resolveAllowedColumns), while keeping the legacy bare-Error contract intact for legacy columns (transition-parity / characterization suites unchanged). Adds a regression test covering the ideas -> todo -> in-progress -> in-review chain and non-adjacent rejection. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Changeset Format Guide
Each changeset file in this directory describes one user-facing change for release notes.
Required body format
---
"@runfusion/fusion": minor
---
summary: Add a Command Center productivity control for LOC backfills.
category: feature
dev: Uses the new `fn_backfill_loc` tool; settings key `commandCenter.locBackfill`.
Fields
| Field | Required | Description |
|---|---|---|
summary |
Yes | One line, user-facing, max 120 chars. Describe what changed for the operator. |
category |
Yes | One of: feature, fix, breaking, security, performance, internal. |
dev |
No | Developer or migration detail. Preserved in per-package CHANGELOGs but excluded from distilled release notes. |
Audience
The summary is the only content that appears in end-user release notes by default. Write for Fusion operators — describe behavior, fixes, and what changed. Avoid internal class names, file paths, and implementation detail.
Bump types
patch— bug fixes, internal changesminor— new features, CLI additions, toolsmajor— breaking changes
Validation
Run pnpm check:changesets to validate. The linter runs in the PR-check gate and test:gate. Legacy freeform changesets pass with a warning during the transition period.