From 7c46a7ca5bccf14404d3d2157a6302a6244cffbb Mon Sep 17 00:00:00 2001 From: LioRael Date: Mon, 29 Jun 2026 18:05:17 +0800 Subject: [PATCH] docs: add V11 module release examples --- README.md | 8 ++++++-- examples/support-ticket/README.md | 16 +++++++++++++--- examples/support-ticket/lenso.module.json | 13 +++++++++++++ .../support-knowledge-base.module-release.json | 13 +++++++++++++ .../support-notification.module-release.json | 13 +++++++++++++ 5 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 examples/support-ticket/lenso.module.json create mode 100644 examples/support-ticket/support-knowledge-base.module-release.json create mode 100644 examples/support-ticket/support-notification.module-release.json diff --git a/README.md b/README.md index 23c5a73..5eaceb7 100644 --- a/README.md +++ b/README.md @@ -106,8 +106,12 @@ The example README includes the matching `lenso service check`, install, diff, upgrade preview, rollback preview, and deployment export commands. The Rust and TypeScript examples intentionally expose the same service contract -shape: a remote process provides one or more modules, while the Host owns auth, -runtime queues, retries, outbox, and observability. +shape: a service process provides one or more independently installed modules, +while the Host owns auth, runtime queues, retries, outbox, and observability. +V11 examples keep `lenso.module.v1` module contracts next to +`lenso.module-release.v1` release artifacts so module install remains the +business-capability entrypoint and service install remains the provider/process +entrypoint. The V8 proof path uses service operation metadata and checks across both TS services and the Rust Axum provider, including safe HTTP probes and runtime function declarations. diff --git a/examples/support-ticket/README.md b/examples/support-ticket/README.md index 5e4d5aa..56d0a5f 100644 --- a/examples/support-ticket/README.md +++ b/examples/support-ticket/README.md @@ -30,7 +30,8 @@ pnpm --filter @lenso/example-support-ticket smoke ``` Package the running service manifest for handoff. This writes the service -package and one module release artifact per provided module: +package, one module contract, and one module release artifact per provided +module: ```sh pnpm service-package:support-ticket @@ -43,7 +44,7 @@ lenso service install dist/lenso-service/support-suite-provider/lenso.service-pa --base-url http://127.0.0.1:4110/lenso/service/v1 ``` -Install the business module through the generated V10 module release artifact: +Install one business module through the generated module release artifact: ```sh lenso module release inspect dist/lenso-service/support-suite-provider/modules/support-ticket/lenso.module-release.json @@ -63,7 +64,16 @@ lenso service doctor support-suite-provider --json ``` `examples/support-ticket/lenso.module-release.json` is kept as a local dev -shortcut that points at the running provider manifest. +shortcut that points at the running provider manifest. V11 also keeps +`examples/support-ticket/lenso.module.json` as the standalone module contract: +it names the business capability before provider/release concerns. Sibling +module release shortcuts show that the same provider can be installed once +while modules remain independent install targets: + +```sh +lenso module install examples/support-ticket/support-notification.module-release.json +lenso module install examples/support-ticket/support-knowledge-base.module-release.json +``` Restart the API and worker after install. Open `/console` and check Modules: diff --git a/examples/support-ticket/lenso.module.json b/examples/support-ticket/lenso.module.json new file mode 100644 index 0000000..15aafbc --- /dev/null +++ b/examples/support-ticket/lenso.module.json @@ -0,0 +1,13 @@ +{ + "protocol": "lenso.module.v1", + "name": "support-ticket", + "version": "0.1.0", + "source": "service", + "summary": "Ticket intake, triage, and operations", + "capabilities": [ + "support_ticket.tickets.read", + "support_ticket.tickets.write", + "support_ticket.tickets.escalate" + ], + "dependencies": [] +} diff --git a/examples/support-ticket/support-knowledge-base.module-release.json b/examples/support-ticket/support-knowledge-base.module-release.json new file mode 100644 index 0000000..175a41e --- /dev/null +++ b/examples/support-ticket/support-knowledge-base.module-release.json @@ -0,0 +1,13 @@ +{ + "protocol": "lenso.module-release.v1", + "name": "support-knowledge-base", + "version": "0.1.0", + "source": "service", + "summary": "Support knowledge-base article lookups", + "provider": { + "name": "support-suite-provider", + "serviceManifest": "http://127.0.0.1:4110/lenso/service/v1/manifest" + }, + "capabilities": ["support_ticket.knowledge.read"], + "dependencies": [] +} diff --git a/examples/support-ticket/support-notification.module-release.json b/examples/support-ticket/support-notification.module-release.json new file mode 100644 index 0000000..037c414 --- /dev/null +++ b/examples/support-ticket/support-notification.module-release.json @@ -0,0 +1,13 @@ +{ + "protocol": "lenso.module-release.v1", + "name": "support-notification", + "version": "0.1.0", + "source": "service", + "summary": "Ticket notification runtime functions", + "provider": { + "name": "support-suite-provider", + "serviceManifest": "http://127.0.0.1:4110/lenso/service/v1/manifest" + }, + "capabilities": ["support_ticket.notifications.send"], + "dependencies": ["support-ticket"] +}