Skip to content

About

Terraphim editor components for Nimbalyst. In development; no native package release yet.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Terraphim for Nimbalyst — component development

This repository contains the in-progress components for a Nimbalyst editor that reuses Terraphim's Rust/WASM engine. The development .nimext candidate can be built and inspected; native application qualification and a public package release remain pending.

The components cover UTF-8 file admission, opted-in role storage, local recovery drafts, save/readback control, fresh clean/graph exports and an opaque frame using the released visual editor and graph Worker. Actual browser tests create alternatives, preserve undo/redo, save/reopen annotated Markdown and verify same-concept synonym exports. The parent Save barrier flushes queued frame edits before a verified save or export, including a second Save requested during an existing write. Parent controls provide Save, fresh-file export dialogs with cancellation/focus restoration, and recovery list/copy/explicit-discard even when editing is unavailable. The native React entry assembles these components. Recovery restoration and explicit local role controls are implemented at component level; installed-app acceptance remains in progress.

Run the component tests

Use Node 26.10.0 and npm. On macOS or Linux, or Bash on Windows:

npm ci --ignore-scripts --no-audit --no-fund
export PLAYWRIGHT_BROWSERS_PATH=.cache/browsers
npx --no-install playwright install --with-deps --only-shell chromium
mkdir -p .cache
curl --fail --location --output .cache/editor-candidate.tar.gz https://github.com/terraphim/terraphim-editor/releases/download/v0.1.0-rc.2/editor-candidate.tar.gz
npm run prepare:recovery-assets -- .cache/editor-candidate.tar.gz
npm run typecheck
npm run test:source
npm run test:recovery

The asset importer checks SHA-256 daa104aecdca43df5ca6dcf36b420351be09784a8436ab61bd3fc9acb1504e73 before extracting the archive, then verifies all 132 manifest entries. The tests use real Chromium, IndexedDB, released Rust/WASM and temporary files. Their controller host adapter is a test boundary, not the installed Nimbalyst application.

The visual dependency builder verifies all released files before bundling local Shoelace modules and embedding the exact local font/icon bytes. Editor, graph Worker and Rust/WASM source stay unchanged; no CDN is used by the frame. The resulting source-component manifest is not a released native-package manifest.

The read-only component workflow runs these checks on Linux, macOS and Windows and retains actual logs and saved outputs. It builds and retains a development candidate package without publishing a release. Every supported native app must install the eventual package and produce saved outputs for all 41 acceptance requirements before a release. The native Open action also depends on a supported upstream capability, absent from the inspected released app 0.81.7 and SDK 0.7.1. The adapter still pins SDK 0.7.0. A reviewed source proposal and actual upstream test results are available for review; they are not a shipped host capability. Track the remaining work in NIM-10.

Source and dependencies

src/role-storage.ts and tests/role-storage.browser.test.ts preserve the surviving original component. The remaining component implementation and test harness were reconstructed from the approved design. Historical local recovery records are not part of this source distribution.

  • Editor RC2, source 25ad3b16a1bebab6edd767a7efd1ace7b25c82ad, supplies the test engine. Its 132-file hash manifest is committed; the binary archive is downloaded during CI.
  • vendor/terraphim-host-bridge/ preserves unchanged public bridge source from that same commit, plus its MIT license and provenance. The bridge is a source dependency separate from the release archive.
  • docs/recovery/pinned-contracts/ProjectFileService.ts is unchanged public Nimbalyst source from commit df1aa3beb8cf9b41933b873903abb018fc9d1fc6. Its SHA-256 is checked before transpilation. The adjacent MIT license preserves Nimbalyst's copyright notice.
  • The npm lockfile pins @nimbalyst/extension-sdk 0.7.0, TypeScript 5.9.3, Playwright 1.62.1 and esbuild 0.28.2. The SDK is MIT licensed.

Terraphim code is available under the MIT license. Third-party notices remain next to the vendored code.

Development candidate package

The React entry uses Nimbalyst SDK 0.7.0 and its Vite configuration. It embeds the verified Editor RC2 runtime, Rust/WASM engine and graph worker locally; React is supplied by the host. Only workspace filesystem access is requested. Source, diff and collaborative editing modes remain disabled.

After installing locked dependencies and preparing the verified Editor RC2 assets as described above, run:

npm run test:source
npm run test:recovery
npm run test:native-package
npm run package:candidate -- --output .artifacts/native-package/terraphim-editor-0.1.0-dev.1.nimext

CI runs these checks on Linux, macOS and Windows and retains a development .nimext archive with its file hashes, SDK validation and actual browser output records. Existing archive destinations are refused. The package includes unchanged dependency licences and uses no remote runtime assets.

The compiled-entry browser check creates an alternative, saves and reopens the actual annotated file, then reads the clean Markdown and same-concept synonym graph from disk. This remains component evidence: native Nimbalyst installation, clipboard behavior, recovery restoration, role controls, supported Open, all 41 requirements on three operating systems and release/catalog admission are not yet qualified. No release or marketplace publishing job runs from this component workflow.

Optional external AI

Local knowledge-graph alternatives remain available offline. The native entry connects Nimbalyst’s configured AI service through the supported SDK lifecycle and an explicit per-editor opt-in. External requests are limited to the selection plus its paragraph (2,000 Unicode code points); candidates are previewed before explicit acceptance through the existing Rust provider/history path.

External AI is unavailable in this candidate: no exact host/provider combination has completed live qualification, and SDK 0.7.0 supplies no supported host-version identity. The qualification list remains empty, so the controls cannot send a request. The AI permission exposes the host service; it does not enable requests automatically.

About

Terraphim editor components for Nimbalyst. In development; no native package release yet.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages