Extend the framework
Locate the owning Rust crate or JavaScript package and test the contract at its boundary.
This page does not substitute for an unavailable published version. Check an exact version
- Locale
- en
- Content revision
sha256:52ee1391b5222df17715e7b9bc21918d6e3c4cc17cbae3aba1f0d0ceeb89d608
Use this path for Host, Engine, protocol, Driver, or Execution Adapter
mechanics. Product behavior belongs in a Plugin instead. The Rust main chain
is in LioRael/lenso; JavaScript and
TypeScript distribution sources are in
LioRael/lenso-js. Former split Rust
repositories are migration sources, not places to start a new framework
change.
Tutorial: run one Engine extension
Build a local Engine extension starts from a source-built CLI and a small Site fixture. You will explicitly select a Node processor, inspect its plan without executing it, run it, and verify that a changed locked artifact is rejected. The result is a local Engine resource, not a business Plugin installation or a new runtime target.
Task guide: identify the contract for a framework change
-
Read Core architecture and apply its ownership test to the behavior you want to change.
-
Use the Repository map to find the current crate or package. Read the relevant architecture decision before changing a stable boundary.
-
In a matching
lensosource checkout, run the existing portable runtime conformance suite before editing runtime mechanics:cargo test --locked -p lenso-runtime-conformanceThis checks the existing contract. It does not qualify a new Driver or Adapter by itself.
-
Add a focused failing case at the owning public boundary, implement the change there, then run that case and the applicable real Host or target proof. Do not turn a target-specific failure into a Kernel feature to make one test pass.
The tutorial above covers Engine processor extension. A new target or Adapter still needs its own scoped behavior and conformance evidence.
Choose the right guide
| Change | Next page |
|---|---|
| Driver or Execution Adapter behavior | Drivers and Adapters |
| App resolution or immutable Plan inputs | Project and Plan |
| TypeScript Host authoring | TypeScript Host |
| Capability contract generation | Author a Capability |
The runtime lifecycle explains the portable behavior these extensions must preserve. Use Supported workflows to distinguish a maintained local proof from a released target.