- Update AgentLogViewer to anchor scroll position when new streamed entries prepend while the user is reading older logs - Keep live-follow behavior near the top and avoid false scroll adjustments when loading older history - Add focused auto-scroll regression tests covering near-top follow, anchored reading, and history pagination cases - Improve log readability styling by using theme tokens and consistent text color for normal and thinking log lines - Resolve release changelog conflicts and retain both existing 0.1.1 notes and FN-2300 changelog entry
13 KiB
13 KiB
@runfusion/fusion
0.1.1
Patch Changes
39f7709: Dashboard TUI now surfaces engine log output in the Logs tab. Previously, the engine'screateLogger()writes (scheduler, executor, triage, merger, PR monitor, heartbeat, etc.) went straight toconsole.errorand were rendered beneath the alt-screen TUI — effectively invisible.DashboardLogSink.captureConsole()now interceptsconsole.log/warn/errorwhile the TUI is running and routes each line into the ring buffer, parsing a leading[prefix]tag so entries carry the subsystem prefix. Originals are restored on TUI shutdown.585e480: Add keyboard navigation and inspection features to the Dashboard TUI Logs tab: arrow keys and j/k to navigate entries, Enter to expand selected entry, Esc to close expanded view, and w to toggle wrap mode for long messages.86fd24e:fn dashboardTTY mode now opens on the System tab first so users immediately see host, port, URL, and auth token access details.585e480: Fix dashboard TUI log navigation: add Home/End shortcuts for jumping to first/last log entry, add Space and e keys as alternatives to Enter for expanding logs, improve word wrap to handle long unbroken tokens (URLs, stack traces) by hard-wrapping them at terminal width.7d31b21: Fix iOS terminal typing in the dashboard. On touch-primary devices, tapping the terminal opened the on-screen keyboard but keystrokes were silently dropped because the bubble-phasehandleTerminalGestureFocushandler re-focused the helper textarea and reset its selection during touchstart/pointerdown, disrupting iOS's input-event attribution. The CSS fix in commitc7266b7falready positions the textarea to receive taps natively, so the JS handler is now a no-op on(hover: none) and (pointer: coarse)devices and desktop retains click-to-focus.- Fix dashboard TUI log viewport row calculation on very small terminals to prevent log lines from overlapping the footer.
ff5df16: Fix executor model resolution precedence so projectdefaultProviderOverride/defaultModelIdOverrideis honored before falling back to globaldefaultProvider/defaultModelIdacross execute, hot-swap, and step-session paths.df2836c: Fix dashboard TUI log behavior so log navigation can reach all entries still present in the ring buffer and streamed merge output is buffered into log lines instead of writing raw fragments into the interactive terminal UI.bbdd11a: Guard SQLite FTS5 usage so Fusion starts cleanly on Node builds whose bundlednode:sqlitewas compiled without FTS5. On affected systems,fn dashboardpreviously crashed on first run withError: no such module: fts5during schema migration. The Database and ArchiveDatabase now probe for FTS5 at startup and skip the virtual table + triggers when unavailable;TaskStore.searchTasksandArchiveDatabase.searchfall back to LIKE-based scans. SetFUSION_DISABLE_FTS5=1to force the fallback on runtimes where FTS5 is present but undesirable.0bb0100: Update dashboard TUI header branding from "fn board" to "fusion" for consistent product naming.
0.1.0
Minor Changes
25d44e1: Add interactive TUI tofn dashboardwith five navigable sections: logs, system, utilities, stats, and settings. Keyboard shortcuts enable quick in-terminal navigation (1-5, arrows, q, Ctrl+C, ? for help). The TUI activates automatically in interactive terminal sessions; non-TTY mode (CI, piped output) retains the existing plain-text banner/log behavior.
Patch Changes
-
a2ed6d0: Fixes for stuck merges and agent lifecycle controls.findLandedTaskCommitnow falls back to scanning all ofHEADwhen the boundedbaseCommitSha..HEADrange returns no commits (e.g. baseCommitSha was advanced past the landed merge by a fast-forward rebase). Previously the recovery silently returned null and re-queued the merge even though the commit had already landed.- Agent heartbeat triggers and registration are gated by
runtimeConfig.enabledrather than transient agent state, so paused/idle/error agents stay registered for triggers and re-arm immediately on resume without waiting for a state transition. AgentDetailViewexposes a Stop control alongside Pause/Retry forrunninganderrorstates so operators can terminate stuck agents without going through the agents list.
0.0.6
Patch Changes
-
Re-ship three previously reverted fixes and add pre-merge remote rebase.
--no-authflag now correctly suppresses bearer-token auth instead of being silently overridden by a staleFUSION_DAEMON_TOKENin the project's.env.- Workflow-review revisions reopen only the last step rather than resetting every previously-completed step. The agent applies the feedback as an in-place fix and earlier approved work stays done. New
reopenLastStepForRevisionhelper is used byhandleWorkflowRevisionRequest,handleWorkflowStepFailure, andsendTaskBackForFix.determineRevisionResetStartis marked@deprecatedand kept exported for tests. - Heartbeat scheduling is now driven by
agent.state(active/running= timer armed; everything else = timer cleared), notruntimeConfig.enabled. Resuming a paused agent through the dashboard now re-arms the timer immediately. - New setting
worktreeRebaseBeforeMerge(defaulttrue) and companionworktreeRebaseRemote(default: git's configured default). The merger fetches the remote and rebases the task branch onto the latest default-branch tip before merging; conflicts flow into the existing smart/AI resolve cascade. Dashboard Settings → Worktrees exposes a checkbox and a remote dropdown populated from/api/git/remotes/detailed. - Last/Next heartbeat labels on the agent list card now share font-size and inline-flex alignment so they line up cleanly.
0.0.5
Patch Changes
-
41553a5: Harden agent lifecycle around closed tasks and heartbeat defaults.HeartbeatMonitor.executeHeartbeat()now exits before session creation when the resolved task is done/archived (reasontask_closed) and clears the staleagent.taskIdlinkage so the guard isn't re-tripped on every tick.HeartbeatTriggerScheduler.watchAssignments()skips callback dispatch when the assigned task is already closed (when ataskStoreis wired in).POST /api/agents/:id/runsperforms the same preflight check and returns 409 with a structured error naming the task id + column, keeping the existing active-run 409 precedence.AgentStore.createAgent()now persistsruntimeConfig.heartbeatIntervalMs(default 1h) on non-ephemeral agents so the dashboard's freshness signal matches the scheduler's effective cadence instead of depending on whether the user ever opened the heartbeat dropdown. Exports a newDEFAULT_AGENT_HEARTBEAT_INTERVAL_MSconstant.
0.0.4
Patch Changes
0da498a: Fix dashboard onboarding auth token controls, keep the AI planning modal footer visible on desktop, and add better terminal PTY spawn diagnostics.
0.0.3
Patch Changes
1fc72d1: Improve the dashboard agents list views with shared empty-state actions, token-based state styling, and clearer board/tree/org-chart presentation.46b8032: Makefn agent importimport package skills alongside agents when importing from directory or archive sources. Skills are written to{project}/skills/imported/{company-slug}/{skill-slug}/SKILL.mdwith proper frontmatter formatting. Existing skill files are skipped rather than overwritten. Single AGENTS.md file imports do not include package skills.c1bc5b9: Fix CLI merge regressions in test/build verification: restore gh-cli test alias resolution, ensure daemon ignores invalid env tokens, and restore required changeset config.06704cf: Fix the setup wizard directory browser and make terminal session startup more resilient.
0.0.2
Patch Changes
- Add
fusionbin alias sonpx @runfusion/fusionresolves to the CLI (thefncommand is still available and unchanged).
0.0.1
Initial release
First public release under the @runfusion scope. Package was previously
developed under the @gsxdsm/fusion name; it was never published to npm,
so version history resets with 0.0.1. Pre-release notes preserved below
for reference.
0.4.0 (pre-release, unpublished)
Minor Changes
2d13b82: Add pi extension. Installing@runfusion/fusionviapi installnow provides native tools (fn_task_create,fn_task_list,fn_task_show,fn_task_attach,fn_task_pause,fn_task_unpause) and a/fncommand to start the dashboard and AI engine from within a pi session.494de14: ChangedautoMergeto default totruefor new boards.50821fc: Add global pause button to stop all automated agents and schedulingcac10af: Split engine control into Pause (soft) and Stop (hard). The dashboard Header now shows two buttons: "Pause AI engine" stops new work from being dispatched while letting in-flight agents finish gracefully, and "Stop AI engine" (previously the only Pause button) immediately kills all active agent sessions. A newenginePausedsetting field controls the soft-pause state alongside the existingglobalPausehard-stop.
Patch Changes
d19b51f: Auto-assign random port when dashboard port is already in use instead of crashing with EADDRINUSE.ceb379d: Engine pause now terminates active agent sessions (matching global pause behavior) instead of letting them finish gracefully. Tasks are moved back to todo/cleared for clean resume on unpause.acb246a: Fix active agent glow disappearing when scheduling is soft-paused43aada5: Fix scheduler to not count in-review worktrees against maxWorktrees limit. In-review tasks are idle (waiting to merge) and no longer block new tasks from starting.9033a79: Fix InlineCreateCard cancelling when clicking dependency dropdown items with empty description.96f1070: Fix double horizontal scrollbar on mobile board view by switching the board from a 5-column grid to a flex layout on narrow viewports (≤768px) with snap-scrolling.3dc741c: Fix auto-pause on rate limit when pi-coding-agent exhausts retries. Aftersession.prompt()resolves with exhausted retries, all four agent types (executor, triage, merger, reviewer) now detect the error onsession.state.errorand triggerUsageLimitPauserto activate global pause. Previously, rate-limit errors that pi-coding-agent handled internally were silently swallowed, causing tasks to be promoted to wrong columns with incomplete work.2854553: Fix triage allowing tasks to reach executor before spec review approval72a8953: Fix specifying agents not respecting maxConcurrent concurrency limita2a12f9: Persist worktree pool across engine restarts. WhenrecycleWorktreesis enabled, idle worktrees are rehydrated from disk on startup instead of being forgotten. When disabled, orphaned worktrees are cleaned up automatically.65b9585: Add priority-based agent scheduling: merge agents are served before execution agents, which are served before specification agents, when competing for concurrency slots.98ed082: Restructure README to lead with pi extension usage; move standalone CLI docs to STANDALONE.md.2d13b82: Agents now declare dependencies when creating multiple related tasks during execution0e0643a: Skip merger agent when squash merge stages nothing (branch already merged via dependency)d2e2e50: Make "Pause AI engine" a soft pause: only prevents new agents from starting while allowing currently running agents to finish their work naturally. "Stop AI engine" (global pause) still immediately terminates all active agents.90764b9: Auto-pause engine when API usage limits are detected (rate limits, overloaded, quota exceeded). Prevents wasteful retries across concurrent agents.
0.3.1
Patch Changes
ae90be0: Bundle workspace packages into CLI for npm publish. The published package previously declared dependencies on private@kb/core,@kb/dashboard, and@kb/engineworkspace packages, causingnpm installto fail. Switched the CLI build fromtsctotsup(esbuild) to inline all@kb/*workspace code into a single bundleddist/bin.js, while keeping third-party packages (express,multer,@mariozechner/pi-ai) as external dependencies. Dashboard client assets are now copied intodist/client/so the published tarball is fully self-contained.28bbcb9: Exclude Bun-compiled platform binaries from npm publish tarball, reducing package size significantly.
0.3.0
Minor Changes
fc7582d: Expand agent.log logging to all agent types, additionally capturing thinking, and agent rolescc999ef: RETHINK verdicts trigger git reset and conversation rewind, re-prompting the agent with feedback
Patch Changes
f3c7f7d: CLItask createnow supports a--depends <id>flag (repeatable) to declare task dependencies at creation time.fc7582d: Code review REVISE verdicts are now enforced such that agents can no longer advance steps without APPROVEcc999ef: Plan RETHINK triggers conversation rewind with REVISE enforcement on code reviewscc999ef: Dependent tasks can start from in-review dependency branches instead of waiting for merge
0.2.1
Patch Changes
efdb7de: Clean up README: plain ASCII file tree, mermaid workflow diagram with column descriptions, update quick start to usekbCLI, add authentication section to CLI README, document cross-model review in executor description.
0.2.0
Minor Changes
b12d340: Add automated versioning pipeline using changesets. Developers now add changeset files to describe changes, and a CI workflow automatically opens version PRs that bump versions and generate changelogs.