Skip to content

feat(watch): add watchlist and price-drop check via Serval #63 - #64

Merged
yashiels merged 1 commit into
mainfrom
agent/watchlist
Sep 27, 2026
Merged

yashiels merged 1 commit into
mainfrom
agent/watchlist

Conversation

@yashiels

Copy link
Copy Markdown
Owner

Watchlist and daily price-drop check on top of price history (Serval). Plan: docs/plans/watchlist.md, Oracle-signed after 7 rounds.

  • watch add|rm|list|check, add --from-wishlist <groupId> (read-only Takealot call)
  • local watchlist.json, 0600, strictly validated, never overwritten when invalid
  • reasons: target, drop % from latest high, all-time low; arm/disarm so each drop alerts once
  • request cap counts HTTP attempts incl. retries; 3 s between fetches; stop on 429/403; per-PLID single-flight cache
  • directory lock with fencing: every shared write asserts ownership first, lock_lost aborts without writing
  • runError + exit codes built for a daily cron

Implemented by a codex worker over acpx (3 rounds). Code review: Oracle, 5 rounds, signed off. CI=true make ci: 553 passed, 3 live-only skipped. Live smoke against Serval on a temp config dir.

Refs #51
Closes #63

@yashiels
yashiels merged commit ce6f047 into main Sep 27, 2026
1 check passed
@yashiels
yashiels deleted the agent/watchlist branch September 27, 2026 11:17

@sentinel-skyner sentinel-skyner Bot 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.

🛡️ Sentinel review

No material issues found in the provided diff.

Automated review via cursorbridge:gpt-5.6-sol. Findings only — not an approval. Push new commits to re-review.

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.

feat: takealot watch (watchlist + daily price-drop check via Serval)

1 participant