Skip to content

v2.1.0 — Measured token coverage, honest docs

Choose a tag to compare

@ryan-haver ryan-haver released this 25 Sep 21:03
3479bc7

v2.1.0 measures which tools work with FuseBase's official Gate and Dashboards tokens alone, fixes the silent wrong answers that measurement found, and brings the docs and status dashboard in line with what the tests actually prove.

There are no breaking changes. A few error behaviours changed; see Upgrade notes.

Token-only coverage, measured

The live suites can now run in a coverage mode (LIVE_TOKEN_COVERAGE=1). Every tool call goes first to a second server that has only the tokens and no session cookie. A write counts as working only when the suite reads the data back.

Result: 14 of the 129 tools exercised work with tokens only. The full per-tool results, and which gaps have an official route, are in docs/TOKEN-COVERAGE.md.

  • Work with tokens: workspaces, listing and reading pages and folders, creating pages and folders, appending content, listing databases, isolated SQL stores, and triggering automation flows.
  • Need a session cookie today: database schemas, rows, views and relations; renaming, moving and deleting pages; tasks; comments; tags; members and usage; automations; and most portal tools.

Run the report with npm run coverage:tokens. It replaces org hosts and ids with placeholders, so the output can be published.

Fixed

These tools reported success with wrong data in token mode:

  • list_pages ignored the folder and returned the top-level pages instead.
  • resolve_database_alias answered "not found" when it couldn't read the database list. It now reports the error.
  • get_user_preferences and get_billing_info returned nulls when their requests failed. They now fail when every part fails, and name any failed parts in unavailable.

Two timing-sensitive unit tests no longer fail intermittently on a busy machine.

Honest docs and status

  • Status dashboard: its test figures now come from real runs. test-all records each stage's outcome and counts, and the dashboard publishes only those, replacing the hand-written "passed" suites.
  • fusebase://status resource: reports tool counts, checked against the registry by a unit test. It no longer returns invented assertion totals.
  • README badges and headline claims: "100% parity" and "100% verified" are replaced with what the tests show, as are the token-mode sections in the README, AGENTS.md and the endpoint reference.
  • Wording: docs now describe how the web-app integration was built in neutral terms.

Repository

  • Layout: live suites now live in tests/live/, and the endpoint reference in docs/.
  • New files: LICENSE (MIT), CONTRIBUTING.md, SECURITY.md and CHANGELOG.md.
  • Guides: the FuseBase guides are no longer committed. npm install, npm run guides:fetch and the Docker build download them into .cache/guides.
  • Package metadata: the plugin manifests name the maintainer and describe the server as unofficial, and package.json declares license and engines (Node ≥ 22.12).

Upgrade notes

  • resolve_database_alias returns an error, rather than found: false, when it can't read the database list.
  • get_user_preferences / get_billing_info throw when every underlying request fails. Partial results include unavailable.
  • fusebase://status no longer has totalSuites or passedAssertions.
  • Browser for cookie login: it's no longer downloaded on install. Run npm run setup:browser once if you use scripts/auth.ts or refresh_auth.
  • Guides: after upgrading from a git checkout, run npm install or npm run guides:fetch so the guide tools have their content.

Validation

  • Offline: typecheck, lint, build, 394 unit tests and the tool audit pass.
  • Live: all live suites pass against a sandbox workspace, with every write proven by a fresh read and a clean leftover sweep.
  • CI: Node 22 and 24.

Full changelog: v2.0.0...v2.1.0