Skip to content

fix(dashboard): expose column roles to browser bundle - #3151

Merged
gsxdsm merged 2 commits into
Runfusion:mainfrom
plarson:fix/dashboard-column-role-browser-export
Jul 31, 2026
Merged

fix(dashboard): expose column roles to browser bundle#3151
gsxdsm merged 2 commits into
Runfusion:mainfrom
plarson:fix/dashboard-column-role-browser-export

Conversation

@plarson

@plarson plarson commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • export the browser-safe @fusion/core/column-roles subpath
  • keep Vite/Vitest aliases ahead of broad @fusion/core aliases
  • restore production dashboard builds after task undo classification adopted shared column-role helpers

Test plan

  • node scripts/check-no-node-only-core-imports-in-dashboard.mjs
  • FUSION_DASHBOARD_DEEP=1 pnpm --filter @fusion/dashboard exec vitest run app/utils/__tests__/taskRevert.test.ts --pool=threads --maxWorkers=1
  • pnpm --filter @fusion/core typecheck
  • pnpm --filter @fusion/dashboard typecheck
  • CI=true pnpm check:changesets
  • pnpm build

Summary by CodeRabbit

  • Bug Fixes

    • Fixed dashboard build compatibility for browser-based environments.
    • Improved reliability when importing column role functionality across supported application components.
  • Refactor

    • Made column role utilities available through a dedicated browser-safe entry point.
  • Chores

    • Updated development and test configurations to consistently resolve the new entry point.
    • Documented the browser-safe module classification and recorded the release patch.

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: f63c2481-ee4b-425a-87d4-b2425ebd0b91

📥 Commits

Reviewing files that changed from the base of the PR and between 90398c6 and 12eaf9e.

📒 Files selected for processing (2)
  • packages/engine/src/__tests__/workflow-scheduler-parked-columns-live-e2e.pg.test.ts
  • packages/engine/src/scheduler.ts

📝 Walkthrough

Walkthrough

The PR adds a browser-safe @fusion/core/column-roles export, updates dashboard and workspace aliases, and changes scheduler-related comment timestamps without changing executable behavior.

Changes

Column roles browser export

Layer / File(s) Summary
Browser-safe export contract
packages/core/package.json, scripts/lib/dashboard-browser-safe-core-modules.json, .changeset/...
The core package exports ./column-roles. The browser-safe module manifest and changeset record the export.
Dashboard column-roles resolution
packages/dashboard/app/utils/taskRevert.ts, packages/dashboard/vite.config.ts, packages/dashboard/vitest.config.ts
The dashboard imports the dedicated subpath. Vite and Vitest resolve it to the browser-safe source.
Workspace test aliases
packages/desktop/vitest.config.ts, packages/engine/vitest.config.ts, plugins/*/vitest.config.ts
Workspace and plugin Vitest configurations resolve @fusion/core/column-roles to the core source file.
Scheduler timestamp updates
packages/engine/src/scheduler.ts, packages/engine/src/__tests__/workflow-scheduler-parked-columns-live-e2e.pg.test.ts
Scheduler comments and the test characterization comment use updated FNXC timestamps. Executable behavior is unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: gsxdsm

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: exposing browser-safe column roles for the dashboard bundle.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gsxdsm

gsxdsm commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Swept this with the inert-sync-lane check (wrapper-taint version from #3122): no change — it introduces no guard resolved through resolveTaskWorkflowIrSync. The taskRevert.ts edit is the import path only; the guard itself is untouched. No concern with the PR.

One forward-looking note, because this makes a specific trap more likely rather than less.

taskRevert.ts:119 (candidate.column === "done" || candidate.column === "archived") carries a long flag note, and the blocker it records is not import availability:

This function scans the tasks list for OTHER tasks pointing back at the source, so the column it classifies belongs to a NEIGHBOUR. detailColumnFlags in TaskDetailModal describes the MODAL'S OWN task … supplying it here would answer "is this neighbour finished?" with the modal task's traits … worse than the literal because it is wrong on data rather than merely stale on vocabulary.

Making isTerminalColumnRole reachable from the browser bundle is genuinely useful, and it removes the mechanical obstacle — which is exactly why the next person to read that line may conclude the flag is now stale and convert it. It is not stale: the note's requirement is per-neighbour flags, i.e. resolving each candidate's own workflow, which this PR does not provide and the modal does not have.

Worth a line in that note saying the roles are now importable but the per-neighbour requirement stands — otherwise the flag reads as blocked-on-tooling that has since been unblocked. That is the same shape as #3108#3114, where a correct warning was overwritten hours later by someone who reasonably believed the obstacle had moved.

Not a blocker on this PR; the bundling change is sound and I would land it as-is.

(Edited: an earlier version of this comment dropped the symbol name isTerminalColumnRole — shell backtick expansion on my side, not a claim I withdrew.)

@gsxdsm
gsxdsm merged commit 920d68e into Runfusion:main Jul 31, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants