Skip to content

fix(registries): keep bbolt eviction off the popularity mutex and close test gaps - #1418

Merged
github-actions[bot] merged 4 commits into
mainfrom
fix/low-1410-popularity
Sep 29, 2026
Merged

github-actions[bot] merged 4 commits into
mainfrom
fix/low-1410-popularity

Conversation

@Dumbris

@Dumbris Dumbris commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

Follow-up hardening of the catalog popularity provider (Spec 110) from #1408.

  • Cache-cap eviction no longer holds the provider mutex across the bbolt delete transaction. Memory eviction happens under p.mu; store writes go through persist() outside it, serialised by a separate lock, with guards so a delayed put cannot resurrect an evicted key and a delayed delete cannot drop a re-added one.
  • Removed the dead lazy store fallback in getEntryLocked (the constructor preloads every persisted entry); test renamed and comments aligned with the eager-load contract.
  • New tests: concurrent Lookup vs. eviction with a blocked store (and a -race stress test), provider-level rolling budget request counts, fresh positive/negative entries not re-enqueued before TTL, generic GITHUB_TOKEN ignored, exact versioned User-Agent, breaker table (429/Retry-After seconds and date, 403, low-remaining) and recovery after the clock passes the pause.

Closes #1410

…x and close test gaps

Cache-cap eviction now removes the entry from memory under p.mu and deletes it
from bbolt afterwards via persist(), which serialises store writes and skips a
stale put or delete so an evicted key is never resurrected and a re-added key
is never dropped. The dead lazy store fallback is removed (the constructor
preloads). Adds regression coverage for the rolling budget gate, fresh-entry
TTL, generic GITHUB_TOKEN, exact User-Agent, and breaker/429/low-remaining
recovery.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Deploying mcpproxy-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: b3282c8
Status: ✅  Deploy successful!
Preview URL: https://270a2add.mcpproxy-docs.pages.dev
Branch Preview URL: https://fix-low-1410-popularity.mcpproxy-docs.pages.dev

View logs

@codecov-commenter

codecov-commenter commented Sep 29, 2026 •

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 73.07692% with 14 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/registries/popularity_github.go 80.48% 4 Missing and 4 partials ⚠️
internal/registries/popularity_store.go 45.45% 3 Missing and 3 partials ⚠️

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown
Contributor

📦 Build Artifacts

Workflow Run: View Run
Branch: fix/low-1410-popularity

Available Artifacts

  • archive-darwin-amd64 (30 MB)
  • archive-darwin-arm64 (27 MB)
  • archive-linux-amd64 (18 MB)
  • archive-linux-arm64 (16 MB)
  • archive-windows-amd64 (30 MB)
  • archive-windows-arm64 (27 MB)
  • frontend-dist-pr (0 MB)
  • installer-dmg-darwin-amd64 (24 MB)
  • installer-dmg-darwin-arm64 (22 MB)
  • smart-mcp-proxymcpproxy-go7K3PZ7.dockerbuild (0 MB)

How to Download

Option 1: GitHub Web UI (easiest)

  1. Go to the workflow run page linked above
  2. Scroll to the bottom "Artifacts" section
  3. Click on the artifact you want to download

Option 2: GitHub CLI

gh run download 36583495508 --repo smart-mcp-proxy/mcpproxy-go

Note: Artifacts expire in 14 days.

@github-actions github-actions Bot 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.

Approved (Model B): Paperclip review verdicts = ACCEPT and qa-gate green at this head SHA. Arming auto-merge; GitHub merges when all required checks pass.

@github-actions
github-actions Bot enabled auto-merge (squash) September 29, 2026 15:03
@github-actions
github-actions Bot merged commit 83e7906 into main Sep 29, 2026
43 checks passed
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.

[follow-up] Catalog popularity cache and regression test gaps

2 participants