Docs

Documentation

Commercial Compliance Report

This document tracks whether StratoSort Stack is ready for commercial distribution.

Current Decision

Scope Covered

Evidence Artifacts

Risk Summary (Current Snapshot)

Per-Platform Bundling Status

Component Windows macOS Linux
All npm deps + native modules bundled bundled bundled
Vision runtime (llama-server) bundled bundled bundled
Tesseract.js WASM + lang data bundled bundled bundled
FFmpeg (LGPL) bundled bundled (self-hosted build) bundled (BtbN static)
LLM/embedding/vision GGUF models user-fetched at first run user-fetched at first run user-fetched at first run

End-user post-install setup is limited to selecting and downloading model files. No other manual installation steps are required. Linux x64/arm64 dist builds bundle a static LGPL FFmpeg (BtbN); Windows arm64 ships without a bundled FFmpeg (no upstream LGPL build) and falls back to a system ffmpeg on PATH. The PATH fallback also applies when SKIP_FFMPEG_RUNTIME=true.

Required Ongoing Discipline

  1. Keep THIRD_PARTY_NOTICES.md in sync with bundled binaries and dependencies.
  2. Keep assets/runtime/ffmpeg/NOTICE.md source-offer link pointing at the exact build SHA in use.
  3. Run npm run compliance:commercial:verify before each release; the CI gate (npm run ci) already enforces it.
  4. Re-evaluate model catalog additions through commercial-model-licenses.json before exposing them to users.
  5. Monitor Llama 3.2 Additional Commercial Terms (700M MAU threshold) — not a current concern at our scale.

Ongoing Verification

Run:

npm run compliance:commercial:build
npm run compliance:commercial:verify

The verify step fails on high_risk and unknown dependency/model entries that are not explicitly listed in docs/commercial-compliance-waivers.json.


Appendix A: Pre-Release License Audit Process

Before each major release, verify production dependency licenses remain compatible with the intended distribution model.

Regenerate the report

npm run licenses:production

Review the JSON for GPL, AGPL, SSPL, or other strong copyleft terms that may conflict with a commercially licensed distribution of this app. Native addons (sharp, better-sqlite3, node-llama-cpp, @napi-rs/canvas, lz4-napi) often pull MIT/BSD/Apache-style licenses; still confirm transitive packages.

For complete commercial-readiness status (dependencies + models + binaries + waivers), use:

npm run compliance:commercial:build
npm run compliance:commercial:verify

docs/licenses-production.json is gitignored. It is derived from package-lock.json through the same inventory as the compliance gate: every package that is not dev: true, plus the BUNDLED_RENDERER_DEPS closure (scripts/compliance/commercial-compliance-lib.js) that webpack compiles into the renderer bundle despite living in devDependencies. Generate it locally or in CI before each release and review for new copyleft entries. npm run audit:bundled (part of npm run ci) applies the same closure to npm audit, which --omit=dev would otherwise skip.

Standing notes from the 2026-05 review

Appendix B: Third-Party Attribution

For the canonical list of bundled third-party components, their licenses, and attribution text shipped to end users, see THIRD_PARTY_NOTICES.md.

That file is the source of truth and is bundled into the installer via extraResources in electron-builder.json. The in-app "Legal Notices" view loads it at runtime (src/main/ipc/system.js). Do not rename or move it without updating both references.

Edit this page on GitHub