Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ jobs:
rustup toolchain install
rustup show active-toolchain

# #404: dependency build artifacts + cargo registry. Must follow Setup
# Rust: the cache key includes the active rustc. Only dependencies are
# cached; the workspace crate is always rebuilt.
- name: Cache cargo registry and dependency builds
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2

- name: Install ripgrep
shell: pwsh
run: choco install ripgrep --version 14.1.0 -y --no-progress
Expand Down Expand Up @@ -384,6 +390,12 @@ jobs:
rustup toolchain install
rustup show active-toolchain

# #404: see the matching step in windows-build-test-package. The cache
# key includes the job id and runner OS/arch, so each matrix leg keeps
# its own entry.
- name: Cache cargo registry and dependency builds
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2

- name: Install ripgrep
shell: pwsh
run: |
Expand Down Expand Up @@ -440,7 +452,13 @@ jobs:
shell: pwsh
run: cargo check --locked

# #404: on Windows this exact command already runs in
# windows-build-test-package (same runner image, same toolchain, same
# `-p code-intel --locked` test set), so the matrix leg skips it instead
# of executing the full suite a second time per trigger. The packaged
# install_smoke tests below still compile and run here on every OS.
- name: Rust tests and core cross-contract gate
if: runner.os != 'Windows'
shell: pwsh
run: cargo test -p code-intel --locked

Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/pr-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@ name: code-intel-pr-gate
# inflated percentile as a defect (see the sample-exclusion comment there);
# a moving denominator is the same defect from another source.
#
# Toolchain/cache/action choices are mirrored from ci.yml on purpose: ci.yml
# has no dependency-cache action (just `rustup toolchain install` reading
# rust-toolchain.toml on an uncached runner), so this workflow does not add
# one either — introducing caching here would be a new third-party action
# ci.yml itself does not use.
# Toolchain/action choices are mirrored from ci.yml on purpose (`rustup
# toolchain install` reading rust-toolchain.toml). ci.yml adopted the pinned
# Swatinem/rust-cache in #404; this workflow does not use it yet, so its jobs
# still build on an uncached runner.

on:
pull_request:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- 独立审计确认 4 个 `templates/` 文件(`understanding-report.md`、`minimax-deploy-checklist.md`、`dependency-audit.md`、`idea-file.md`)在 .md/.json/.yml/.toml/.rs/.py 全仓与 orchestration digest pin 中零引用,予以删除;`templates/sentrux-rules.example.toml` 因被 README/CHANGELOG 实际引用而保留(#357/#358)。
- **session-observability 原型经真实试跑后判定不达晋升门槛,移除**(#359/#360):安装 cosmtrek/mindwalk(钉版本),用真实 Claude Code session 生成的 trace 对照该 session 提交前后状态生成的规范 `sentrux-hotspots.json` 实测联接——5 条晋升标准中"trace 目标能联接上 Sentrux hotspot 记录"实测 0 联接(session 只碰了 2 个小测试文件,均不在旧 top-30 复杂度截断内),未达 IDEA.md 定的晋升门槛("仅当真实 trace 产出有用的路径联接且 timeline 暴露 review 相关信号才晋升"),按负结果移除原型,issue 记录结论与成因供后续复议。
- **`sentrux_gate` 的 `quality_signal` 从 `10000 - penalty` 代理分数改为上游兼容的 Quality Signal,并输出五个根因(#385,父级 #285)**:新增 `sentrux_quality_signal.rs` 计算内核,按上游文档(https://sentrux.dev/docs/quality-signal/)与固定源码版本(`6f8ff3c14b0423e4b58f42d1813d4d5f7fdc1d11`)移植 modularity(Newman Q)、acyclicity、depth、equality(Gini)、redundancy 五因子归一化公式与几何平均聚合,显式记录并保留固定源码相对文档页多出的 `max(0.01)` 逐因子下限(`FORMULA_VERSION`)。原生扫描器此前无跨语言解析的文件依赖图,`measure_project` 新增有界启发式导入目标解析(引号相对路径 + 唯一文件名回退)喂给 modularity/acyclicity/depth;equality 采用上游自身定义的"无函数级 CC 数据时退回文件行数"回退路径(本仓从未追踪过函数级复杂度);redundancy 目前只实现 duplicate 一半(跨文件规范化内容比对),dead-function 检测未实现——本仓 `cargo check` 的 ~100 条 dead-code 警告本就是 `#[path]` 重复编译的编译器产物而非真实死代码信号,朴素的"从未被调用"启发式对本仓会产生大量假阳性,因此诚实标记为 `completeness: "partial"` 并在 `note` 字段说明,不伪造 `dead_count = 0`。`scan`/`health` 新增 `quality_signal_detail`(`schema`/`formula_version`/`provider_version`/`bottleneck`/`completeness`/`root_causes.<metric>.{score,raw,completeness}`)。旧代理分数与新分数语义不兼容,`BASELINE_SCHEMA` 随之升到 v6(`ENGINE_VERSION` 3.0.0),旧 v5 基线按既有 `baseline_engine_mismatch` 机制拒绝直接比较并给出机器可读原因,避免伪造 before/after;本仓自身 `.sentrux/baseline.json` 已用新引擎重新保存(非回归抑制,是既有"改变多 session 行为口径必须重新定基线"惯例的直接后果)。见 DR-0011。
- **CI:cargo 依赖缓存 + 去掉 Windows 重复全量测试(#404)**:`ci.yml` 两个编译 job(`windows-build-test-package`、`cross-platform-smoke` 矩阵)在 `Setup Rust` 之后接入按 commit SHA 钉住的 `Swatinem/rust-cache`(v2.9.2,只缓存 cargo registry 与依赖构建产物,key 含 job id、runner OS/arch、rustc 与 lockfile)。`cross-platform-smoke (windows-latest)` 不再执行 `cargo test -p code-intel --locked`——同一条命令在同一镜像上已由 `windows-build-test-package` 执行;该矩阵腿独有的打包安装拓扑检查(bootstrap.py 安装、`install_smoke` 两条 `--ignored` 测试、stale-home、Sentrux closure、PATH 持久化断言,DR-0001)全部保留。必需检查名不变。

## [0.7.2-beta.6] — 2026-08-19

Expand Down
Loading