|
| 1 | +# CellScript 0.22 Release Notes |
| 2 | + |
| 3 | +**Status**: Stable release notes for CellScript 0.22.0. |
| 4 | + |
| 5 | +**Updated**: 2026-07-21. |
| 6 | + |
| 7 | +CellScript 0.22 extends the typed language and evidence model while tightening |
| 8 | +the CLI, diagnostics, LSP, and bounded Fiber interoperability path. The release |
| 9 | +keeps CKB's Cell model and evidence boundaries explicit: compiler success is |
| 10 | +not a production or live-chain claim. |
| 11 | + |
| 12 | +## CLI And Diagnostics |
| 13 | + |
| 14 | +`--json` is the single public machine-output switch. Success and failure emit |
| 15 | +exactly one JSON document on stdout; the hidden `--message-format=json` spelling |
| 16 | +remains only for compatibility. Public help and `cellc --list` show the |
| 17 | +canonical nested command tree. |
| 18 | + |
| 19 | +Backend diagnostics use stable `E2xxx` codes. JSON diagnostics include code, |
| 20 | +name, description, and recovery hint; `cellc explain E2202 --json` exposes the |
| 21 | +same registry. LSP diagnostics carry the standard `code` field and a |
| 22 | +`codeDescription` link. VM and simulator `cellc run --json` results now share |
| 23 | +one schema, with unavailable `cycles` or `steps` represented as `null`. |
| 24 | + |
| 25 | +## Typed 0.22 Language Surface |
| 26 | + |
| 27 | +The 0.22 line adds: |
| 28 | + |
| 29 | +- checked casts, transitive callable effects, initial/terminal flow evidence, |
| 30 | + typed aggregate targets, and a six-tier ProofPlan evidence taxonomy; |
| 31 | +- typed read-only transaction handles such as `InputView<T>`, `OutputView<T>`, |
| 32 | + `CellDepView`, `HeaderDepView`, and `WitnessArgsView`; |
| 33 | +- finite `forall` and `count(...)` invariant quantification over closed source |
| 34 | + views; |
| 35 | +- source-aware `BoundedCellSet<T, N>` and witness/static |
| 36 | + `BoundedList<T, N>` contracts with `consume_each` and `create_each`; |
| 37 | +- a closed capability algebra with explicit entailment evidence; |
| 38 | +- concrete fixed-width payload enums with exhaustive matching and bounded ABI |
| 39 | + support; |
| 40 | +- canonical type `validity` blocks, including the explicit |
| 41 | + builder-evidence boundary for `env::block_number()`; |
| 42 | +- compile-time-only `borrow root as view { ... }` regions; |
| 43 | +- deterministic participant-role attribution in ProtocolGraph metadata. |
| 44 | + |
| 45 | +Unsupported dynamic, recursive, generic, unbounded, or authority-ambiguous |
| 46 | +forms remain rejected or explicitly recorded as deferred/runtime-required. |
| 47 | + |
| 48 | +## Metadata Schema 55 |
| 49 | + |
| 50 | +Current artifacts emit compile metadata schema 55. It carries the 0.22 |
| 51 | +callable/flow evidence, transaction-view handles, bounded collections, |
| 52 | +capability proofs, enum layouts, protocol-role candidates, validity predicates, |
| 53 | +borrow regions, and the bounded Fiber compatibility contract. Source, artifact, |
| 54 | +and constraints sub-schemas retain their own version fields. |
| 55 | + |
| 56 | +Consumers must compare the emitted version rather than assuming that an older |
| 57 | +schema number remains current. Historical release documents may still name the |
| 58 | +schema in which a field first appeared. |
| 59 | + |
| 60 | +## Bounded Fiber Interoperability |
| 61 | + |
| 62 | +The separate `cellscript-fiber-adapter` crate derives a dedicated |
| 63 | +`fungible-type-group-v1` artifact and native Fiber UDT configuration from typed |
| 64 | +compiler, deployment, live-cell, and node evidence. It does not add a Fiber |
| 65 | +target profile or depend on `fiber-lib`. |
| 66 | + |
| 67 | +The path is deliberately narrow: exact 16-byte little-endian `u128` Cell data, |
| 68 | +full Type Script group conservation, and closed issuance/destruction authority |
| 69 | +formats. Local-devnet scenarios cover bounded multi-hop payment and watchtower |
| 70 | +force-close flows. The clean pinned full lifecycle/negative matrix remains |
| 71 | +pending, so 0.22 does not claim production-ready Fiber interoperability. |
| 72 | + |
| 73 | +See `examples/fiber/README.md` for the operator workflow and examples. |
| 74 | + |
| 75 | +## Editor And Agent Tooling |
| 76 | + |
| 77 | +The VS Code extension is maintained as the |
| 78 | +`editors/vscode-cellscript` submodule. The 0.22 extension release adds grammar |
| 79 | +and snippet coverage for the new language forms while continuing to delegate |
| 80 | +semantic diagnostics and reports to `cellc`. |
| 81 | + |
| 82 | +`cellscript-mcp` adds bounded 0.22 language, Fiber interoperability, and roadmap |
| 83 | +documentation topics. MCP remains read-only and does not become a second |
| 84 | +compiler, builder, or deployment client. |
| 85 | + |
| 86 | +## Deferred And External Evidence |
| 87 | + |
| 88 | +The following remain outside a compiler-only 0.22 claim: |
| 89 | + |
| 90 | +- production Fiber readiness without the pinned external lifecycle matrix; |
| 91 | +- builder, capacity, tx-pool, commit, and live-chain evidence represented by |
| 92 | + non-compiler ProofPlan tiers; |
| 93 | +- dynamic/generic payload ADTs and unbounded collection iteration; |
| 94 | +- transaction-view reads inside type validity predicates; |
| 95 | +- consensus-checked TemplateLayout commitments and canonical AST/IR receipt |
| 96 | + hashes. |
| 97 | + |
| 98 | +## Validation Boundary |
| 99 | + |
| 100 | +Routine local work: |
| 101 | + |
| 102 | +```bash |
| 103 | +./scripts/cellscript_gate.sh dev |
| 104 | +``` |
| 105 | + |
| 106 | +Merge readiness: |
| 107 | + |
| 108 | +```bash |
| 109 | +./scripts/cellscript_gate.sh ci |
| 110 | +``` |
| 111 | + |
| 112 | +Backend changes: |
| 113 | + |
| 114 | +```bash |
| 115 | +./scripts/cellscript_gate.sh backend |
| 116 | +``` |
| 117 | + |
| 118 | +Production-facing release claims still require the release gate and its |
| 119 | +external CKB/Fiber evidence dependencies. |
0 commit comments