Skip to content

Add Versus mirror site - #41

Open
Sun-sunshine06 wants to merge 1 commit into
aiming-lab:mainfrom
Sun-sunshine06:feat/versus-mirror-upstream
Open

Add Versus mirror site#41
Sun-sunshine06 wants to merge 1 commit into
aiming-lab:mainfrom
Sun-sunshine06:feat/versus-mirror-upstream

Conversation

@Sun-sunshine06

Copy link
Copy Markdown

Summary

  • Adds a Versus mirror under sites/versus with product categories, rankings, search, detail pages, side-by-side comparisons, saved comparisons, and benchmark users.
  • Covers smartphones, headphones, cameras, graphics cards, and smartwatches with 20 seeded products and specification-aware search.
  • Registers versus as the next site on the upstream 15-site base, exposed on port 40015.
  • Adds Docker build-time seed generation for the code-generated SQLite seed DB.

Verification

  • sites/versus/venv/Scripts/python.exe -m py_compile sites/versus/app.py
  • python -m py_compile control_server.py
  • tasks.jsonl JSON parse check passed
  • Flask test client smoke: /, /categories, /category/smartphones, /item/iphone-15-pro, /compare, /compare/iphone-15-pro-vs-samsung-galaxy-s24-ultra, /rankings, /search?q=sony+headphones, /login all returned 200
  • Login as alice.j@test.com and save comparison flow returned 200

Note

  • This branch is rebased onto aiming-lab/WebHarbor main and does not include hqhq1025 fork-only site changes.

@Susan571 Susan571 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Reviewer checklist (WebHarbor Review Guide)

Reviewer note: Source-level review (checked out pull/41/head). The mechanical Docker pipeline (build, curl 200, md5 reset) was not run in my environment — please pair with a Docker-capable mechanical pass.

Visual fidelity: ❌ FAIL

  • Compare/rankings IA fits versus.com conceptually and templates are richer than a bare skin, but all product imagery is the /product-art/<slug>.svg placeholder (shapes + brand initials + "{score} Versus Score"). No real product photos → fails the real-images check.

Functional depth: ✅ PASS

  • Category browse, brand/price/min-score filters, product detail, side-by-side compare with a winner, compare-picker, rankings, search, login, save-comparison, account.
  • Data quality is strong: real product names with plausible real specs (Sennheiser Momentum 4 = 60 h battery, Sony WH-1000XM5 = 30 h, Nikon Z8 = 45.7 MP, RTX 4080 Super = 16 GB/320 W). Best data of this contributor's set.

Task quality: ⚠️ Request changes (10 tasks)

  • Good: Versus--1 (headphones ≥50 h → only Momentum 4 qualifies; real distractors), Versus--3 (camera ≥40 MP → Z8 + X-T5), Versus--6 (phones ≤ $1000 highest score → excludes S24 Ultra at $1299). These need spec-reading with near-miss distractors.
  • Leak risk: the Versus Score is rendered on cards/art, so score-comparison tasks (--0, --2) may be answerable without opening detail. Move the deciding value behind the detail/compare page.
  • Only 10 tasks (need 15–20); Versus--5 leaks the password.

Verdict: Request changes

(1) Use real product images; (2) hide the score on cards for score-comparison tasks; (3) provide 15–20 tasks with more ≥5-step reasoning; (4) remove the credential leak. This is the closest of the contributor's set to acceptable on functionality/data.

@jackjin1997

Copy link
Copy Markdown
Contributor

Hi @Sun-sunshine06 — claiming this PR for review.

I'll pick up the reviewer role described in CONTRIBUTING.md: run the mechanical Docker pass that @Susan571's source-level review explicitly left open (build, per-site HTTP, reset/reset-all byte-identical seed check), do the visual/functional pass against versus.com, validate task feasibility, and then add the grading contract (one deterministic verifier per accepted task under sites/versus/verify/, plus verifier_path + judge_rubric in tasks.jsonl).

I'll open a separate Review: PR based on this branch so your commits and authorship are preserved, and link it back here. Known items I'm starting from, per @Susan571's review: placeholder product art instead of real images, Versus Score visible on cards (leak risk for the score-comparison tasks), 10 tasks vs. the 15–20 guidance, and the build-time seed generation vs. the instance_seed/ + HF asset convention. I'll report what I find either way rather than assume.

Please let me know if you're already working on these — happy to coordinate instead of duplicating.

@jackjin1997

Copy link
Copy Markdown
Contributor

Opened the Review PR: #111 (Draft).

Your commit is kept as-is, rebased onto current main — only the three registry files conflicted, and versus now takes index 24 / port 40024. Everything after that commit is reviewer work: the grading contract (17 tasks, 17 deterministic verifiers, 17 rubrics), a CSRF fix, a seed-determinism fix, and verification.

Three things I could not settle and left in the Draft description rather than paper over — the visual gap against versus.com, the placeholder product art (@Susan571's finding, confirmed), and what looks like an invented Versus Score while the specs and MSRPs check out as real. Those are yours to weigh in on if you disagree with any of it.

One correction to the earlier review for the record: Versus--5 putting the benchmark password in the task text is not a leak — 59 task rows across the existing sites do the same. No change needed there.

The environment and grading side is finished and reproducible; commands are in the PR description.

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.

3 participants