You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Local port: 40015 in the container, typically exposed as http://localhost:41015/ during testing
The mirror implements an NBA.com-style sports information portal with homepage stories, games/schedule, playoffs, draft, fantasy, stats, standings, teams, players, news/articles, search, tickets, store/cart/checkout, and account flows. Runtime behavior is deterministic and uses SQLite plus local static assets only.
Seeded data
Major seeded model counts:
Model
Rows
Users
4
Teams
30
Players
28
Games
10
Articles
22
Products
16
Cart items
8
Orders
4
Order items
4
Favorites
12
Ticket requests
0
Functional coverage
Implemented routes and flows include:
NBA.com-style homepage with top game strip, hero story, story cards, headlines, trending/news sections, recaps, and right rail
Games and schedule pages with official-style game cards and playoff schedule layout
Playoffs bracket/news page
Draft page with combine, lottery, mock draft, key dates, draft info, and classic moments sections
Fantasy page with featured stories, watch cards, Yahoo High Score sections, and dense player-stat table
Stats and standings pages with official-style leader panels, tables, conference standings, and bracket context
Teams by division, team profiles, rosters, schedules, and team stats
Players table, filters, player profiles, and stat summaries
News/category browsing and article detail pages
Search grouped by teams, players, games, articles, stats, and store items
Tickets request flow, local NBA Store, bag, checkout, account, orders, and favorites
No stale TBD arena task from an older schedule layout
Fewer login-dependent tasks; only tasks that genuinely require account/cart/profile state ask the user to sign in
Paired HuggingFace dataset PR
Paired asset-side PR:
<PASTE_HUGGINGFACE_DATASET_PR_LINK_HERE>
The HF asset bundle is nba.tar.gz and contains:
nba/instance_seed/nba.db
nba/static/images/
nba/static/external_cache/
After the HF PR merges, this code PR should bump .assets-revision to the merged dataset revision.
Visual fidelity
The NBA mirror is designed to closely follow NBA.com rather than a generic Bootstrap demo:
Dark NBA-style top navigation with major nav entries: Games, Schedule, Watch, Playoffs, News, Draft, Stats, Standings, Teams, Players, NBA Play, Fantasy, BAL 2026, League Pass, Store, Tickets, Sign In
Homepage portal layout with top score strip, hero story module, story grids, headlines rail, trending sections, game recaps, Around the NBA content, social/affiliate-style right rail sections
Schedule, Draft, Fantasy, Playoffs, Stats, and Standings pages modeled after NBA.com page structures
Teams grouped by NBA divisions with local profile/stats/schedule/roster links
Dense player/stat/standings tables for benchmark comparison tasks
Local NBA.com-style imagery served from static/images/; no runtime network fetches
We deployed the environment locally and ran the full review checklist; every finding below was independently reproduced, and fidelity was checked against the real upstream site.
Issues (summary)
BLOCKER: .assets-revision pins 'main' but nba.tar.gz is not on main (CI fail-closed)
BLOCKER: Port-slot 40015 collides with merriam_webster on current main (merge conflict / clobber)
MINOR: NBA--18 'pre-order total' is non-deterministic due to non-empty seeded cart
MINOR: NBA--13 answer leaks in the search-result dek (no detail page needed)
MINOR: NBA--16 listing card exposes name+team+color+price (no product page needed)
MINOR: NBA--5 has a tie for second-highest BPG, making 'the top two' ambiguous
Mechanical checks: FAIL
Byte-identical reset: OK. Idempotent seed gated on Team.query.count()>0 and seed_benchmark_users() on alice's email; fresh boot reproduces the seed md5.
Visual fidelity: PASS
High-fidelity clone. Homepage (/tmp/nba_home.png) reproduces the utility nav, full main nav (Games/Schedule/Watch/Playoffs/News/Draft/Stats/Standings/Teams/Players/Store/Tickets/Sign In), hero story with a real player photo, Stories carousel, Trending Now, 2026 Postseason, Game Recaps, footer.
Functional depth: PASS
All flows driven with Playwright. Login (alice.j@test.com/TestPass123!) → /account; wrong password → "Invalid email or password." Register creates + auto-logs-in; duplicate email → "already registered." Search is scored/additive (multi-word does not zero out).
Task quality: PASS (with nits)
20 tasks; difficulty bar met (≥5 tasks need ≥5 actions; several multi-step/comparison tasks; no task solvable by clicking result #1, since listings hide PPG/APG and standings hide arena/coach).
Required fixes before approval
(BLOCKER) Resolve the 40015 collision with merriam_webster. Rebase on current main and register nba at index 16 → port 40016 in all three files in sync: websyn_start.sh SITES, control_server.py SITES, and DockerfileEXPOSE (raise to 40000-40016).
(BLOCKER) Bump all 20 task URLs in lockstep. After the rebase, change every "web":"http://localhost:40015/" in sites/nba/tasks.jsonl to the new nba port (:40016/) so tasks target nba, not merriam_webster.
(MAJOR) Pin .assets-revision to a merged dataset SHA that provably contains nba.tar.gz (not the floating main, not a PR ref).
(MAJOR) Fix NBA--18 determinism. Either empty the benchmark users' seeded carts in seed_benchmark_users() (so the total is the intended $259.78) or rephrase the task to instruct clearing the bag first / report only the added jersey line.
(MAJOR) Fix the NBA--13 leak. Shorten the "Bucks focus on half-court spacing" dek so it no longer enumerates both balanced elements; keep "Antetokounmpo rim pressure / Lillard range" only in the article body.
I’m claiming PR #30 for reviewer takeover. I’ll preserve @lyc61c’s original contribution, carry it on a separate reviewer-owned branch, audit and fix the environment/tasks/verifiers, and submit a linked Draft Review: PR with reproducible evidence. I will not merge either PR.
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
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.
Summary
Adds a new WebHarbor mirror site for NBA.com:
nba40015in the container, typically exposed ashttp://localhost:41015/during testingThe mirror implements an NBA.com-style sports information portal with homepage stories, games/schedule, playoffs, draft, fantasy, stats, standings, teams, players, news/articles, search, tickets, store/cart/checkout, and account flows. Runtime behavior is deterministic and uses SQLite plus local static assets only.
Seeded data
Major seeded model counts:
Functional coverage
Implemented routes and flows include:
Benchmark tasks
sites/nba/tasks.jsonlcontains 20 WebVoyager-schema benchmark tasks.Task coverage includes:
The tasks were revised to reduce benchmark leaks:
alice.j@test.com/TestPass123!task leakageTBD arenatask from an older schedule layoutPaired HuggingFace dataset PR
Paired asset-side PR:
<PASTE_HUGGINGFACE_DATASET_PR_LINK_HERE>
The HF asset bundle is
nba.tar.gzand contains:nba/instance_seed/nba.dbnba/static/images/nba/static/external_cache/After the HF PR merges, this code PR should bump
.assets-revisionto the merged dataset revision.Visual fidelity
The NBA mirror is designed to closely follow NBA.com rather than a generic Bootstrap demo:
static/images/; no runtime network fetchesScreenshot evidence to attach to this PR:
http://localhost:41015//schedule/draft/fantasy/playoffs/stats/standingsTest plan
python3 -m py_compile sites/nba/app.py./scripts/build.sh webharbor:devnbaalive on port40015//games/schedule/playoffs/draft/fantasy/stats/standings/teams/players/news/search/tickets/shop/loginPOST /reset/nbareturned"ready": trueReset evidence
Notes for reviewers
sites/nba/image/is a local scratch/reference directory and should not be included in the final GitHub PR.