@calltelemetry/ct-lab-mcp 0.8.130 → 0.8.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -95,7 +95,7 @@ than use the legacy Node VMID/name slot state when the bridge is unavailable.
95
95
  before publishers, and refuses active claims, partial discovery, identity
96
96
  drift, or clustered Proxmox. Force host
97
97
  power-off is not implemented.
98
- - **Claimed-Guest Appliance Update**: `appliance_update` is a thin canonical bridge for `lab-inventory vm update`: dry-run by default, apply requires `confirmAssetId` equal to `assetId`, an active lease, a `calltelemetry-lab-claim/v1` claim file authorizing `appliance-update`, and an exact release version. The older in-guest `appliance_exec` shared-login flow is retired; use `appliance_update` for updates, `uat_access` for governed web access, and `lab-inventory vm ssh` (run from a lab-LAN host such as the `ct-uat-proxmox` runner) for operator shell access.
98
+ - **Claimed-Guest Appliance Update**: `appliance_update` is a thin canonical bridge for `lab-inventory vm update`: dry-run by default, apply requires `confirmAssetId` equal to `assetId`, an active lease, a `calltelemetry-lab-claim/v1` claim file authorizing `appliance-update`, and an exact release version. The older in-guest `appliance_exec` shared-login flow is retired; use `appliance_update` for updates, `uat_access` for governed web access, and `lab-inventory vm ssh` (run from an operator machine or a lab-LAN host; the `ct-uat-proxmox` runner is retired as a load driver) for operator shell access.
99
99
  - **Leased Remote Development**: `lab_dev` is a canonical-only façade for the `ct-local-dev-v1` profile. It supports strict `doctor`, `plan`, `prepare`, `start`, `status`, `sync`, `stop`, and `cleanup` actions bound to one asset, lease, Linear issue, operation ID, and reviewed receipt chain. It accepts no guest commands, remote paths, or mock fallback.
100
100
  - **Claim custody annotation** (REL-1746; slots and reservation Leases are retired): Proxmox claim creation requires the actual canonical node, explicit VMID and VM name in `ct-lab`, with a finite TTL. The original-owner record lives on the claim itself as annotation `calltelemetry.com/claim-custody` (`claim-custody/v1`: guest tuple, phase, operation nonce, creation-request hash, context, provider binding), written in the same single create call as the claim. No Lease is ever created, renewed or required; per-guest serialization is in-process keyed by node and VMID, and the existing claim-occupancy scan plus the claim UID/resourceVersion protect against other actors. Whole effective immutable CRD fields and creation labels are rehashed on retry and deletion; only the declared lifecycle fields and stale label can change. A matching name alone grants no custody. Claims created before the retirement still carry a `ct-physical-slot-reservation.*` Lease: the MCP verifies them read-only (reporting `custody.source: "legacy-lease"`, `migration: "operator-pending"`) and the appliance operator converts them into the annotation; the MCP never writes a Lease.
101
101
  - **One configured Kubernetes claim backend**: ApplianceClaim CRUD and read-only legacy reservation Lease reads share one backend resolver. Local stdio deployments must set an absolute `LAB_CLAIM_KUBECONFIG`, the exact `LAB_CLAIM_K8S_CONTEXT`, and an HTTPS-origin `LAB_CLAIM_K8S_SERVER`; the selected kubeconfig is validated against that server before a request. In-cluster deployments must set the context/server and provide the service-account token and CA for that same cluster. Cross-cluster deployments use the explicit kubeconfig path. The process never falls back to `KUBECONFIG`, `~/.kube/config`, or an embedded server, and a missing or mismatched binding is refused before any claim effect. The container image is published to Docker Hub by the Docker Build and Publish workflow, which only builds and pushes; it does not edit any cluster manifest. ct-lab-mcp is not Flux-deployed, and the retired DOKS cluster is no longer a target.
@@ -704,7 +704,7 @@ Apply the same request after reviewing the plan:
704
704
  The fixed argv is `vm update --asset-id <assetId> --version <version> --claim-file <claimFile> [--resume-installed] [--apply --confirm-asset-id <assetId>]`. No shell command, host, credential or bundle pinning option (`--bundle-sha256`) is accepted.
705
705
 
706
706
  ### `appliance_exec` (retired)
707
- `appliance_exec` and the other in-guest tools (shared-login SSH on port 2222) are retired and answer `CANONICAL_PHYSICAL_SLOT_AUTHORITY_REQUIRED`. Supported paths: `appliance_update` (release updates), `uat_access` (governed runtime web access), and `lab-inventory vm ssh` for operator shell access, run from a lab-LAN host or the `ct-uat-proxmox` runner.
707
+ `appliance_exec` and the other in-guest tools (shared-login SSH on port 2222) are retired and answer `CANONICAL_PHYSICAL_SLOT_AUTHORITY_REQUIRED`. Supported paths: `appliance_update` (release updates), `uat_access` (governed runtime web access), and `lab-inventory vm ssh` for operator shell access, run from an operator machine or a lab-LAN host (the `ct-uat-proxmox` runner is retired as a load driver).
708
708
 
709
709
  ---
710
710
 
@@ -2,5 +2,5 @@
2
2
  * Auto-synced package version fallback for non-filesystem runtimes (Cloudflare Workers).
3
3
  * Updated automatically during release publication in .github/workflows/publish.yml.
4
4
  */
5
- export declare const PACKAGE_VERSION = "0.8.130";
5
+ export declare const PACKAGE_VERSION = "0.8.131";
6
6
  //# sourceMappingURL=generated-version.d.ts.map
@@ -2,5 +2,5 @@
2
2
  * Auto-synced package version fallback for non-filesystem runtimes (Cloudflare Workers).
3
3
  * Updated automatically during release publication in .github/workflows/publish.yml.
4
4
  */
5
- export const PACKAGE_VERSION = "0.8.130";
5
+ export const PACKAGE_VERSION = "0.8.131";
6
6
  //# sourceMappingURL=generated-version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calltelemetry/ct-lab-mcp",
3
- "version": "0.8.130",
3
+ "version": "0.8.131",
4
4
  "description": "Expanded Model Context Protocol (MCP) server for Call Telemetry lab, fleet, and appliance management across Proxmox VE (ESXi is retired).",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",