Skip to main content

status


id: "status" slug: "status" title: "Ecosystem status" description: "Live status of every .curt consumer, rendered from the machine-readable capabilities tracker at build time."​

Ecosystem status

Rendered from capabilities.json — the single source of truth, regenerated on every site build. Last audit 2026-10-17; tracker format version 1; spec revision curt-format@1.2.0. Reference conformance: L1+L2+L3+L4.

Consumers (11)​

ConsumerPkgR/WDependencyConformanceEvidence date
curt-openwithviewer/curt-format.js (hand-rolled, unversioned)Rhand-rollednot audited2026-11-01
curtiscurtis@1.0.0R + Wvendorednot audited2026-10-17
curtis-ai-chat-portercurtis-ai-porter@1.0.0R + Wvendorednot audited2026-10-17
curtis-webcurtis-web (private monorepo), generator stamps curtis-web@0.1.0Whand-rollednot audited2026-10-17
curtis-cloud@curtisai/shared@0.1.2R + Wvendorednot audited2026-10-17
curtis-ai-techstatic site (public/porter-app.html inline app)R + Winlinenot audited2026-10-17
tractumtractum@0.5.0R + Wnativenot audited2026-10-17
curt-vconcurt-vcon@1.0.1 (npm 2026-11-01)R + Wnpmnot audited2026-11-01
curt-convertcurt-convert@1.0.2 (npm 2026-11-01)Wnpmnot audited2026-11-01
curt-wildchatcurt-wildchat@1.0.2 (npm 2026-11-01)Wnpmnot audited2026-11-01
curt-openwebuicurt-openwebui-export@1.0.0 (unpublished) + pipelines/curt_export_pipeline.py v0.1.0 (draft)Wnpm + hand-rollednot audited2026-11-01

Entries without an explicit evidenceDate predate that field; their evidence date is the tracker's lastAudited date.

Conformance notes​

  • curt-openwith — Docs-reconcile addition 2026-11-01, no code audit run — port claims verified only against the source comments, not vectors or a test suite.
  • curtis — Fails L1 by the letter: parseCurt has no BOM tolerance. Naming divergent (L2 fail).
  • curtis-ai-chat-porter — L1 pass-in-practice but fails by the letter (BOM stripped incidentally by TextDecoder, not parseCurt). L2 fail (own sanitizer).
  • curtis-web — No reader exists; L1 untestable. Write-side conforms (verbatim envelope, generator stamped). L2 fail (title-only filenames).
  • curtis-cloud — Fails L1: no BOM tolerance, drops top-level envelope extras.
  • curtis-ai-tech — L1 pass-in-practice via porter-derived path; fails by the letter. L2 fail.
  • tractum — Not yet run against conformance/ vectors (Python vs TS runner); validate_curt covers L1+L2 envelope+naming rules by construction. Audit pending.
  • curt-vcon — Not run against conformance/ vectors. All v1 parsing/serialization is the reference implementation's by construction (single dependency, no vendored copy); the bridge's own lossy mapping is covered by 18 tests (pass 2026-11-01).
  • curt-convert — Not run against conformance/ vectors. As a writer, L1 parse rules apply only via its self-check (parseCurt on every body before it is written). Validated 2026-11-01 against the author's full real-session corpus: 1168/1168 transcripts converted, 0 self-check failures, exit 0. Re-validated 2026-11-01 after the bulk collision fix: 1169/1169 transcripts (corpus grew by one), 1169 distinct output filenames, 0 self-check failures, identical file lists across two runs.
  • curt-wildchat — Not run against conformance/ vectors. L3-style bulk artifact: CONFORMANCE-1K corpus run — 1000 records → 995 files, 100% independent re-parse, 1.126× envelope overhead. 17 tests pass 2026-11-01.
  • curt-openwebui — Not run against conformance/ vectors. TS side validated by 15 tests incl. a fixture round-trip through reference parseCurt (pass 2026-11-01). Python side: own validator mirrors the v1 structural rules; cross-validated 2026-11-01 — a pipeline-written .curt body parses valid in the reference JS parseCurt (ad-hoc cross-check, not a vector run). The pipeline itself is draft: never exercised in a live Open WebUI pipelines runtime.

Out of ecosystem (8)​

No .curt references; one grep to confirm still-out.

  • curtis-compliance — no .curt references
  • curtis-console — no .curt references
  • curtis-os — no .curt references (old pre-rename monorepo)
  • curtis-ai-chat-zed — no .curt references
  • curtis-ai-symphony — no .curt references
  • curtis-ai-crm — no .curt references
  • curtis-ai-browser — no .curt references
  • curtis-ai-theme — no .curt references

Ecosystem findings​

  • ZERO consumers depend on the npm curt-format package — all five implement or vendor their own copy of the rules.
  • Only the dot_curt reference implements the 1.1.0 BOM rule; every consumer fails a BOM-prefixed file (porter only by accident of TextDecoder).
  • Nobody implements the documented curtFilename naming convention — three different sanitizers, none matching SPEC.md.
  • All copies are v1-strict on parse, which is the spec's most load-bearing rule — that part has held.
  • Version lineage is broken: porter's oracle pins curtis-ai-chat v2.0.1 (1c7a19f) but that repo now self-identifies as curtis@1.0.0.
  • 2026-11-01: the first npm-dependency consumers exist — curt-vcon, curt-convert, and curt-openwebui (TS side) depend on curt-format@1.2.0 instead of vendoring the rules. The zero-dependency finding above still holds for the five original consumers.
  • 2026-11-01: all three new consumers are same-author (JordanNewell) local builds — none published to GitHub or npm. Same-author emissions do not promote draft extensions: curt-convert's tool-linkage emission keeps the extension at draft (stable requires two independent implementations).
  • 2026-11-01 (publish day, supersedes the previous finding's publication half): curt-vcon@1.0.1, curt-convert@1.0.2, and curt-wildchat@1.0.2 are live on npm; curt-vcon, curt-convert, curt-wildchat, and curt-openwith are public GitHub repos (Gitea-SSOT + GH mirror). curt-openwebui remains local/unpublished. Same-author rule unchanged: draft extensions stay draft.