Skip to content

Review: Bandcamp mirror + task verifiers (site by @reacher-z, verifiers by reviewer) (#79) - #104

Draft
TabsPhasers wants to merge 12 commits into
aiming-lab:mainfrom
TabsPhasers:review/pr-79-bandcamp
Draft

TabsPhasers wants to merge 12 commits into
aiming-lab:mainfrom
TabsPhasers:review/pr-79-bandcamp

Conversation

@TabsPhasers

@TabsPhasers TabsPhasers commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

What this is

Reviewer pass on #79 (Bandcamp mirror, site by @reacher-z): site-quality remediation, grading contract (18 deterministic verifiers + judge_rubric), registry integration as site 25 (port 40024), a similarity & real-assets supplement (2026-09-13), and a visual-QA remediation round (round 008, below). Replaces the author's review/bandcamp-verifiers state with the reviewed/fixed version.

Round-008 fixes vs. the previous revision (what changed in this push)

Triggered by an independent full-frame visual QA of the previous revision's 18-task trajectories (every before/after/terminal frame, cross-checked against recorded actions/results/URLs). Fixes in this revision (f10cf60):

  • Cart line-item layout — item titles no longer inherit heading type sizes; copy column, thumbnail, quantity (72px) and price/remove controls lay out as one row.
  • Merch detail page — restored the two-column product layout (image left / purchase panel right) that the stylesheet was missing; buy controls are now in the first viewport.
  • Artist hero — avatar renders at its intended size; hero eyebrow/label/bio text is high-contrast over banner art.
  • Purchase panel — quantity input narrowed; Format/Variant select spans the panel width so long option labels (e.g. Digital Album / MP3 + FLAC / $8.50) are no longer clipped by the native dropdown arrow.
  • Album merch tab — now lands on the artist's merch section (#merch anchor) like the real site.
  • Consumer-facing copy — removed all test-facing wording from seeded content (e.g. "benchmark-ready", mirror/benchmark phrasing) and regenerated the seed DB (seed_sha256 deb97f70…); fixed singular/plural strings ("1 item", "1 collection item", "1 recent order").
  • Interaction/feedback polish — visible focus styles on search/inputs; account action buttons get proper spacing; receipt subtitle reads status · date; note textarea inherits the UI font; cart badge hides at zero; compare/merch thumbnails fill their tiles.

Verification (this revision)

  • 18/18 no-op baselines correctly FAIL on the final build (noop-XX-008): every task, run with a no-op trajectory against a fresh-reset environment, is rejected by its deterministic verifier (exit 1). No false positives.
  • 18/18 pure-vision rollout PASS on the final build (bandcamp-similarity-013, image 42693399…): native actors operating only on frames + coordinates drove every task end-to-end from a fresh reset to a verifier PASS (bandcamp-similarity-013 for 13 tasks; bandcamp-similarity-014 re-ran one browser-timeout job and four answer-phrasing retries — no site-fact or verifier-truth errors in any failure).
  • Full-frame trajectory review passed: the delivered trajectories were independently re-reviewed frame-by-frame (screenshots + parsed actions + action results + URL transitions, all 18 selected tasks); findings were resolved or classified as non-blocking, and the reviewer's audit record (MAIN-TASK-AUDIT-006) accompanies the package.
  • Trajectory delivery package task-trajectories-v6/ — 18 selected attempts (22 total incl. superseded), 274 steps, 570 images; check_trajectories.py 0 errors / 0 warnings; package_sha256 731175b9….
  • DB/reset isolation checks PASS (isolation-008); delivery verification exit 0 (delivery-verification-008.json); site test suite 136 passed, 2 skipped (plus 669 subtests); harness regression 105 tests OK.
  • Native session exports: 22 SIDs all valid; audit packages package-similarity-013/014.

Related PRs

  • Original contribution: review(bandcamp): add deterministic task verifiers #79
  • Asset side: ChilleD/WebHarbor discussions#94 — real-imagery bundle with the round-008 seed DB, bandcamp.tar.gz sha256 63b81ffdcafc3738f5a91dbb18680126140e294074cf437c6730ba3acf83b68b (19.1 MB, 327 members); remote-verified by downloading refs/pr/94. Supersedes the earlier e9c23b52… upload (discussions#82, marked superseded) because the seed DB was regenerated in this round.

Asset pin note (intentional): .assets-revision is intentionally left at the current pin and will be bumped to the HF merge commit immediately after the asset PR merges (per CONTRIBUTING §7 the bump normally precedes the GitHub PR; flagging explicitly). Until then, scripts/fetch_assets.sh from this branch will not resolve the new bandcamp.tar.gz.

Changes (cumulative)

  • Visual-QA fix batch (round 008): as detailed above; seed DB regenerated (deb97f70…), tasks.jsonl untouched.
  • Similarity & real assets (2026-09-13): replaced all generated SVG artwork with 320 real images scraped from bandcamp.com (80 covers, 80 banners, 40 artist avatars, 40 hero images, 80 type-matched merch photos); covers limited to album-art CDN images, merch mapped by item type with real product photos. Provenance (source URL per object + transformation notes + license statement) recorded in the reviewer's asset map; images ship only inside the HF bundle.
  • UI aligned with bandcamp.com: light #ECF3F4 shell with Helvetica Neue, wordmark header + category nav (active filter highlighted), "Fans have paid artists …" hero, live "Selling right now" strip (flags, relative times, pause/unpause), real-cover cards with genre pills, light release pages, blue link system.
  • Interaction alignment: clicking cover art in grids toggles a play state while titles open the release; album pages carry the music/merch/community tabs, a player with a real elapsed-time counter, format blocks, artist card and discography; home adds Bandcamp Daily and Album of the Day; a new /artists page backs "Most supported"; compare is a two-column layout with a static selector form.
  • Distinct category destinations: Gift cards → /gift-cards (denominations + working redeem form), Editorial → /editorial (Bandcamp Daily-style index), Radio → /radio (shows + episodes) — previously all three reused the discover filter page.
  • Grading contract: 18 deterministic verifiers under sites/bandcamp/verify/ plus an English judge_rubric per task; ground truth stays inside verifiers, tasks.jsonl carries no answer key.
  • Integration: Bandcamp registered as site 25 on port 40024; task metadata unchanged vs the author's tasks.

Seed size (major models)

albums 80, artists 40, tracks 400, format_variants 444, merch_items 80, album_tags 320, tags 90, users 4, orders 5, cart_items 9, wishlist_items 16, fan_collection_items 6, labels 10, genres 12, scenes 9.

Known limitations

  • Native <select> popups are not rendered by headless Chromium; tasks remain completable via visible focus + keyboard, and the site-side Enter implicit-submit issue was fixed.
  • A few nav/UI details (search tabs vs sections; the compare page is a mirror-only page with no upstream equivalent) are simplified relative to the real site; logged as non-blocking findings.
  • The single gift-card "purchase" is explicitly a simulated offline behavior; the redeem form is functional.

Links

Blocking checklist

  • HF asset PR discussions#94 (bundle 63b81ffd…, supersedes Review: Add FedEx WebHarbor mirror (original by @Lxr-max) #82) merged by maintainer
  • .assets-revision bumped to the HF merge commit; clean fetch_assets.sh resolves bandcamp.tar.gz
  • 18-task rollout re-run on the final build (18/18 PASS, version-mapped, pure-vision)
  • Re-read CI/checks after merge (repo currently reports no checks on this branch)

XuanRui LI and others added 8 commits September 8, 2026 20:52
…am tone

Drop the artificial 24-tag limit on Discover so tag-filtered tasks reach
their targets, and replace benchmark-facing copy (mock checkout, seeded
benchmark users, About This Mirror) with upstream-style user copy.
…ma fixtures

Rewrite the 18 judge rubrics as deterministic fact checkpoints derived
from the initial database, rework verify_lib around identity/format
invariants, and add seed/schema fixture tests plus a task 9/11
regression test. No question text, mappings, or answers change.
…ayout

Generated SVG (seed_data): auto-fit cover/merch label text so long titles
stay inside the viewBox and backdrop instead of clipping, widen merch
backdrops, and stop truncating merch titles mid-word.
CSS: stop stat pills stretching inside album-copy grid; keep single-item
release/merch grids at card width (auto-fill); show full merch art at its
native 5:6 ratio instead of a 1:1 crop that cut the bottom label; widen
the purchase column and shrink select text so option prices are not
hidden under the dropdown arrow; give the category pill row a visible
scroll affordance; deepen the artist hero overlay so stats stay legible.
JS: ignore Enter on focused selects so it cannot implicitly submit the
cart form with the default variant, and emit English native-validation
messages regardless of browser locale.
Integrate upstream additions (Rotten Tomatoes, Compass, Walmart Careers)
and move Bandcamp from site 23 (port 40021) to site 25 (port 40024):
registry lists in websyn_start.sh/control_server.py stay identical,
Dockerfile EXPOSE and README counts/ports updated, bandcamp app default
port and task web fields moved to 40024.
The shared preview-toggle handler wrote "Preview mock" once a panel was
collapsed again, so every album page showed the wrong label on the second
click. Restore it to "Preview" to match the initial button text.

Found by manual browse after visual QA; cosmetic only, no task verifier or
tasks.jsonl impact.
manager_of_pre_star_li added 4 commits September 13, 2026 23:37
…ty review)

Replace generated SVG art and the custom card theme with real imagery
scraped from bandcamp.com pages (covers, banners, artist images, and
type-matched merch photos), align the shell with the real site (light
theme, wordmark header, category nav, selling-right-now strip, light
release pages), and give the Gift cards / Editorial / Radio categories
their own pages instead of reusing discover. Assets ship through the HF
bundle (see PR aiming-lab#82); tasks.jsonl and verifiers are unchanged.
The newer shared harness no longer injects an authoritative start_url into
run trajectories. Derive the local origin from recorded step URLs instead
(and treat a no-op run without steps as having no navigation evidence),
while keeping the previous behaviour whenever start_url is present. Adds a
regression test for both shapes.
…p.com

Cover art in grids toggles play state instead of navigating (titles still
open the release); album pages get the music/merch/community tabs, player
with a real elapsed-time counter, format blocks, artist card and
discography; home gains the live Selling right now feed (flags, relative
times, pause/unpause), Bandcamp Daily and Album of the Day sections; an
/artists page backs the Most supported link; category tabs highlight the
active filter; the compare page is two columns with a static form.
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