diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 15dfa78..d52287b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,9 +67,13 @@ jobs: exit 0 fi cat > "$RUNNER_TEMP/notes.md" <<'NOTES' - macOS Cargo integration for a Lithe preview with API 3 buildSystems 2, settings 2, buildProviders 1 and serverProcess 1 support. + macOS Cargo integration for a Lithe preview with API 3 buildSystems 1, executableResolution 1, settings 2, buildProviders 1, serverProcess 1 and structured plugin diagnostics (litheLogging 1). Stable Lithe 0.6.7 does not offer litheLogging 1 and cannot start this version; keep using 0.1.1 there. - Adds a native Cargo executable path setting: select a file or leave it empty for discovery. Metadata, builds, tests, run and clean share the selected executable; an invalid selection fails instead of falling back. Requires Cargo 1.70+ and Node.js 20.3+. Existing workspace/package tasks and Release, Features and Offline options remain available. + Changes in 0.1.2: + - Structured diagnostics: the bundled Node SDK records one INFO for each successful metadata request and one ERROR for each failure on the plugins/io.github.lithe-idea.cargo-build/host channel of Lithe's log window, with duration and a stable failure code. Cargo output, metadata JSON, source and environment values never enter the log. The duplicate raw stderr and JSON error logging is removed. + - The Cargo path setting becomes the first of the host's ordered executable candidates (executableResolution 1), ahead of PATH discovery. A missing, non-executable or too-old selection still fails instead of falling back. + + Requires Cargo 1.70+ and Node.js 20.3+. Not listed in Lithe Store yet; download the ZIP and install it from disk. Preview status: automated integration and contract checks pass; native installation and full UI acceptance are pending. Windows is not supported. Published ZIP bytes must not be replaced. NOTES diff --git a/README.md b/README.md index 12d7d61..fd2d9ad 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,12 @@ Cargo is a community build plugin for Lithe. It uses Lithe's native Cargo tool window and Build Output to build, check, test, clean, and run Rust projects. -**0.1.2 is unreleased preview source.** Native disk-installation and full UI acceptance +**0.1.2 is a preview release.** Native disk-installation and full UI acceptance are still pending. Automated integration and host compatibility run in this repository's CI. The plugin requires a Lithe preview with API 3 `buildSystems: 1`, `executableResolution: 1`, `settings: 2`, -`buildProviders: 1` and `serverProcess: 1`. Windows is not supported yet. +`buildProviders: 1`, `serverProcess: 1` and structured plugin diagnostics (`litheLogging: 1`). +Stable Lithe 0.6.7 does not offer `litheLogging: 1` and cannot start 0.1.2. Windows is not supported yet. ## Install @@ -15,14 +16,13 @@ Install Rust/Cargo 1.70+ and Node.js 20.3+ first. Node runs the metadata provide Cargo and rust-analyzer are not bundled. Existing Rust language intelligence continues to use Lithe's Rust language service. -For this branch, build `dist/cargo-build-0.1.2-darwin.zip` with `node scripts/package.mjs`. -The published 0.1.1 preview remains available from [Releases](https://github.com/Lithe-IDEA/lithe-plugin-cargo/releases) -and keeps its older host requirements. +Download `cargo-build-0.1.2-darwin.zip` from [Releases](https://github.com/Lithe-IDEA/lithe-plugin-cargo/releases). +Hosts without `litheLogging: 1` can keep using the 0.1.1 preview, which keeps its older host requirements. In Lithe, choose Settings → Plugins → Install from Disk, select the ZIP, review Cargo/Node and its permissions, and restart. Enable Cargo, open the Cargo workspace root, then open the Cargo tool window and load the project model. -After the [Lithe Store](https://github.com/Lithe-IDEA/Lithe-store) entry is merged, -compatible preview builds can also install it from the plugin marketplace. +0.1.2 is not listed in [Lithe Store](https://github.com/Lithe-IDEA/Lithe-store) yet: the Store cannot +tell stable hosts without `litheLogging: 1` apart, so install it from disk. ## Cargo path @@ -34,7 +34,7 @@ same executable. A missing, non-executable or too-old selection fails visibly instead of silently choosing a different Cargo installation. The executable's parent directory is placed first on PATH for companion tools. -Version 0.1.2 requires a preview host with `buildSystems: 1`, `executableResolution: 1` and `settings: 2`. +Version 0.1.2 requires a preview host with `buildSystems: 1`, `executableResolution: 1`, `settings: 2` and `litheLogging: 1`. Its exact tested host revision is recorded in `sdk.lock.json`; older hosts keep using the compatible 0.1.0 release through the Store. Existing published ZIPs are immutable and are never replaced. @@ -60,7 +60,7 @@ members or target sources outside the selected build root are refused. The host' ## Diagnostic logs -This branch requires a host offering `litheLogging: 1`. The vendored official +Version 0.1.2 requires a host offering `litheLogging: 1`. The vendored official Node SDK sends typed `lithe/log` notifications to the host's v2 catalog and writer, in the current session's `plugins/io.github.lithe-idea.cargo-build/host` channel. The SDK records one @@ -148,7 +148,7 @@ Published ZIP bytes are immutable: fixes require a new version. The Store index records the repository URL, API requirements, release URL and archive SHA-256. First inclusion and pre-releases use a reviewed Store pull request. -The 0.1.2 source migrates custom Cargo selection to the shared ordered executable +Version 0.1.2 migrates custom Cargo selection to the shared ordered executable candidates. Published 0.1.0/0.1.1 preview archives remain immutable. A compatible host must advertise `executableResolution: 1`; the setting is a candidate ahead of automatic PATH discovery, with empty values skipped and explicit failures