[Bug] Windows 项目含不可访问缓存目录时运行配置加载失败,扫描忽略规则需集中管理
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
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- rust, typescript
- Ambito
- developer-experience, tooling
Direzione di ricerca
Read rust/lithe-core/src/execution/configuration.rs, rust/lithe-core/src/execution/detectors/scan.rs, and windows/tauri/src-tauri/src/run.rs to trace the separate scan rules and error handling. Then locate the shared scan samples, regression tests, documentation, and feature matrix mentioned in the issue. Done means the scan entry points share ignore rules, inaccessible optional directories produce an incomplete-scan diagnostic while scanning continues, required configuration errors remain explicit, and the listed regression cases pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Platform / 平台
Windows
Area / 模块
Run / 运行
Lithe version / Lithe 版本
0.6.3(实际安装程序的 ProductVersion/FileVersion;x86_64)。运行包构建 SHA 与发行渠道未采集。
Priority / 优先级
P1 / 尽快处理:使用体验大幅下降,但通常仍可继续使用
OS and architecture / 操作系统与架构
Windows 11 IoT 企业版 LTSC,10.0.26100,build 26100,x86_64。
Environment / 环境信息
- Windows 原生安装程序;项目位于本地 NTFS 磁盘,不是 WSL 或远程工作区。
- CPU:Intel Core i7-13700K,16 核;内存:32 GiB。
- Java/Maven 项目包含嵌套 Python 服务和 .pytest_cache。项目根目录可访问,但一个缓存子目录的枚举被系统拒绝。
- 故障发生在打开项目、加载 Run 配置阶段,尚未进入项目服务启动流程。JDK、Maven、JDT LS、WebView2 实际运行版本未采集;没有证据表明错误由这些运行时导致。
- 安装来源、升级历史、启动入口、扩展组合及权限形成原因未采集。排查没有调整项目 ACL、关闭安全软件或修改用户项目。
- 调查日期:2026-10-21(Asia/Shanghai)。本地源码检出为 995867c42ae3a440cbf77294c13c58e4bd48b99d,仅用于定位实现,不能代替实际运行包的构建 SHA。
Steps to reproduce / 复现步骤
- 打开根目录可访问、但非关键缓存子目录无法枚举的项目。实际案例的相对结构已脱敏:
workshop/business-services/<SERVICE>/.pytest_cache。 - 打开或查看 Run / 运行面板,等待运行配置加载。
- 面板出现“拒绝访问。(os error 5)”及“识别并生成”按钮,运行配置未正常显示。
用户提供了实际界面截图,独立只读枚举也确认该缓存目录不可访问。未在干净测试账户下人为修改 ACL 构造完整 GUI 最小复现;步骤依据本次真实故障。
Expected behavior / 预期行为
本 Issue 同时要求修复异常处理与导致遗漏的分散管理问题:
- 非关键缓存或其他可选子目录无法读取时,跳过该子树,保留已有可用配置并继续扫描兄弟目录;记录可定位的项目相对路径诊断,避免一个无关子目录使整个运行配置加载失败。
- 指纹扫描不完整时明确提示“无法完整验证”,不能把部分结果当作扫描成功,也不能把未读到的文件误报为已删除或已修改。
- 集中管理运行相关入口的默认忽略规则与错误处理边界,至少覆盖服务识别、运行配置指纹、Node 版本清单查找和 Windows Java 文件列表。调用方复用统一入口,不再维护多份会漂移的名单;新增缓存目录只需在一处更新。
- 保留必要配置的严格校验:项目根目录或必要 .lithe 文档不可读、JSON 格式错误仍明确报错,不能一律吞异常。自动发现规则不能覆盖 Maven 等构建系统明确声明的模块。
- 增加共享样例和回归测试,覆盖各入口规则一致、子目录拒绝访问后继续扫描、必要配置失败、隐藏源码目录保留及不完整扫描诊断;跨平台共用行为同步文档和功能矩阵。
可参考 IDEA Community 集中维护默认忽略名单、通过工作区文件索引遍历项目的职责划分,不必移植整个索引引擎。上游参考修订:3121b9d2934a19511b0942e09fbbaf3514d3197e。
Actual behavior / 实际行为
运行面板显示泛化错误“拒绝访问。(os error 5)”,当前项目运行配置未正常加载,界面没有指出失败的相对路径。
本地源码排查发现,各扫描入口分别维护规则:
rust/lithe-core/src/execution/detectors/scan.rs:PRUNED已包含.pytest_cache、.mypy_cache、__pycache__。rust/lithe-core/src/execution/configuration.rs:ignored_directory 遗漏上述缓存;project_inputs 的目录枚举直接通过 ? 传播异常,一个子目录失败即可使整个扫描返回错误;project_manifest_paths 又采用另一套遇错继续的实现。windows/tauri/src-tauri/src/run.rs:SKIPPED_DIRECTORIES 加 name.starts_with('.') 单独维护 Java 文件扫描规则,目录读取错误同样直接向上传播。
问题不只是缺少 .pytest_cache 这一项,而是忽略策略与失败语义缺乏共同维护位置;仅在一个函数追加缓存名称,其他入口仍可能再次遗漏。
以上为本地源码证据,实际安装包尚未完成相同调用栈的运行时跟踪,因此不将源码推断写成发布版本已证明的根因。临时验证改动已按用户要求全部撤回,未提交、推送或替换已安装程序。
已查重并阅读 #507 与 #769:前者是大型项目指纹超时,后者是 Java main 识别不全,与此次目录访问拒绝和规则分散不同。
Logs or diagnostic output / 日志或诊断输出
以下为实际界面文本与独立只读枚举结果的脱敏摘要,不是应用导出的日志:
[Run 面板]
拒绝访问。(os error 5)
识别并生成
[独立目录枚举]
项目根目录:可访问
workshop/business-services/<SERVICE>/.pytest_cache:Access to the path is denied.
未取得故障时点对应的应用诊断导出或调用栈;报告不包含私有项目源码、真实账户路径、凭据或业务数据。
Screenshots or recordings / 截图或录屏
用户已提供实际界面局部截图,画面仅包含“拒绝访问。(os error 5)”和“识别并生成”按钮;无私人路径或业务数据。
本次未附图片:浏览器扩展未开放本地文件上传权限,上传未成功。相关界面文本已在日志字段完整保留,不将本地文件名冒充公共附件链接。
Checklist / 提交前检查
- I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复报告。
- I removed secrets and personal data from the report. / 我已从报告中移除敏感信息和个人数据。
- Lingua principale
- TypeScript
- Stelle
- 1.8k
- Fork
- 151
- Merge medio
- 12h 26m
- PR unite (30g)
- 339
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
-
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
-
[Feature] Lithe 启动阶段展示启动动画,避免冷启动期间窗口空白无反馈Forse già presa @Reance195 l’ha presa oggi. Apertaarea:ux enhancement issue-form:feature P2 platform:cross-platform review: low
1lck/Lithe-IDEA#1391 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] 未忽略的 Rust 构建产物和工作树填满 Git 变更列表并导致 macOS 界面卡顿Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug review: medium
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
1lck/Lithe-IDEA#1385 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Windows 打开 3.76 MB / 6.8 万行 Markdown 文档切换到预览后,界面帧率跌到 1–3 fps 并持续数分钟卡死Forse già presa @milestone-17 l’ha presa 1 giorno fa. Apertaarea:editor bug claimed issue-form:bug P1 platform:windows review: medium
1lck/Lithe-IDEA#1380 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement issue-form:feature P2 platform:cross-platform review: high
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
1lck/Lithe-IDEA#1373 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di 1lck/Lithe-IDEA
Issue simili
-
bug P3 UI/UX
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
StellarState/SS-backend#712 ·
I maintainer di solito rispondono entro 1 giorno
-
area: backend bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
snapotter-hq/SnapOtter#3473 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
gitroomhq/postiz-app#2304 ·
I maintainer di solito rispondono entro 1 giorno
-
harlan-agent-ready-to-implement routine:ci-review
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
harlan-zw/unlighthouse#454 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno