Skip to content

Releases: q5m-ai/paseo-math

Paseo Math 0.1.0-beta.3 — Paseo 0.8 beta

Choose a tag to compare

@ekalvi ekalvi released this 08 Sep 15:38

Compatibility

Targets released Paseo 0.8.0-beta.1 and the 0.8 API line. This release does not support Paseo 0.7; keep v0.1.0-beta.2 on Paseo 0.7.2 until the host is upgraded.

Changes

  • Separate client/server entries and migrate to the released 0.8 plugin SDK.
  • Pin SDK validation to the published beta's exact source revision.
  • Exercise the real stream assembly and client timeline projection path, including one-character chunks and delimiters split across events.
  • Preserve original Markdown/TeX when copying source. The action is labeled Copy source because Paseo may project native Markdown blocks separately; it is not a guarantee of copying an entire multi-block turn.

Verification

  • GitHub CI passed clean install, build, SDK preparation, typecheck, 24 tests, released-runtime smoke, and production-dependency audit (zero vulnerabilities).
  • An isolated published-beta daemon completed a real OMP response in the actual web app. Six inline/display formula images rendered, including aligned equations, subscripts, and literal percentages; all six survived reload.
  • The real clipboard bridge received original Markdown/TeX and completed its write after granting the dedicated browser permission.

Native prose/math block ownership remains controlled by Paseo. This plugin fixes projection within the source blocks supplied by the host, not cross-block regrouping.

Fleet rollout is separate and has not been activated.

Paseo Math 0.1.0-beta.2 — Paseo 0.7.2

Pre-release

Choose a tag to compare

@ekalvi ekalvi released this 07 Sep 23:33

Paseo 0.7.2 compatibility

This prerelease supersedes beta.1 and targets the actual released Paseo 0.7.2 plugin API. A daemon/client upgrade or Paseo fork is not required. The earlier blanket statement that math plugins required 0.8 was incorrect: 0.7.2 already supports completed-message timeline contributions. We will revisit live-stream rendering once 0.8 stabilizes.

Behavior

Assistant text streams normally through Paseo's native renderer. Math rendering applies when completed messages enter the timeline, including history. This version deliberately does not render formulas during live text deltas. Ordinary Markdown, currencies, code/link boundaries, original-message copy, invalid/offline source fallback, macro isolation, and text-percent handling remain intact.

Install from Git

On the chosen 0.7.2 host, open Settings → host → Plugins and enable plugins if needed. Plugins are trusted, unsandboxed code with host access; enable them only if you trust this repository and its dependencies.

paseo plugin add q5m-ai/paseo-math --ref v0.1.0-beta.2
paseo plugin status

If an older q5m-math installation exists, remove that installation first with paseo plugin remove q5m-math, then add the selected release. Removing a directory-source installation does not delete its checkout. The Git install runs npm ci and npm run build automatically. SDK preparation is needed only for contributor smoke checks, not installation.

Use an existing contributor worktree

Run from your plugin checkout:

git pull --ff-only origin main
npm ci --include=dev
npm run build
npm run typecheck
npm test
paseo plugin install "$PWD"
paseo plugin status

For subsequent source edits, rebuild with npm run build, then paseo plugin reload q5m-math. Keep using the same worktree; its dependencies and generated assets persist.

Compiler/RPC smoke checks

A fresh worktree uses:

npm run sdk
npm run smoke

If .paseo-sdk was already prepared for beta.1, switch that isolated SDK checkout to the released revision first:

git -C .paseo-sdk fetch origin 9400a49af670fdb5db4af58e73f8df98588dbea9
git -C .paseo-sdk checkout --detach 9400a49af670fdb5db4af58e73f8df98588dbea9
npm run sdk
npm run smoke

There is no force checkout: stop and preserve any local SDK changes if Git reports a conflict. This checkout is developer tooling, not your installed Paseo daemon.

Compatibility changes

  • One index.ts contribution, split into client/server bundles by the released compiler.
  • Released PluginContext API with host-owned registration cleanup.
  • Completed-message data contains text only; no unreleased phase field.
  • Strict 0.7.2 manifest accepts id/build; it does not support a Paseo requirements field.
  • Plain-function renderer registration as required by the released app.
  • Clipboard support uses the browser API or React Native Clipboard exposed by the released host, rather than the newer host copyText helper.

Verification and limits

  • 24 passing tests; typechecking against the released npm SDK.
  • Genuine upstream 0.7.2 SDK/compiler checkout, including manifest acceptance, compiled client registration, actual released timeline projection, lifecycle cleanup, and real compiled-server PNG/error RPC checks.
  • Plugin loaded and reported running in an isolated installed daemon; actual catalog bundle and subprocess RPC exercised through a browser probe. Light/dark rendering, mobile-width scrolling, percentage rendering, and original-message clipboard copy verified visually and interactively.
  • Zero production dependency vulnerabilities reported by npm audit --omit=dev during preparation.
  • Native Android remains untested on a device. The implementation uses React Native Image; formulas are PNGs, not selectable vector text. Browser probing is not claimed as Android or real-provider chat verification.

Only isolated temporary validation instances were started. Existing fleet daemons were not upgraded, restarted, or configured.

Paseo Math 0.1.0-beta.1

Pre-release

Choose a tag to compare

@ekalvi ekalvi released this 07 Sep 19:44

Paseo math timeline plugin

Standalone Apache-2.0 plugin for the upcoming Paseo 0.8 timeline API. No Paseo fork or custom native module is required.

Compatibility and installation

This prerelease targets the upcoming 0.8 API, not Paseo 0.7.x. The actual SDK and plugin compiler were validated at getpaseo/paseo commit c43df5d4c398571f62584b4ad5a629b5fd3b4599. The manifest permits >=0.8.0-beta.1 <0.9.0; later upstream API changes will require compatibility retesting. Both the daemon and clients must support that plugin API. Do not install this on a 0.7.x fleet.

Once running a compatible version with plugins enabled:

paseo plugin add q5m-ai/paseo-math --ref v0.1.0-beta.1

Plugin ID: q5m-math. Git installation runs npm ci and npm run build. As with other Paseo plugins, this is trusted code, not a sandboxed extension: review it before enabling it.

Rendering

  • Assistant-message math: $...$, $$...$$, \(...\), \[...\], and fenced math blocks.
  • The daemon typesets with MathJax and rasterizes with resvg WASM. Clients receive PNGs over plugin RPC. There is no third-party rendering service or formula network fetch.
  • Uses ordinary React Native Image, including a stock-native-client implementation path rather than a web-only renderer. Android has NOT been device-tested; browser testing is not claimed as native-device verification.
  • Preserves ordinary Markdown, code and link boundaries, currencies, emphasis, streaming source fallback, and original-message copy. Formulas are raster images, not selectable vector text. Wide display formulas scroll without widening the message.
  • Incomplete, invalid, unsupported, oversized, or unavailable formulas remain readable source. An uncached formula needs a live daemon. Results and pending work are bounded; formulas are limited to 4,096 characters and 2,048 × 1,024 logical pixels.

Regression history carried forward

Synthetic tests preserve lessons from q5m's prior LaTeX fixes: signed/decimal/adjacent currency, star subscripts versus Markdown emphasis, code/link boundaries, entity and escape handling, text-family percent signs versus actual TeX comments, isolated macros, border-free boxed presentation, and incomplete streaming delimiters. No private q5m-platform source or fixtures are included. Public Paseo proposal and Markdown-key adaptation attribution is in NOTICE.

The final visual pass also exposed and fixed literal backslashes before percent signs inside text macros. Its PNG-equivalence regression fails before the fix and passes afterward.

Verification

  • Clean npm installation and portable asset build.
  • Strict typechecking against the pinned, genuinely built upstream SDK.
  • 24 passing parser, cache, and real-rasterization tests.
  • Actual pinned Paseo compiler builds both entrypoints; compiled server RPC renders a PNG and rejects invalid TeX in the standalone smoke harness.
  • Actual compiled client and server exercised in a local React Native Web harness: light/dark themes, mobile-width layout, streaming completion, source copy, and formula fallback. This is not a claim of end-to-end testing inside a running Paseo daemon or on an Android device.
  • Zero production dependency vulnerabilities reported by npm audit --omit=dev at release preparation.
  • Public CI reproduces install, build, SDK build, typecheck, tests, compiler/RPC smoke, and production audit.

No existing fleet Paseo installation was modified or upgraded.