Commit Graph

48 Commits

Author SHA1 Message Date
gsxdsm
1ada98b53f chore(release): v0.22.0
Version bump via changesets.
2026-05-06 00:11:20 -07:00
gsxdsm
59eeb68198 chore(release): v0.21.0
Version bump via changesets.
2026-05-05 15:31:33 -07:00
gsxdsm
e27e423194 chore(release): v0.20.0
Version bump via changesets.
2026-05-05 14:56:34 -07:00
gsxdsm
9415d33f72 chore(release): v0.19.0
Version bump via changesets.
2026-05-04 15:54:42 -07:00
gsxdsm
1321830800 chore(release): v0.18.1
Version bump via changesets.
2026-05-04 09:55:19 -07:00
gsxdsm
625c5c5f4d chore(release): v0.18.0
Version bump via changesets.
2026-05-04 09:21:08 -07:00
gsxdsm
eb21d84fa3 chore(release): v0.17.2
Version bump via changesets.
2026-05-04 00:49:34 -07:00
gsxdsm
4a4028f526 chore(release): v0.17.1
Version bump via changesets.
2026-05-03 19:37:04 -07:00
gsxdsm
7bccf6860b chore(release): v0.17.0
Version bump via changesets.
2026-05-03 17:26:39 -07:00
gsxdsm
abeeec53bd chore(release): v0.16.0
Version bump via changesets.
2026-05-03 02:09:54 -07:00
gsxdsm
1729f52d63 chore(release): v0.15.0
Version bump via changesets.
2026-05-01 23:38:03 -07:00
gsxdsm
3fdeac1fc4 chore(release): v0.14.3
Version bump via changesets.
2026-05-01 23:19:47 -07:00
gsxdsm
0171214fb1 chore(release): v0.14.2
Version bump via changesets.
2026-05-01 17:46:40 -07:00
gsxdsm
99ddee0c57 chore(release): v0.14.1
Version bump via changesets.
2026-05-01 16:55:42 -07:00
gsxdsm
8c8c7f5e4f chore(release): v0.14.0
Version bump via changesets.
2026-05-01 16:04:55 -07:00
gsxdsm
2ed88ed797 chore(release): v0.13.0
Version bump via changesets.
2026-05-01 11:28:16 -07:00
gsxdsm
9218c455cf chore(release): v0.12.0
Version bump via changesets.
2026-05-01 07:58:34 -07:00
gsxdsm
bf611f63a4 chore(release): v0.11.0
Version bump via changesets.
2026-04-30 21:44:17 -07:00
gsxdsm
70d97ab4fc chore(release): v0.10.0
Version bump via changesets.
2026-04-30 17:41:33 -07:00
gsxdsm
620049cf15 chore(release): v0.9.4
Version bump via changesets.
2026-04-30 04:45:06 -07:00
gsxdsm
c1c5ba6f43 chore(release): v0.9.3
Version bump via changesets.
2026-04-29 23:20:40 -07:00
gsxdsm
ab1afdc940 chore(release): v0.9.2
Version bump via changesets.
2026-04-29 22:27:14 -07:00
gsxdsm
93b639f6a5 chore(release): v0.9.1
Version bump via changesets.
2026-04-29 16:29:16 -07:00
gsxdsm
3460977be3 chore(release): v0.9.0
Version bump via changesets.
2026-04-29 14:04:09 -07:00
gsxdsm
3672700306 chore(release): v0.8.4
Version bump via changesets.
2026-04-29 08:59:49 -07:00
gsxdsm
d10f33210f chore(release): v0.8.3
Version bump via changesets.
2026-04-28 22:02:56 -07:00
gsxdsm
7a4970e2d6 chore(release): v0.8.2
Version bump via changesets.
2026-04-28 21:51:32 -07:00
gsxdsm
afef995eb7 chore(release): v0.8.1
Version bump via changesets.
2026-04-28 21:15:15 -07:00
gsxdsm
946984a5d0 chore(release): v0.8.0
Version bump via changesets.
2026-04-28 19:24:57 -07:00
gsxdsm
6e2fd5ecb1 chore(release): v0.7.1
Version bump via changesets.
2026-04-28 00:36:24 -07:00
gsxdsm
4149596352 chore(release): v0.7.0
Version bump via changesets.
2026-04-27 22:34:32 -07:00
Fusion
6e65786bc5 fix(plugins): re-export probe symbols + declare plugin deps in dashboard
- Hermes / OpenClaw plugin index.ts now re-export `probeHermesBinary` /
  `probeOpenClawBinary` and their status types so the dashboard's
  `runtime-provider-probes.ts` façade can import them via the public
  package entry instead of deep paths.
