Skip to content

Integrate Craigslist #5 → #60 → #103 with authentic assets and reviewed fixes - #138

Merged
QianhuiWu merged 15 commits into
mainfrom
integrate/pr103-craigslist
Sep 18, 2026
Merged

QianhuiWu merged 15 commits into
mainfrom
integrate/pr103-craigslist

Conversation

@QianhuiWu

Copy link
Copy Markdown
Collaborator

Summary

Integrates the Craigslist contribution and both review layers, followed by our audited revision. Preserves original commit ancestry and attribution with separate merge commits in this order:

  1. Original Add Craigslist mirror #5 by @FlowRays.
  2. Verifier continuation Add Craigslist mirror + task verifiers (site by @FlowRays, verifiers by reviewer) #60 by @DEM1TASSE.
  3. Review Review: Add Craigslist mirror + task verifiers (#60) #103 by @TabsPhasers.
  4. Reviewed source-backed content, UI, task/rubric/verifier fixes (2ae575e).

Please merge with a merge commit, not squash/rebase. Existing 41 site ports stay unchanged; Craigslist is appended at port 40041.

Reviewed fixes

  • Replace generated/placeholder catalogue with 78 authentic source posts and 512 distinct corresponding original images; preserve seller caveats and provenance. Sixteen source posts genuinely have no photos.
  • Repair filtering, query sorting, galleries, responsive layouts, local messages, account/posting flows and ownership/CSRF safeguards; remove fake map/flag/calendar affordances.
  • Align all 20 natural task prompts, rubrics and deterministic verifiers. Strengthen easy tasks with substantive comparisons/outcomes, not JSON-format requirements or click padding.
  • Grade immutable per-run snapshots, exact state deltas, entity-bound answer facts and message direction/content. No mandatory LLM or mutable live-DB fallback.

HF assets — already merged

Validation

  • Full 42-site Docker build, health and homepage checks; Craigslist byte-identical reset/restart.
  • 7 route test cases; 608 managed-file inventory checks; registry/syntax/whitespace checks.
  • 20/20 corrected browser regressions and official grades in the original fix review, with 20 GIFs (236 recorded steps: 206 actions + 30 viewport checks).
  • 20/20 regraded through the integrated official evaluator; 184/184 targeted positive/negative controls.
  • 5 additional integrated-container browser regressions covering comparison/save, saved-search reopen, posting, inbox/reply and hide. These are known-target scripted tests, not independent LLM trials.

Details: sites/craigslist/INTEGRATION_REPORT.md.

Limits

Secondary LLM judge not configured. Natural-answer parsing has bounded English coverage; source seller claims are historical. No Docker image publication or deployment is included. Existing local preview/dashboard are preserved.

Closes #5
Closes #60
Closes #103

FlowRays and others added 15 commits July 2, 2026 11:08
Reviewer deliverable for the Craigslist mirror (site by @FlowRays, PR #5):
one deterministic verifier per task under sites/craigslist/verify/, plus
verifier_path + judge_rubric in every tasks.jsonl row. No answer key in
tasks.jsonl — ground truth lives only inside the verifiers.

Deterministic-first: listing-open navigation gate (anti knowledge-shortcut;
listings are synthetic) + SQLite DB after-state for the stateful tasks
(saved_listings / saved_searches / hidden_listings / messages / new postings /
user profile) + answer vs frozen ground truth, LLM only as an anchored check.

Validated against the official react agent (agent_demo/agent.py): a no-op run
fails all 20 verifiers; on the full 20-task run verifier and LLM judge agree
14/20, and the divergences favor the deterministic verifier (it catches DB
after-state and rejects blank/incomplete answers the judge false-positives).

Note: verify_0 and verify_3 are limited by a task bug — their save-targets are
already in the seed's saved-listings, so the save cannot be verified; the
review asks the author to fix those tasks.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…expressible

- seed: pre-saved chair is now the Black office chair (id 2), not the Ergonomic
  task chair (id 1) - task 0's save target must be absent from the initial
  saved list; the 2006 Accord EX (id 13) stays pre-seeded for task 13 and the
  Accord pin is explicit.
- task 3: retarget from the pre-saved 2006 Accord EX sedan to the non-pre-saved
  2011 Accord EX-L (id 15); 2006 EX becomes a near-miss distractor.
- verify_0/verify_3: initial->after delta checks (absent initially, present
  after) replace the after-only check that could not distinguish a real save.
- verify_13: KEEP updates to the new pre-seeded furniture id (2).
- save-search form: category and max price become user-editable (were hidden
  empty fields); verify_5 now enforces category=furniture and max_price=200.
- README: fix 16-vs-17 site count inconsistency.
…st form, unify saved labels

- search: drop the sqft chip from result cards. The old 'and not is_housing'
  guard only suppressed it on category pages while generic query pages (where
  tasks 1/4 actually search) leaked listing sqft - an answer shortcut that
  lets tasks be answered without opening the posting.
- listings: add POST /listing/<id>/unhide and a 'hidden listings' panel on the
  account page; hiding was previously irreversible with no UI to recover.
- post form: tag each field group with its category group and toggle visibility
  with a few lines of JS (progressive enhancement; all fields remain when JS
  is off). Posting a bike no longer shows bedrooms/sqft/compensation fields.
- templates: unify saved-listing vocabulary - header badge and nav links now
  read 'saved' instead of the mixed 'faves'/'favorites'; object-specific
  headings ('saved listings', 'saved searches') are unchanged.
…otos + generated placeholders

The scraped photo pool only covers apartments/cars/jobs and pick_image dealt
pool photos round-robin, so 119/183 listings had no image and others showed a
different real item's photo (the 2006 Accord EX carried the 2011 EX-L's photo).

- real photos are now used only when the listing title matches the photo's own
  filename tokens (20 exact matches, incl. the correct Accord for id 13/15).
- every other listing gets a deterministic SVG placeholder generated at seed
  time (category label + title, hash-derived colors) - 183/183 listings have a
  truthful image, regenerable from seed_data.py alone.
- galleries collapse to the listing's own single image; pooling other items'
  photos into a posting's carousel was part of the mismatch defect.
@QianhuiWu
QianhuiWu merged commit 8099846 into main Sep 18, 2026
@QianhuiWu QianhuiWu mentioned this pull request Sep 18, 2026
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