Skip to content

ci: move perf gate and changelog onto the soothfast action - #6

Merged
Verdenroz merged 2 commits into
mainfrom
ci/soothfast-action
Sep 6, 2026
Merged

Verdenroz merged 2 commits into
mainfrom
ci/soothfast-action

Conversation

@Verdenroz

Copy link
Copy Markdown
Owner

Description

The perf gate and the changelog regeneration were two hand-copied workflows, and the changelog one needed the GitHub App private key in this repo's secrets to mint its token. Both now run as one soothfast job in ci.yml through the Verdenroz/soothfast action, which proves its identity over OIDC and holds no secrets. Pull requests get the gate result as a soothfast-bot comment. Pushes to main refresh the baseline and land CHANGELOG.md as a bot/soothfast-update PR that merges itself.

Changes

  • Bumped soothfast to 0.3.1.
  • Removed gate.yml and changelog.yml.
  • Added the soothfast job to ci.yml, pinned to the v0.3.1 commit. changelog-packages keeps scry-server in the changelog diff while the gate measures only scry-core.
  • Replaced the unpinned cargo install cargo-soothfast in docs.yml with the action in install-only mode, so the CLI matches Cargo.lock.
  • Skipped the job on bot-authored pushes so the bot's own merge does not regenerate again.
  • Updated CLAUDE.md.

Testing

  • cargo check -p scry-core --benches --tests compiles against soothfast 0.3.1.
  • The soothfast-bot environment exists with no branch policy and the App is installed. The main ruleset's required check swaps from gate to soothfast once this PR's checks appear.

- The copied changelog workflow needed the App private key as a repo
  secret; the action proves identity over OIDC and holds no secrets.
- One job covers the PR gate and the default-branch regeneration.
- docs.yml keeps its own measure and check steps but installs the CLI
  pinned to Cargo.lock through the action.
@Verdenroz
Verdenroz enabled auto-merge (squash) September 6, 2026 14:31
@soothfast-bot

soothfast-bot Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

soothfast gate

scry-core

ok    scry_core::bench_chunk_rust callgrind_ir 75706022.0 -> 75605560.0 (-0.1%)
ok    scry_core::bench_chunk_rust walltime_median_ns 7172646.0 -> 7196624.0 (+0.3%)
ok    scry_core::bench_chunk_rust allocs 3628 -> 3628 (allowed <= 3809)
ok    scry_core::bench_chunk_rust alloc_bytes 793931 -> 793931 (allowed <= 833627)
ok    scry_core::bench_dense_search instructions 88391909.0 -> 88391909.0 (+0.0%)
ok    scry_core::bench_dense_search callgrind_ir 88391909.0 -> 88391909.0 (+0.0%)
ok    scry_core::bench_dense_search walltime_median_ns 8404854.0 -> 8389993.0 (-0.2%)
ok    scry_core::bench_dense_search allocs 11 -> 11 (allowed <= 11)
ok    scry_core::bench_dense_search alloc_bytes 16274 -> 16274 (allowed <= 17087)
NOTE  scry_core::bench_expand_symbols: code changed since reference
ok    scry_core::bench_expand_symbols instructions 31088.0 -> 30459.0 (-2.0%)
ok    scry_core::bench_expand_symbols callgrind_ir 31088.0 -> 30459.0 (-2.0%)
ok    scry_core::bench_expand_symbols walltime_median_ns 2555.9 -> 2562.5 (+0.3%)
ok    scry_core::bench_expand_symbols allocs 55 -> 55 (allowed <= 57)
ok    scry_core::bench_expand_symbols alloc_bytes 2366 -> 2366 (allowed <= 2484)
ok    scry_core::bench_hash_bytes instructions 917595.0 -> 917595.0 (+0.0%)
ok    scry_core::bench_hash_bytes callgrind_ir 917595.0 -> 917595.0 (+0.0%)
ok    scry_core::bench_hash_bytes walltime_median_ns 75681.2 -> 75961.3 (+0.4%)
ok    scry_core::bench_hash_bytes allocs 0 -> 0 (allowed <= 0)
ok    scry_core::bench_hash_bytes alloc_bytes 0 -> 0 (allowed <= 0)
ok    scry_core::bench_lexical_search instructions 157758928.0 -> 157758928.0 (+0.0%)
ok    scry_core::bench_lexical_search callgrind_ir 157758928.0 -> 157758928.0 (+0.0%)
ok    scry_core::bench_lexical_search walltime_median_ns 16244811.0 -> 16233815.0 (-0.1%)
ok    scry_core::bench_lexical_search allocs 34 -> 34 (allowed <= 35)
ok    scry_core::bench_lexical_search alloc_bytes 2467 -> 2467 (allowed <= 2590)
ok    scry_core::bench_normalize_remote_url instructions 2824.0 -> 2824.0 (+0.0%)
ok    scry_core::bench_normalize_remote_url callgrind_ir 2824.0 -> 2824.0 (+0.0%)
ok    scry_core::bench_normalize_remote_url walltime_median_ns 232.4 -> 231.1 (-0.6%)
ok    scry_core::bench_normalize_remote_url allocs 5 -> 5 (allowed <= 5)
ok    scry_core::bench_normalize_remote_url alloc_bytes 116 -> 116 (allowed <= 121)
ok    scry_core::bench_search_with_vector instructions 384605295.0 -> 384609645.0 (+0.0%)
ok    scry_core::bench_search_with_vector callgrind_ir 384605295.0 -> 384609645.0 (+0.0%)
ok    scry_core::bench_search_with_vector walltime_median_ns 37784295.0 -> 37728480.0 (-0.1%)
ok    scry_core::bench_search_with_vector allocs 1286 -> 1286 (allowed <= 1350)
ok    scry_core::bench_search_with_vector alloc_bytes 169014 -> 169014 (allowed <= 177464)
ok    scry_core::bench_chunk_rust assert complexity: claimed O(n); growth drift x1.02 over sizes [64, 256, 1024] (limit x2.5)
ok    scry_core::bench_hash_bytes assert alloc: allocs 0 <= 0
ok    scry_core::bench_hash_bytes assert complexity: claimed O(n); growth drift x0.98 over sizes [4096, 65536, 1048576] (limit x2.5)
ok    scry_core::bench_normalize_remote_url assert alloc: allocs 5 <= 5
gate: passed (7 item(s))

- The merge-base worktree can't be pinned to soothfast 0.3.1 (its
  Cargo.toml still requires 0.2.0), so the gate compares this PR's
  harness against the old one (Verdenroz/soothfast#194).
- bench_expand_symbols is ~30K instructions, small enough that the
  harness delta alone crosses the 5% threshold.
- Revert once main carries this bump and the reference embeds the
  same harness again.

Refs Verdenroz/soothfast#194
@Verdenroz
Verdenroz enabled auto-merge (squash) September 6, 2026 20:24
@Verdenroz
Verdenroz merged commit 409d5eb into main Sep 6, 2026
2 checks passed
@Verdenroz
Verdenroz deleted the ci/soothfast-action branch September 6, 2026 20:40
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