Skip to content

Add Target WebHarbor mirror#51

Open
Lxr-max wants to merge 1 commit into
aiming-lab:mainfrom
Lxr-max:add-target-site
Open

Add Target WebHarbor mirror#51
Lxr-max wants to merge 1 commit into
aiming-lab:mainfrom
Lxr-max:add-target-site

Conversation

@Lxr-max

@Lxr-max Lxr-max commented Jun 5, 2026

Copy link
Copy Markdown

Summary

Implementation Summary

  • Added a new local Target mirror under sites/target/ using Flask, SQLAlchemy, SQLite, Jinja templates, and local CSS/JS.
  • Implemented product search, category browsing, filters, product details, compare, wishlist, cart, pickup/delivery mock checkout, order lookup, account orders/rewards, deals, store lookup, and support/help flows.
  • Registered Target in websyn_start.sh, control_server.py, Dockerfile, and README quickstart guidance.
  • Kept all runtime behavior fully local and deterministic with synthetic products, stores, orders, reviews, support articles, and rewards data.

Seed Row Counts

  • users: 4
  • categories: 12
  • brands: 25
  • products: 156
  • stores: 15
  • store_inventory: 1989
  • reviews: 339
  • orders: 60
  • order_items: 80
  • reward_accounts: 4
  • reward_activities: 20
  • wishlist_items: 16
  • compare_items: 12
  • cart_items: 8
  • deals: 18
  • support_articles: 24
  • support_tickets: 8
  • protection_plans: 312
  • pickup_slots: 45
  • delivery_options: 3
  • payment_mocks: 60

Benchmark Users

Tasks

  • Task count: 20
  • Categories covered:
    • product search
    • category/brand/price filtering
    • cheapest-item discovery
    • product comparison
    • add to cart
    • pickup/delivery selection
    • mock checkout
    • order lookup
    • account orders
    • deals
    • store details
    • support search

Key Routes

  • /, /home
  • /categories, /category/<category_slug>
  • /products, /product/<sku>
  • /deals, /stores, /stores/<store_slug>
  • /support, /help, /search?q=
  • /cart, /checkout, /checkout/shipping, /checkout/pickup, /checkout/payment, /checkout/review, /checkout/confirmation
  • /login, /register, /logout, /account, /account/orders, /account/rewards, /account/wishlist
  • /order-lookup, /order/<order_number>

Verification Commands and Results

  • py -3 -m py_compile sites/target/app.py
  • py -3 -m py_compile sites/target/seed_data.py
  • py -3 -m py_compile sites/target/_health.py
  • sites/target/tasks.jsonl JSONL/schema validation ✅ (20 tasks)
  • docker build -t webharbor:target-pr .
  • docker run -d --name webharbor-target-submit -p 8401:8101 -p 44000-44015:40000-40015 webharbor:target-pr
  • Control server health at http://localhost:8401/health ✅ (16/16 sites alive)
  • Route smoke for /, /home, /categories, /products, /cart, /checkout, /order-lookup, /support, /login, /stores, /deals, /search?q=pickup
  • Real HTTP smoke for login, account pages, filters, compare, wishlist, cart, pickup checkout, confirmation, order lookup, logout ✅ (http-smoke-ok TGT-240061)

Docker Result

  • Docker image built successfully after fetching/extracting the pinned base assets and rebuilding the local Target seed DB.
  • On this Windows machine, the bash helper scripts have CRLF sensitivity, so I used the equivalent documented manual Docker/HF steps instead of relying on scripts/build.sh and scripts/extract_assets.sh directly.

Smoke Test Result

  • Passed for public routes, search/filter flows, product detail, support/store search, login/account flows, compare/wishlist/cart, pickup checkout, confirmation, and order lookup.

Reset + MD5 Result

  • POST /reset/target returned ready: true
  • MD5 matched inside the container after reset:
    • f7dc6396667b9dccb784c8d8612ea672 /opt/WebSyn/target/instance/target.db
    • f7dc6396667b9dccb784c8d8612ea672 /opt/WebSyn/target/instance_seed/target.db
  • Container restart recheck also passed: homepage 200 and MD5 stayed identical ✅

Screenshot Paths

  • sites/target/scraped_data/submission_review/home.png
  • sites/target/scraped_data/submission_review/search_results.png
  • sites/target/scraped_data/submission_review/product_detail.png
  • sites/target/scraped_data/submission_review/stores.png
  • sites/target/scraped_data/submission_review/support.png
  • sites/target/scraped_data/submission_review/login.png
  • sites/target/scraped_data/submission_review/checkout.png
  • sites/target/scraped_data/submission_review/order_lookup.png
  • sites/target/scraped_data/submission_review/deals.png
  • sites/target/scraped_data/submission_review/mobile_home.png

Known Limitations

  • Visual assets are locally generated deterministic SVGs rather than official Target media.
  • No real payment, real checkout, real inventory sync, real delivery order, or live Target API integration.
  • .assets-revision was not modified at this stage; it should only be updated after the upstream HF asset change is merged and a stable merge revision is available.
  • Screenshot capture for authenticated account/confirmation pages was not fully automated in-browser; those flows were instead verified through real HTTP smoke checks.

HF Asset Status

Manual Review Notes

  • This is not a live Target integration; every retail, support, rewards, and order flow is synthetic and deterministic by design.
  • Runtime DBs, screenshots, caches, and the local HF tarball were intentionally left out of the git commit.

@1171-jpg

1171-jpg commented Jul 13, 2026

Copy link
Copy Markdown

Reviewed end-to-end (Playwright + built from the paired HF assets).
Mechanically, it's solid: byte-identical reset holds, and the core flows work. But visual fidelity is well off the real target.com: all imagery is generated SVG placeholders, 10/12 category images don't even render (an unescaped & in the SVG generator produces invalid XML), and there are functional and task-quality gaps (multi-word search returns 0, star ratings show mojibake, T11 has 3 valid answers, T14 has no distractors).

Given the size of the gap I'll take this on: I'll rebuild toward real target.com fidelity and author the 20 verifiers/rubrics, then open a follow-up PR based on this one. Thanks @Lxr-max for the solid mechanical base and the honest Known-Limitations note.

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