[Feature] 日志 v2 未覆盖的来源:Monaco 控制台、远端 lithe-remote-server、Windows 仍是 v1
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 14/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust, swift, typescript
- Ambito
- devtools, observability
Direzione di ricerca
This spans three separate areas: the Monaco console forwarding, the rust/lithe-remote/src/server/ and src/bin/lithe-remote-server.rs stderr paths, and the Windows v1 log page. Start with the scanRepository exclusions in scripts/logging/verify-log-usage.mjs and the Rust Core diagnostics/ module. Done means the new sources appear in the log window and diagnostic bundle, and the logging gate passes with zero violations. Design decisions should be settled first.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem to solve / 要解决的问题
结构化日志 v2 已经覆盖:
- macOS Swift;
- Rust Core;
- 链接进 Core 的辅助库(agent-host、git-host、ide-host、lithe-remote 客户端)。
语言服务、插件宿主和 Git 子进程的 stderr 也已经作为目录事件进入日志。日志用法门禁 scripts/logging/verify-log-usage.mjs 对这些范围要求零违规。见 #1676(PR3)和 PR4(分支 claude/logging-v2-window)。
还有三类来源没有进入 v2。排查时,日志窗口和诊断包里看不到它们,只能去别处找,或者根本找不到:
- macOS 编辑器 Monaco(WKWebView)的 JS 控制台。 页面里的
console.error/console.warn、未捕获异常和未处理的 Promise rejection 没有转发给宿主,只有打开 Web Inspector 才能看到。发布版用户遇到编辑器脚本错误时,日志窗口和诊断包里没有任何记录。 - 运行在远端主机上的
lithe-remote-server。rust/lithe-remote/src/server/和src/bin/lithe-remote-server.rs里约 19 处eprintln!,守护进程把 stderr 追加到远端状态目录里的纯文本日志。本地日志窗口和诊断包都拿不到这些内容,排查远程问题时要 SSH 到远端手动翻文件。门禁目前显式排除了这两个目录。 - Windows 仍是 v1 日志。
- 写入的还是 v1 格式,入口是“设置 → 工具 → 日志与诊断”页。
- 没有独立日志窗口,也没有目录事件。
- 门禁不扫描 Windows 代码。
插件自己输出的日志不在本 issue 范围内。
Proposed solution / 建议方案
三部分可以分别交付:
- Monaco 控制台
- 在编辑器页面注入只读的转发脚本,把
console.error/console.warn、window.onerror和unhandledrejection经已有的litheEditor消息通道交给宿主。 - 宿主记录为限流的目录事件(例如
editor.web.console),只带级别、来源脚本的相对标识、消息摘要和稳定类别。不记录文档内容、用户代码或完整调用栈里的绝对路径。 console.log默认不转发,只在开启详细诊断时转发。
- 在编辑器页面注入只读的转发脚本,把
- 远端
lithe-remote-server- 服务端把关键失败(连接、会话、守护进程、上传、文件系统、进程管理)改为结构化事件。
- 事件经已有协议连接回传给客户端,由 Core 按目录校验、脱敏后进入本地日志。连接不可用时,服务端在远端状态目录按 v2 格式落盘;导出诊断包时,客户端经连接拉取最近的有界片段。
- 完成后把这两个目录纳入日志门禁。
- Windows 迁移到 v2
- Windows 改为写入 v2 格式,用独立日志窗口替代设置里的日志页。
- 直接复用 Rust Core
diagnostics/里已有的过滤解析、折叠键、事件分布、调用链摘要、复制格式和导出清单。 - 门禁扩展到 Windows 源码。
- 跨平台功能矩阵中
diagnostics-export和lsp-status-logs的 Windows 状态随之更新。
完成标准: 上述来源的警告和错误都能在日志窗口按通道和事件过滤,并出现在诊断包里;门禁覆盖新范围且零违规。
Target platform / 目标平台
Cross-platform / 跨平台
Area / 模块
Other / 其他
Priority / 优先级
P2 / 后续考虑:目前不着急,可安排到后续版本
Alternatives considered / 已考虑的替代方案
- Monaco:开发构建里可以用 Web Inspector 查看控制台,但发布版用户无法使用,诊断包里也没有。
- 远端服务:现在只能 SSH 登录远端主机,手动查看状态目录里的纯文本日志,没有脱敏,也没有和本地操作的 op 关联。
- Windows:继续使用 v1 日志页能满足基本导出,但没有过滤语法、调用链和提示跳转日志等能力,两端行为不一致。
Additional context / 补充信息
- 设计依据:macOS 端日志窗口和门禁规则见
.agents/notes/implemented/feature/2026-11-03-structured-logging-log-window.md和.agents/skills/develop-lithe/references/logging.md。 - 门禁排除:当前排除的目录写在
scripts/logging/verify-log-usage.mjs的scanRepository中。 - Windows 时机:macOS 一次切到 v2、旧 v1 日志不再显示。Windows 迁移按既定取舍放到以后单独进行。
Checklist / 提交前检查
- I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复建议。
- Lingua principale
- TypeScript
- Stelle
- 1.8k
- Fork
- 151
- Merge medio
- 11h 41m
- PR unite (30g)
- 416
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di 1lck/Lithe-IDEA
-
review: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
1lck/Lithe-IDEA#1670 ·
I maintainer di solito rispondono entro 1 giorno
-
area:editor bug P0 platform:macos review: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
1lck/Lithe-IDEA#1118 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] 插件市场官方源仍指向已转为临时仓库的旧地址Apertaarea:extensions bug P2 platform:macos review: high
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
1lck/Lithe-IDEA#1781 ·
I maintainer di solito rispondono entro 1 giorno
-
area:other bug P2 platform:windows review: high
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
1lck/Lithe-IDEA#1780 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement issue-form:feature review: low
Difficoltà 5/5 Più di una settimana Idoneità per principianti 40/100
1lck/Lithe-IDEA#1779 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di 1lck/Lithe-IDEA
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
binding:python bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
coollabsio/orbit#72 ·
I maintainer di solito rispondono entro 1 giorno
-
Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
bug needs-triage potential-regression
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
aws/aws-sdk-js-v3#8408 ·
I maintainer di solito rispondono entro 1 giorno