From f5f8bba54d7d54aa3d24509b70901660046f2639 Mon Sep 17 00:00:00 2001 From: Yao Jingxi <23722032@bjtu.edu.cn> Date: Wed, 4 Nov 2026 10:54:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20=E8=AF=B4=E6=98=8E=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E5=8C=96=E6=97=A5=E5=BF=97=20v2=20=E4=B8=8B=E7=9A=84?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E6=97=A5=E5=BF=97=E5=8E=BB=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README 新增“诊断日志”一节:说明宿主记录到哪个通道、哪些输出留在控制台、 排障时用什么入口,以及哪些内容不应写入日志 - 注明 Windows 仍为 v1 日志,未声明 Windows v2 验收 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 0f654ee..625c954 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,17 @@ node scripts/package.mjs 输出 `dist/php-support-<版本>-darwin.zip`(同时适用 Apple Silicon 与 Intel Mac)和它的 SHA-256。 +## 诊断日志 + +在启用结构化日志 v2 的 Lithe macOS preview 中,宿主按语言服务身份将 Intelephense 的生命周期、 +`window/logMessage` 和有界 stderr 诊断送入当前会话的 `lsp/php` 通道。 +保留 `--stdio` 启动方式,由宿主统一进行脱敏、截断、写入和保留;插件不创建自己的日志 writer。 +PHP 程序与 PHPUnit 的输出仍属于运行/测试控制台,不复制进诊断日志。 + +排障时使用 Lithe 的独立日志窗口和诊断导出,详细诊断仅临时开启。 +不要把 PHP 源码、HTTP/数据库内容、环境变量、凭据或完整协议载荷写入诊断日志。 +Windows 的日志实现仍为 v1;本文没有声明 Windows 已完成 v2 验收。 + ## 发布新版本 1. 修改 `io.github.lithe-idea.php-support/plugin.json` 的 `version`,合入 `main`。 From e62334325e7724c64d03559487f0da8492ec5f8d Mon Sep 17 00:00:00 2001 From: Xiaoyumuxi <3075514079@qq.com> Date: Wed, 4 Nov 2026 14:43:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(logging):=20=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=E5=AE=BF=E4=B8=BB=E4=BB=A3=E8=AE=B0=E7=9A=84=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E4=BA=8B=E5=AE=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 625c954..e8233e2 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,15 @@ node scripts/package.mjs 保留 `--stdio` 启动方式,由宿主统一进行脱敏、截断、写入和保留;插件不创建自己的日志 writer。 PHP 程序与 PHPUnit 的输出仍属于运行/测试控制台,不复制进诊断日志。 +Intelephense 由插件声明、宿主执行,插件没有自己的进程发送 `lithe/log`。宿主因此替插件把每次启动尝试 +记成与 SDK 插件同一组的操作事实,写入 `plugins/io.github.lithe-idea.php-support/host` 通道, +操作名为 `languageServer/start`:`initialize` 成功记 `plugins.operation.finished`(INFO,含耗时); +失败记 `plugins.operation.failed`(ERROR),失败码只取自启动阶段——`host.executableUnavailable` +(无法解析 Intelephense 启动命令)、`host.launchFailed`(进程拉起失败)、`host.exitedEarly`(就绪前退出)、 +`host.initializeFailed`(初始化握手失败)、`host.timedOut`(初始化超时)。取消、停止和被新启动取代的 +尝试不记录;事实不含 Intelephense 输出、路径或命令行。插件不需要任何日志代码,宿主实现见 +https://github.com/1lck/Lithe-IDEA/pull/1720。 + 排障时使用 Lithe 的独立日志窗口和诊断导出,详细诊断仅临时开启。 不要把 PHP 源码、HTTP/数据库内容、环境变量、凭据或完整协议载荷写入诊断日志。 Windows 的日志实现仍为 v1;本文没有声明 Windows 已完成 v2 验收。