Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[mimosa 1.0.3] 离线依赖情报只出计数不出明细:matchedPackages/matchedAdvisories 无包名与编号,密封产物中也没有依赖章节

未关闭
#54 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 3 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
52/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
rust, tauri, typescript

调研方向

Trace the security_scan_start and security_scan_status paths to see how dependencySummary is produced and how the five sealed artifacts are assembled. Compare the findings.json, coverage.json, scan-manifest.json, seal.json, and report.md export paths. Done means matched package and advisory details are preserved in the report and sealed output while the count summary remains available.

由索引模型根据 Issue 内容生成。

描述

环境

  • mimosa 1.0.3(zcode-plugins-official 官方市场安装),Windows 11,Node v26.10.0
  • 项目:Rust + TS 混合的 Tauri 桌面应用(732 个被扫描的依赖包:npm + cargo 混合)
  • 深扫走 security_scan_start + security_scan_status 轮询路径(另见 #41:当前 deep worker 为空壳,本 issue 只关注依赖情报的导出形态,与 worker 修复相互独立——依赖扫描计数本身已经产出)

现象

两次 deep 扫描(2026-09-28,scan …-93406d656de4 与 …-021cecf86d39)的 dependencySummary 均为:

{
  "completion": "completed",
  "packagesScanned": 732,
  "packages": [],
  "offlineAdvisory": {
    "status": "available",
    "matchedPackages": 3,
    "matchedAdvisories": 4,
    "unknown": 0
  }
}

问题一:packages 恒为空数组。 已知有 3 个包命中 4 条离线 advisory,但包名、版本、advisory 编号(GHSA/RUSTSEC/CVE)一概没有。

问题二:密封产物里连计数都没有。 我检查了全部五件套产物(findings.json / coverage.json / scan-manifest.json / seal.json / report.md):report.md 没有依赖章节,findings.json 没有依赖类 finding,全文 grep advis 无命中。也就是说离线依赖情报只存在于一次性的 MCP job status 响应里,进入不了可复核的密封记录——而"密封、可复核"正是这套产物设计的核心卖点(scan contract:seal 覆盖三个语义 JSON)。

影响

  • 用户拿到"3 包 4 情报"后无法做任何核实与处置:不知道是哪个包、是运行时依赖还是 devDependencies、命中的是哪条 advisory、修到什么版本能消除。
  • 无法把依赖情报纳入 findings 流程(triage/compare/baseline),因为它根本不是 finding 形态。
  • 在 #41 修复后,这会是深扫交付里确定性最高、用户最需要动手的部分,却恰恰是唯一没有明细的输出。

期望

  1. report.md 增加依赖章节:按包列出 purl(npm:xxx@ver / cargo:xxx@ver)、命中的 advisory ID 与标题、修复版本(如 advisory 数据里含 fixed 版本);
  2. 密封产物中落盘:建议 findings.json 以 info 级 finding(或在 coverage.json 增加独立的 dependency 段)导出,纳入 seal 覆盖;
  3. dependencySummary 的计数摘要可保留,用于 job 状态快速分诊。

复现数据

  • scan scan-2026-09-28T08-35-34.323Z-93406d656de4,seal sha256:9213df29a5db506fc1f335cc9a587b6e6ba68d4e38bb83f7484c7f21057d0c07
  • scan scan-2026-09-28T08-40-56.360Z-021cecf86d39,seal sha256:735671d343974a781c62e4e6313264c96d7c71fd5d649ea63924073a0957c89e
  • 两次 dependencySummary 完全一致;产物目录结构为标准五件套。

(注意:两个 scanId 是我本地仓库的密封扫描记录,seal 仅为本地产物完整性摘要,公开贴出无敏感内容;如需要具体产物 JSON 样例可再提供。)

主要语言
Python
星标
73
派生
46
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

zai-org/zcode-plugins 的其他 Issue

查看 zai-org/zcode-plugins 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。