[Feature] 日志 v2 未覆盖的来源:Monaco 控制台、远端 lithe-remote-server、Windows 仍是 v1
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 14/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- rust, swift, typescript
- Lĩnh vực
- devtools, observability
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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,确认没有重复建议。
- Ngôn ngữ chính
- TypeScript
- Star
- 1.8k
- Fork
- 151
- Merge trung bình
- 11 giờ 41 phút
- Pull request đã merge (30 ngày)
- 416
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của 1lck/Lithe-IDEA
-
review: medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
1lck/Lithe-IDEA#1670 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:editor bug P0 platform:macos review: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
1lck/Lithe-IDEA#1118 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] 插件市场官方源仍指向已转为临时仓库的旧地址Đang mởarea:extensions bug P2 platform:macos review: high
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
1lck/Lithe-IDEA#1781 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:other bug P2 platform:windows review: high
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
1lck/Lithe-IDEA#1780 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement issue-form:feature review: low
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 40/100
1lck/Lithe-IDEA#1779 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của 1lck/Lithe-IDEA
Issue tương tự
-
Add: ESP 2 ROĐang mởapproved check:passed streams:add
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ipaas: Configure form shows "Deploy to apply." and "Overrides selected Link" when they don't applyCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
wso2/integration-control-plane#1118 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
File reporting form UI DesignĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
UTDNebula/utd-notebook#311 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày