From 5acbf76b06c684cbd5426847558f59be8e2d31ea Mon Sep 17 00:00:00 2001 From: Yao Jingxi <23722032@bjtu.edu.cn> Date: Wed, 4 Nov 2026 22:17:53 +0800 Subject: [PATCH] =?UTF-8?q?release:=20=E5=8F=91=E5=B8=83=20HTTP=20Client?= =?UTF-8?q?=200.1.3=20=E9=A2=84=E8=A7=88=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 ++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 6 ++--- docs/releases/v0.1.3.md | 49 +++++++++++++++++++++++++++++++++++++++++ plugin.json | 2 +- 6 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 docs/releases/v0.1.3.md diff --git a/CHANGELOG.md b/CHANGELOG.md index a7f7748..ee7f25d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.1.3 — 2026-11-04 (preview) + +- Report structured host diagnostics through `litheLogging` 1: the SDK records one success or failure per backend function with its function ID, duration and a safe error category; cancellation is not a failure. +- Suppress success entries for the high-frequency `requests.parse` and `response.previewInfo`; failures still log ERROR. +- Report one `preview_truncated` degradation per backend run when a response preview hits its size limit. +- Diagnostics exclude URLs, request/response bodies, headers, environment variables, credentials, file paths and selected file contents. A startup failure before the protocol channel opens exits with a status code instead of printing to stderr. +- Vendor the official Rust SDK with per-file SHA-256 provenance checked by CI and packaging; correct its license in `NOTICE` and the README to Apache-2.0. +- Requires a host offering `litheLogging` 1. Stable Lithe 0.6.7 lacks it, so keep 0.1.2 there. Published as a GitHub pre-release and not listed in Lithe Store. + ## 0.1.2 — 2026-11-02 (preview) - Open UTF-8 `.http` / `.rest` files, select requests and navigate to their source lines without sending automatically. diff --git a/Cargo.lock b/Cargo.lock index 48a73a9..94fa2c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -677,7 +677,7 @@ checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "lithe-http-client" -version = "0.1.2" +version = "0.1.3" dependencies = [ "ide-core", "ide-http", diff --git a/Cargo.toml b/Cargo.toml index 0c9d607..effe6dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lithe-http-client" -version = "0.1.2" +version = "0.1.3" edition = "2024" publish = false license = "Apache-2.0" diff --git a/README.md b/README.md index 4de0916..13f775b 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # HTTP Client for Lithe -**0.1.2 preview:** request editing, session history, response exports and a compact UI. Chrome/WebKit and protocol checks pass; native file-dialog/editor-preview and Intel hardware acceptance remain pending. +**0.1.3 preview:** structured host diagnostics through `litheLogging` 1. It needs a Lithe preview build that offers `litheLogging` 1; stable Lithe 0.6.7 installs it but cannot start its backend, so keep 0.1.2 there. Chrome/WebKit and protocol checks pass; native file-dialog/editor-preview and Intel hardware acceptance remain pending. A compact HTTP workbench inside Lithe's native macOS tool window. Paste `.http` requests, select one, send it, and inspect the response without leaving the IDE. ## Install and use -Install **HTTP Client** from the Lithe plugin marketplace when its listing is available, or download the ZIP from [Releases](https://github.com/Lithe-IDEA/lithe-plugin-http-client/releases) and use Lithe's install-from-disk action. The universal macOS package contains Apple Silicon and Intel code. This version requires `backend: 2`, `serverProcess: 1`, and `ui: 2` (plugin API 3), adding workspace metadata, document-summary and preview permissions for HTML preview. Windows is not supported in this release. +Lithe Store lists 0.1.2. Version 0.1.3 is a GitHub pre-release that the Store does not list: download its ZIP from [Releases](https://github.com/Lithe-IDEA/lithe-plugin-http-client/releases) and use **Install Plugin from Disk…** in the ⚙ menu of Settings → Plugins. The universal macOS package contains Apple Silicon and Intel code. This version requires `backend: 2`, `serverProcess: 1`, and `ui: 2` (plugin API 3), plus a host offering `litheLogging: 1`; it uses workspace metadata, document-summary and preview permissions for HTML preview. Windows is not supported in this release. Open the **HTTP Client** bottom tool window. Use **Open .http** to choose a UTF-8 `.http` or `.rest` file (up to 128 KiB), or paste a request. Files are read and their requests listed immediately. Choose an entry and click **Send** (⌘/Ctrl+Enter). **Read requests** reparses pasted text. Editing invalidates the selection; sending reparses and selects the first request. Choosing a file, request or history entry never sends it automatically. @@ -66,7 +66,7 @@ python3 scripts/package.py python3 scripts/test_protocol.py --binary dist/io.github.lithe-idea.http-client/bin/lithe-http-client ``` -Use a consistent rustup `cargo`/`rustc` toolchain on PATH when cross-compiling. Packaging uses `lipo`, validates both architectures, signs the executable ad-hoc, checks its signature, includes dependency notices and creates `dist/http-client-0.1.2-darwin.zip` with one plugin-ID parent directory and a SHA-256 sidecar. Published release assets are immutable: fixes require a new version. +Use a consistent rustup `cargo`/`rustc` toolchain on PATH when cross-compiling. Packaging uses `lipo`, validates both architectures, signs the executable ad-hoc, checks its signature, includes dependency notices and creates `dist/http-client-0.1.3-darwin.zip` with one plugin-ID parent directory and a SHA-256 sidecar. Published release assets are immutable: fixes require a new version. Protocol integration tests use real SDK processes and a loopback HTTP server, with bounded waits and cleanup. Individual timings and failures are emitted to `.artifacts/test-stability/index.html` and `junit.xml`. diff --git a/docs/releases/v0.1.3.md b/docs/releases/v0.1.3.md new file mode 100644 index 0000000..1ff9682 --- /dev/null +++ b/docs/releases/v0.1.3.md @@ -0,0 +1,49 @@ +## 中文 + +HTTP Client 0.1.3 预览版接入 Lithe 的结构化插件诊断(`litheLogging` 1)。需要提供 `litheLogging` 1 的 Lithe preview 开发版;稳定版 Lithe 0.6.7 能安装但无法启动后端,请在稳定版上继续使用 Lithe Store 中的 0.1.2。 + +### 更新内容 + +- 后端改用官方 Rust SDK 的结构化日志,诊断写入 Lithe 日志窗口中本次会话的 `plugins/io.github.lithe-idea.http-client/host` 通道,级别、脱敏、轮转和保留由宿主统一决定。 +- 每个后端函数由 SDK 记录唯一的成功或失败终态,带函数 ID、耗时和安全的错误分类;取消不算失败。 +- 高频的请求解析(`requests.parse`)和预览能力探测(`response.previewInfo`)成功时不再记 INFO,失败照常记 ERROR。 +- 响应预览达到大小上限被截断时,每次后端运行只记一次 `preview_truncated` 降级。 +- 诊断不含 URL、请求或响应正文、头部、环境变量、凭据、文件路径或所选文件内容;启动在协议通道建立前失败时以退出码结束,不再向 stderr 打印。 +- 官方 Rust SDK 改为仓库内的 vendor 副本,CI 与打包按逐文件 SHA-256 校验;`NOTICE` 和 README 中的 SDK 许可证更正为 Apache-2.0。 +- 请求编辑、会话历史、响应导出和 HTML 预览等功能与 0.1.2 相同。 + +### 安装与兼容性 + +预发布版本会被 Lithe Store 自动追踪跳过,暂不收录 Store。下载 `http-client-0.1.3-darwin.zip`,在「设置 → 插件」的 ⚙ 菜单中选择「从磁盘安装插件…」导入;一个包同时包含 Apple Silicon 和 Intel 代码,旁边的 `.sha256` 文件用于核验下载内容。 + +需要支持插件 API 3 和 `backend: 2`、`serverProcess: 1`、`ui: 2` 的 macOS Lithe,并且宿主要提供 `litheLogging` 1。权限声明与 0.1.2 相同。 + +仍为社区预览版,使用 ad-hoc 可执行文件签名,未做开发者签名或公证;Windows 不支持。协议测试会协商 `litheLogging` 1 并检查诊断帧与隐私;在 Lithe 日志窗口中的端到端验收、原生文件对话框、编辑区 HTML 预览和 Intel 硬件运行验收仍待完成。 + +[全部改动](https://github.com/Lithe-IDEA/lithe-plugin-http-client/compare/v0.1.2...v0.1.3) + +--- + +## English + +HTTP Client 0.1.3 preview adopts Lithe's structured plugin diagnostics (`litheLogging` 1). It needs a Lithe preview build that offers `litheLogging` 1. Stable Lithe 0.6.7 installs it but cannot start its backend; keep 0.1.2 from Lithe Store there. + +### Changes + +- The backend uses the official Rust SDK's structured logging. Diagnostics go to the current session's `plugins/io.github.lithe-idea.http-client/host` channel in Lithe's log window; the host decides levels, redaction, rotation and retention. +- The SDK records exactly one success or failure for each backend function, with its function ID, duration and a safe error category; cancellation is not a failure. +- Successful request parsing (`requests.parse`) and preview capability probes (`response.previewInfo`) no longer log INFO; failures still log ERROR. +- When a response preview is truncated at its size limit, one `preview_truncated` degradation is logged per backend run. +- Diagnostics never contain URLs, request or response bodies, headers, environment variables, credentials, file paths or selected file contents. A startup failure before the protocol channel opens exits with a status code and no longer prints to stderr. +- The official Rust SDK is vendored in the repository; CI and packaging verify every file's SHA-256. `NOTICE` and the README now give the SDK's license correctly as Apache-2.0. +- Request editing, session history, response exports and HTML preview are unchanged from 0.1.2. + +### Installation and compatibility + +Lithe Store's tracker skips pre-releases, so this version is not listed in the Store. Download `http-client-0.1.3-darwin.zip` and import it with Install Plugin from Disk… in the ⚙ menu of Settings → Plugins. The same package contains Apple Silicon and Intel code; the adjacent `.sha256` file verifies the download. + +Requires macOS Lithe with plugin API 3 and `backend: 2`, `serverProcess: 1`, `ui: 2`, and a host offering `litheLogging` 1. Permissions are unchanged from 0.1.2. + +This remains a community preview with an ad-hoc signed executable, without publisher signing or notarization. Windows is unsupported. Protocol tests negotiate `litheLogging` 1 and check diagnostic frames and privacy; end-to-end acceptance in Lithe's log window, native file dialogs, the editor HTML preview and Intel hardware are still pending. + +[Full comparison](https://github.com/Lithe-IDEA/lithe-plugin-http-client/compare/v0.1.2...v0.1.3) diff --git a/plugin.json b/plugin.json index b6a7fc8..33f1df6 100644 --- a/plugin.json +++ b/plugin.json @@ -2,7 +2,7 @@ "schemaVersion": 2, "id": "io.github.lithe-idea.http-client", "displayName": "HTTP Client", - "version": "0.1.2", + "version": "0.1.3", "pluginAPIVersion": 3, "requires": { "backend": 2,