Skip to content

Match cache survives releases; v2.0.1 round-robin results - #140

Merged
isaac0804 merged 1 commit into
mainfrom
rr-refresh
Oct 3, 2026
Merged

isaac0804 merged 1 commit into
mainfrom
rr-refresh

Conversation

@isaac0804

Copy link
Copy Markdown
Contributor
  • Fingerprint fix: fingerprint.py no longer hashes the __version__ line. The release workflow rewrites utama_core/__init__.py on every merge into main, which changed every match key and emptied the --reuse cache after each merge. Found when strategy/zone-split-shape, one release ahead of the refilled cache, reused 0 of 253 matches; with the fix the two checkouts fingerprint identically. Regression test fails without the fix.
  • docs/strategies.md: full 22-config round-robin on v2.0.1 (tournament_20261003_092151): 0 stalls, 129 of 231 draws, about 9 min wall on 15 workers.
  • STRATEGY_DEVELOPMENT.md: on a stale cache, let the round-robin run; the other strategies' matches refill the cache for everyone.

After merging, match keys change once more (they no longer include the version), so the first round-robin after this refills the cache, about 10 minutes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SACGSprm9GiBueqKdxsy2j

- fingerprint.py ignores the __version__ line: the release workflow rewrites
  utama_core/__init__.py on every merge into main, which changed every match
  key and emptied the cache after each merge (found when a strategy branch
  one release ahead reused 0 of 253 matches). Regression test included.
- strategies.md: full 22-config round-robin on v2.0.1, 0 stalls, ~9 min.
- STRATEGY_DEVELOPMENT.md: on a stale cache, let the round-robin run; it
  refills the cache for everyone.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01SACGSprm9GiBueqKdxsy2j
Copilot AI balanced review requested due to automatic review settings October 3, 2026 09:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Version-line normalization currently affects every hashed module rather than only the release-managed package initializer.

Review effort: Balanced
Findings: 1 High severity

Open (1)
What changed in this PR

Makes match-cache fingerprints resilient to release-only version bumps and records updated tournament guidance/results.

Changes:

  • Excludes release version lines from fingerprints and adds regression coverage.
  • Clarifies stale-cache refill guidance.
  • Updates v2.0.1 round-robin standings.
File Description
utama_core/​replay/​fingerprint.py Normalizes version lines before hashing.
utama_core/​tests/​replay/​test_fingerprint.py Tests release-version fingerprint stability.
docs/​STRATEGY_DEVELOPMENT.md Updates stale-cache guidance.
docs/​strategies.md Records latest tournament results.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +203 to +204
code = _VERSION_LINE.sub(b"", mod.source)
rows.append(f"{mod.path.relative_to(self.root).as_posix()} {_sha(code)}")
@isaac0804
isaac0804 merged commit 21195f1 into main Oct 3, 2026
5 of 6 checks passed
@isaac0804
isaac0804 deleted the rr-refresh branch October 3, 2026 10:06
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.

2 participants