Skip to content

feat: 清理调用链顺序异常和重复节点 - #82

Open
ii76 wants to merge 1 commit into
Tencent:mainfrom
ii76:fix/issue-5-trace-cleanup
Open

feat: 清理调用链顺序异常和重复节点#82
ii76 wants to merge 1 commit into
Tencent:mainfrom
ii76:fix/issue-5-trace-cleanup

Conversation

@ii76

@ii76 ii76 commented Jul 30, 2026

Copy link
Copy Markdown

变更说明

本 PR 完成 Issue #5,实现对 data/entries.jsonl 中调用链顺序异常和重复节点的检测与清理。

主要变更:

  • 新增 scripts/fix_trace.py
  • 支持 --input--output--log--report--mode 参数
  • 提供 checkfix 两种模式,默认使用保守的 check 模式
  • {file, line, code} 完全相同检测 trace 内部重复节点
  • 重复节点保留第一次出现的位置,后续节点在 fix 模式下删除
  • 重复节点的 desc 不同时标记 need_manual_review=true
  • 支持整数行号和 "start-end" 区间行号
  • 检测同文件内早于 entry point 或晚于 critical operation 的节点
  • 跨文件调用链不进行行号比较、排序或越界删除
  • 保持 trace 原始顺序,不进行全局排序
  • 增加基础 schema 校验和输入文件覆盖保护
  • 输出修复后的 JSONL、CSV 修改日志及 JSON 检测报告
  • 新增 README_trace_fix.md 说明运行方式、处理策略和当前限制

输出文件

  • outputs/entries.trace_fixed.jsonl
  • outputs/trace_fix_log.csv
  • outputs/trace_fix_report.json

验证结果

  • 完整扫描当前 408 条 entry
  • 修复前共有 2073 个 trace 节点
  • 修复后保留 1711 个 trace 节点
  • 检测到 7 个重复 trace 节点并完成删除
  • 检测到 139 个 entry point 之前的节点
  • 检测到 237 个 critical operation 之后的节点
  • 删除 356 个唯一顺序异常节点
  • 跳过 382 个跨文件 trace 节点的行号比较
  • 7 条 entry 标记为需要人工复核
  • check 模式输出与原始 data/entries.jsonl 一致
  • 修复后的 JSONL 通过基础 schema 校验
  • 原始 data/entries.jsonl 未被修改

重点样本

已单独统计并验证:

  • entry-00103
  • entry-00320
  • entry-00511
  • entry-00185

测试方式

python3 -m py_compile scripts/fix_trace.py
python3 scripts/fix_trace.py --mode check
python3 scripts/fix_trace.py --mode fix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant