Conversation
helsome
reviewed
Sep 17, 2026
helsome
left a comment
Owner
There was a problem hiding this comment.
Draft 阶段已看过 diff 和测试材料:报告 ID 在读/写及索引消费时统一校验,目录穿越/非法 ID/合法历史 ID/失败后队列恢复均有实际文件系统 focused 覆盖,这是值得独立合入的安全修复。当前没有发现需要额外架构改动的 blocker;无需真实模型或外部数据源,此处安全边界是本地路径和持久化,不是 Provider。保持无可见 UI 变化声明即可。尊重 Draft,等作者标 Ready 后再做最终 approve/merge。
Bluuok
marked this pull request as ready for review
September 17, 2026 05:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
改动说明
What
ResearchReportRepository的报告文件路径边界校验 report ID,只允许 ASCII 字母、数字、_和-。Why
报告 ID 会参与拼接
research/reports/<id>.json。如果外部输入包含路径分隔符、盘符或其他路径语法,未经约束就可能改变目标路径;这是持久化边界应在 repository 层拒绝的输入。关联 Issue
未发现对应的直接 Issue。本 PR 是独立的研究报告持久化输入边界修复。
测试报告(正式审核前必填)
环境
实际执行命令与结果
已知失败 / Baseline(如有)
无已知失败;以上全量共享包测试在本分支通过。
仓库 CI 固定使用 Bun 1.4.2;本地实际使用 Bun 1.4.0,Bun 1.4.2 的 CI 结果待 GitHub Actions 复核。
已提供实际测试命令与 pass/fail 结果
已说明测试环境
如果存在已知 baseline / 环境失败,已提供 main 对照或说明
核心改动已有对应 focused test / smoke / integration 验证
UI 截图(仅可见 UI 变化时必填)
Scope / 后续
report-<runId>ID 约定一致;本 PR 不迁移历史文件、不改变报告 schema,也不改变外部 API 的错误码语义之外的行为。