- Dashboard `package.json` adds `@fusion-plugin-examples/hermes-runtime`,
  `…/openclaw-runtime`, `…/paperclip-runtime` as workspace deps so
  pnpm symlinks them into `packages/dashboard/node_modules/`. Without
  these, the new probe imports failed with "Cannot find module" during
  `pnpm typecheck`.

This clears 6 of the 9 outstanding typecheck errors. The remaining 3 are
in the in-flight Hermes plugin rewrite (runtime-adapter still imports
from a deleted `./pi-module.js`; the new `index.ts` calls a factory
with the wrong arg type) and should be resolved by the same change set
that landed the rewrite.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 22:17:54 -07:00
gsxdsm
a942b71de6 chore(release): v0.6.0
Version bump via changesets.
2026-04-26 21:27:49 -07:00
gsxdsm
8a6a5ea5eb fix(release): move plugin-sdk's @fusion/core dep out of peerDependencies
The v1.0.0 release-bump misfire (0.4.1 + one minor changeset → 1.0.0
instead of 0.5.0) traced to changesets' assemble-release-plan logic:

  1. getDependencyVersionRanges resolves "workspace:*" to the *exact*
     current version (not a wildcard).
  2. shouldBumpMajor escalates a dependent's bump to "major" whenever
     it has a peerDependency on a package whose new version falls
     outside the resolved range AND the bump is non-patch.
  3. plugin-sdk listed "@fusion/core": "workspace:*" as a peer dep, so
     a minor on @fusion/core (triggered via the fixed group) escalated
     plugin-sdk to major; the fixed group then carried every package
     to 1.0.0.

Both packages are private:true workspace-only — the peer-dep semantic
had no runtime effect, only mis-shaped the changesets dependency graph.
Moving it to "dependencies" makes the determineDependents path fall
into the non-peer branch (caps at "patch", does not escalate), so the
fixed group bumps as intended (verified: 0.5.0 + minor → 0.6.0).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 17:36:56 -07:00
gsxdsm
635dba8cbb chore(release): v0.5.0
Manual version bump to 0.5.0 (changeset version produced 1.0.0 from a
single minor changeset against 0.4.1; that release was rolled back and
the 1.0.0 npm version deprecated).

Aggregates: status terminology refresh (planning/replan), Reviewer
rename, in-review pause behavior, dashboard-tui resize hardening,
dev-server experimental toggle fix, version reporting fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 17:31:46 -07:00
gsxdsm
a1b0bc552c Revert "chore(release): v1.0.0"
This reverts commit 69e7d53bb3.
2026-04-26 17:26:56 -07:00
gsxdsm
69e7d53bb3 chore(release): v1.0.0
Version bump via changesets.
2026-04-26 17:25:49 -07:00
gsxdsm
6a0660262c chore(release): v0.4.1
Version bump via changesets.
2026-04-26 12:24:08 -07:00
gsxdsm
03e82383d4 fix(FN-2586): restore 0.4.x release line and agent log stability 2026-04-26 12:22:06 -07:00
Fusion
b85abfa799 feat(FN-2579): merge fusion/fn-2579 (auto-resolved)
- fix(FN-2579): complete Step 3 — refine split-button accessibility
- fix(FN-2579): resolve workspace lint regression in provider
- test(FN-2579): complete Step 2 — update header engine control tests
- feat(FN-2579): complete Step 1 — style engine split-button dropdown
- feat(FN-2579): complete Step 0 — add engine control split-button behavior
- chore(release): v1.0.0
2026-04-26 00:29:19 -07:00
gsxdsm
e460abfd6d chore(release): v0.3.0
Version bump via changesets (consumed 11 changesets). Forced 0.3.0
instead of changesets' default escalation to 1.0.0 for the pre-1.0
minor bump.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 00:15:09 -07:00
gsxdsm
79d47ddcca chore(release): v0.2.7
Version bump via changesets.
2026-04-25 11:38:48 -07:00
gsxdsm
01f3e70917 chore(release): v0.2.6
Version bump via changesets.
2026-04-25 10:21:52 -07:00
gsxdsm
ad49c32498 feat(tui+release): persist vitest memory guard, aggregate root CHANGELOG, lockstep all packages
TUI: vitest memory-guard threshold and on/off toggle now persist to
global settings (vitestAutoKillEnabled / vitestKillThresholdPct), so
they survive dashboard restarts. Stats panel shows the system-memory
used percentage next to used/free. Utilities panel exposes [+/-] to
adjust the threshold in 5% steps (50–99%).

