fix: touchstone empty results table for branches with a slash#2689
Merged
Conversation
Benchmark comments rendered with an empty results table for any PR whose
head branch contains a "/" (e.g. feat/print-style-modern). The receive
action installs the {touchstone} R *package* from `touchstone_ref`, which
defaults to `@v1` -- a tag cut before the upstream fix that percent-encodes
filesystem-unsafe characters in branch names. Without it, records are
written to records/<benchmark>/feat/print-style-modern, the slash nests a
directory, and benchmark_analyze() can't find a benchmark with exactly the
base+head branches, so it discards them all ("Ignoring all benchmarks that
don't have exactly those two branches") and emits only the header/footer.
Pin touchstone_ref to the same commit the action wrapper already uses, which
includes branch_encode()/branch_decode().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
|
This is how benchmark results would change (along with a 95% confidence interval in relative change) if c4cf214 is merged into main:
|
auto-merge was automatically disabled
June 4, 2026 17:56
Repository rule violations found
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.
Problem
Touchstone now posts PR comments, but the results table is empty — only the header/footer render (see example).
Root cause
The benchmarks run fine and records are uploaded, but
benchmark_analyze()discards all of them with:The downloaded
resultsartifact shows why — records for a head branch likefeat/print-style-modernare stored as:The receive action installs the {touchstone} R package from its
touchstone_refinput, which defaults to@v1. That tag predates the upstream commits "support branch names with slashes" / "encode all filesystem-unsafe characters in branch names" (2025-11-27), so it has nobranch_encode(). The raw/in the branch name nests a subdirectory,benchmark_analyze()can't match a benchmark that has exactly the base+head branches, and every benchmark is dropped → empty table.We previously pinned the action wrapper to a default-branch SHA (
7e6072a) to getartifact@v4/v5, but the R package was still installed from@v1. This is the remaining half of that version mismatch.Fix
Pin
touchstone_refto the same commit the action wrapper already uses, so the installed R package includesbranch_encode()/branch_decode().Only affects
R/**etc. via the receive trigger; this PR's own branch (fix-touchstone-slash-branches, no slash) wouldn't have surfaced the bug, so once merged a slash-named branch is the real end-to-end test.🤖 Generated with Claude Code