Repository navigation
docs(proposals): extension as a primary data source (#1175) - #1178
Conversation
Decision document for JOY (Vietnamese, dark HTML) with an English companion. Covers the current extension and ingest quarantine, how Honey, Keepa and BeeCost source data, a minimal observation payload, consent and store review, anti-poisoning, cold start, per-marketplace coverage, legal notes, why the client is public while verification stays in DOS/Rate-Services, options, milestones, metrics and open questions. No product code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 45 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Docs-only proposal, for JOY to decide on, about expanding the browser extension into a primary data source.
Docs/Proposals/2026-10-28-extension-data-source.html: Vietnamese decision document (dark theme).Docs/Proposals/2026-10-28-extension-data-source.md: short English companion.Recommendation: Option B. With consent, the extension sends a minimal observation (price, stock, SKU, listing URL, timestamp, marketplace; no personal data) into a quarantine table. DOS/Rate-Services verifies it against the crawler and independent submitters before it becomes a public price. The extension never fetches pages the user did not open. Trust scoring, thresholds and crawler cross-checks stay in DOS/Rate-Services.
The proposal also lists mismatches found in the current code that should be fixed under any option:
CHROMEWEBSTORE.mdhas drifted frommanifest.json.*.tiktok.comhost scope is broad.Scope
No change to extension behavior, the ingest API, store listings, secrets or DOS/Rate-Services.
Review
A fresh-context subagent reviewed the proposal against the code. It found 3 P1, 6 P2 and 4 P3 issues, and all were fixed in round 1:
submitter_idis now issued by the server.Closes #1175
🤖 Generated with Claude Code
📌 TL;DR
This PR introduces a comprehensive architectural proposal (in both Vietnamese HTML and English Markdown) to repurpose the browser extension as a primary, consent-based data source for price tracking, bypassing bot-detection walls that currently block private crawlers. It defines a new "quarantine and verify" data pipeline, establishes strict privacy and anti-poisoning boundaries between the public extension and private services, and outlines a phased implementation roadmap.
🎯 Type of Change
🔍 Changes Walkthrough
Docs/Proposals/2026-10-28-extension-data-source.htmlDocs/Proposals/2026-10-28-extension-data-source.md📊 Architectural Flow
flowchart TD subgraph User_Browser [User Browser - Public] A[User Views Product Page] --> B[Extension Content Script] B --> C{User Opt-In?} C -- No --> D[Read-only Lookup<br/>GET /lookup] C -- Yes --> E[Send Minimal Observation<br/>POST /ingest] end subgraph Public_Repo [DOS/Rate - Public] D --> F[Web API] E --> F F --> G[Basic Validation<br/>Zod, Rate Limit, Host Check] G --> H[Quarantine Table<br/>Unverified Data] end subgraph Private_Repo [DOS/Rate-Services - Private] H --> I[Verification Engine] I --> J{Cross-Check} J -- Match Crawler --> K[Promote to Public Price History] J -- Match Independent Submitters --> K J -- Mismatch / Low Trust --> L[Discard / Keep Quarantined] M[Crawler Baseline] --> J N[Submitter Trust Scoring] --> I end K --> O[Public Price History API] O --> A