Release: scripts/release.mjs auto-syncs a root CHANGELOG.md aggregated
from every packages/*/CHANGELOG.md, grouped by version with one
sub-block per package.

Versioning: all private @fusion/* packages joined the changesets fixed
group with the public cli + cli-alias and were aligned to 0.2.5, so
every release bumps every package and produces per-package CHANGELOG
entries that the aggregator picks up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 09:09:31 -07:00
gsxdsm
c0f9260998 feat(dashboard): bearer-token auth with browser persistence + MIT license
Pre-release polish. Two related changes bundled because they both land the
project on public-release footing:

Dashboard auth
- fn dashboard now gates the HTTP API + terminal/badge WebSockets behind a
  bearer token by default. Token resolution order: --token flag,
  FUSION_DASHBOARD_TOKEN env, FUSION_DAEMON_TOKEN env (back-compat), or an
  auto-generated fn_<32 hex>. --no-auth disables. The startup banner prints
  a click-to-open URL with ?token=<token> embedded.
- Auth middleware now also accepts fn_token=<token> as a query-string
  fallback so EventSource and WebSocket clients (which can't set custom
  headers) still authenticate.
- setupTerminalWebSocket / setupBadgeWebSocket now refuse unauthenticated
  upgrades with a proper 401 + socket close.
- Frontend: new auth.ts module captures ?token= off the URL into
  localStorage (key fn.authToken), strips it from the visible URL via
  replaceState, and installs a window.fetch wrapper that injects
  Authorization: Bearer <token> on every same-origin /api/* request.
  EventSource/WebSocket URL builders (api.ts, sse-bus.ts, useTerminal,
  useBadgeWebSocket) route through appendTokenQuery().

MIT license
- LICENSE file at repo root.
- license: "MIT" on root package.json and every packages/*/package.json,
  plus description/bugs metadata on the CLI package.

Docs
- docs/cli-reference.md documents --token / --no-auth / FUSION_DASHBOARD_TOKEN
  and the click-to-open auth flow.
- docs/getting-started.md, docs/docker.md, README.md point at the new flow
  and the CLI reference section.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 20:12:00 -07:00
Fusion
4e85969d56 perf(executor): recover approved steps on engine restart
When the engine restarts mid-step, an in-progress step may have already
passed plan + code review but not yet been flipped to done by the agent's
next task_update call. Previously, the next executor pass re-entered the
step and replayed both reviews — measured at 5-20 min of pure waste per
restart (observed in FN-2215 Step 1 and FN-2207 Step 6).

recoverApprovedStepsOnResume scans the task log for any in-progress step
whose most recent "code review Step N: APPROVE" entry is newer than its
most recent "Step N → pending" transition, and marks those steps done
before execute() runs. Safely skips steps that were reset after approval
(e.g. by a workflow revision) or only received REVISE verdicts.

Called from both the engine-restart path (resumeOrphaned) and the
unpause path, matching the two places the task log shows as vulnerable
to this race.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 20:12:00 -07:00
gsxdsm
0334f09d6f test: reduce default runner noise and contention 2026-04-12 13:41:10 -07:00
gsxdsm
f045c438cd feat(FN-1111): merge fusion/fn-1111 (auto-resolved)
- docs(FN-1111): complete Step 8 - plugin system documentation
- feat(FN-1111): complete Step 7 - testing and build fixes
- feat(FN-1111): complete Step 6 - export plugin types from core
- feat(FN-1111): complete Step 5 - plugin SDK package
- feat(FN-1111): complete Step 4 - plugin loader with lifecycle management
- feat(FN-1111): complete Step 3 - plugin store with CRUD
- feat(FN-1111): complete Step 2 - add plugins table schema migration
- feat(FN-1111): complete Step 1 - plugin type definitions
2026-04-09 14:45:32 -07:00