← back to AbramsOS
auto-data-snapshot: 2026-08-07T19:03:19 (2 data files) — data/mode-claims-backfill.json db/migrations/0016_settlement_claims.sql
e62bbd3a1f590d23961d6e7a5176c986205f95d0 · 2026-08-07 19:03:35 -0700 · auto-commit-fleet
Files touched
A data/mode-claims-backfill.jsonA db/migrations/0016_settlement_claims.sql
Diff
commit e62bbd3a1f590d23961d6e7a5176c986205f95d0
Author: auto-commit-fleet <steve@designerwallcoverings.com>
Date: Fri Aug 7 19:03:35 2026 -0700
auto-data-snapshot: 2026-08-07T19:03:19 (2 data files) — data/mode-claims-backfill.json db/migrations/0016_settlement_claims.sql
---
data/mode-claims-backfill.json | 202 +++++++++++++++++++++++++++++++
db/migrations/0016_settlement_claims.sql | 55 +++++++++
2 files changed, 257 insertions(+)
diff --git a/data/mode-claims-backfill.json b/data/mode-claims-backfill.json
new file mode 100644
index 0000000..2e4a1f7
--- /dev/null
+++ b/data/mode-claims-backfill.json
@@ -0,0 +1,202 @@
+{
+ "generated_at": "2026-08-08T02:01:08.870Z",
+ "today": "2026-08-08",
+ "corpus_emails": 11,
+ "distinct_settlements": 19,
+ "open": 12,
+ "expired": 7,
+ "settlements": [
+ {
+ "name": "Aetna L-ADR Surgery Settlement",
+ "slug": "aetna-life-insurance-2-56m-l-adr-surgery-denial-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/aetna-life-insurance-2-56m-l-adr-surgery-denial-settlement/",
+ "payout_text": "Up to $55,000",
+ "payout_max_cents": 5500000,
+ "deadline": "2026-08-11",
+ "proof_required": null,
+ "no_claim_required": false,
+ "eligibility_question": "If you were denied coverage for a qualifying lumbar artificial disc replacement surgery.",
+ "category": "product",
+ "source_email_id": "19fdde2f8fb5dd99",
+ "source_email_date": "2026-08-07",
+ "raw_block": "Aetna L-ADR Surgery Settlement – Up to $55,000\nIf you were denied coverage for a qualifying lumbar artificial disc replacement surgery.\nDeadline: August 11, 2026\nhttps://modeclassactionsdaily.com/hard-rock-stadium-14m-copa-america-final-settlement-2024-up-to-2000-per-ticket/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "Mission Community Hospital / Deanco Healthcare Data Breach Settlement",
+ "slug": "up-to-5100-mission-community-hospital-deanco-healthcare-data-breach-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/up-to-5100-mission-community-hospital-deanco-healthcare-data-breach-settlement/",
+ "payout_text": "Up to $5,100",
+ "payout_max_cents": 510000,
+ "deadline": "2026-08-12",
+ "proof_required": true,
+ "no_claim_required": false,
+ "eligibility_question": "Received a data breach notice from Mission Community Hospital, Deanco Healthcare, or one of its affiliates?",
+ "category": "data_breach",
+ "source_email_id": "19fa53d16539f0cc",
+ "source_email_date": "2026-07-27",
+ "raw_block": "Mission Community Hospital / Deanco Healthcare Data Breach Settlement – Up to $5,100\nReceived a data breach notice from Mission Community Hospital, Deanco Healthcare, or one of its affiliates?\n• Up to $5,000 for documented losses\n• $100 California statutory payment for eligible California residents\n• Two years of medical monitoring\nDeadline: August 12, 2026\nhttps://modeclassactionsdaily.com/up-to-5100-mission-community-hospital-deanco-healthcare-data-breach-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "Onsite Mammography Settlement",
+ "slug": "up-to-5000-onsite-mammography-data-breach-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/up-to-5000-onsite-mammography-data-breach-settlement/",
+ "payout_text": "Up to $5,000",
+ "payout_max_cents": 500000,
+ "deadline": "2026-08-11",
+ "proof_required": true,
+ "no_claim_required": false,
+ "eligibility_question": "Received a notice about the data breach?",
+ "category": "data_breach",
+ "source_email_id": "19fdde2f8fb5dd99",
+ "source_email_date": "2026-08-07",
+ "raw_block": "Onsite Mammography Settlement – Up to $5,000\nReceived a notice about the data breach?\n• Up to $5,000 for documented losses\n• A pro rata cash payment\n• 3 years of credit and medical data monitoring\nDeadline: August 11, 2026\nhttps://modeclassactionsdaily.com/up-to-5000-onsite-mammography-data-breach-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "Wright Brothers Construction Data Breach Settlement",
+ "slug": "wright-brothers-construction-data-breach-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/wright-brothers-construction-data-breach-settlement/",
+ "payout_text": "Up to $4,767",
+ "payout_max_cents": 476700,
+ "deadline": "2026-08-18",
+ "proof_required": null,
+ "no_claim_required": false,
+ "eligibility_question": null,
+ "category": "data_breach",
+ "source_email_id": "19fce6fe4a0ecf91",
+ "source_email_date": "2026-08-04",
+ "raw_block": "Wright Brothers Construction Data Breach Settlement – Up to $4,767\n• Up to $4,767 for documented expenses, fraud losses, and lost time\n• $50 alternative cash payment\n• Three years of credit monitoring\nDeadline: August 18, 2026\nhttps://modeclassactionsdaily.com/wright-brothers-construction-data-breach-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "Triage Staffing Data Breach Settlement",
+ "slug": "triage-staffing-data-breach-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/triage-staffing-data-breach-settlement/",
+ "payout_text": "Up to $3,000",
+ "payout_max_cents": 300000,
+ "deadline": "2026-08-10",
+ "proof_required": true,
+ "no_claim_required": false,
+ "eligibility_question": null,
+ "category": "data_breach",
+ "source_email_id": "19fd39643b8765d2",
+ "source_email_date": "2026-08-05",
+ "raw_block": "Triage Staffing Data Breach Settlement – Up to $3,000\n• Up to $3,000 for documented losses\n• $50 alternative cash payment\nDeadline: August 10, 2026\nhttps://modeclassactionsdaily.com/triage-staffing-data-breach-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "LCPtracker Data Breach Settlement",
+ "slug": "lcptracker-data-breach-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/lcptracker-data-breach-settlement/",
+ "payout_text": "Up to $2,500",
+ "payout_max_cents": 250000,
+ "deadline": "2026-08-08",
+ "proof_required": true,
+ "no_claim_required": false,
+ "eligibility_question": null,
+ "category": "data_breach",
+ "source_email_id": "19fd39643b8765d2",
+ "source_email_date": "2026-08-05",
+ "raw_block": "LCPtracker Data Breach Settlement – Up to $2,500\n• Up to $2,500 for documented losses\n• Estimated $50 alternative cash payment\n• Two years of free credit monitoring\nDeadline: August 8, 2026\nhttps://modeclassactionsdaily.com/lcptracker-data-breach-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "Hard Rock Stadium Settlement",
+ "slug": "hard-rock-stadium-14m-copa-america-final-settlement-2024-up-to-2000-per-ticket",
+ "mode_url": "https://modeclassactionsdaily.com/hard-rock-stadium-14m-copa-america-final-settlement-2024-up-to-2000-per-ticket/",
+ "payout_text": "Up to $2,000 Per Ticket",
+ "payout_max_cents": 200000,
+ "deadline": "2026-08-11",
+ "proof_required": null,
+ "no_claim_required": false,
+ "eligibility_question": "Bought a valid ticket to the 2024 Copa América Final but couldn't get into the stadium?",
+ "category": "financial",
+ "source_email_id": "19fdde2f8fb5dd99",
+ "source_email_date": "2026-08-07",
+ "raw_block": "Hard Rock Stadium Settlement — Up to $2,000 Per Ticket\nBought a valid ticket to the 2024 Copa América Final but couldn't get into the stadium?\nDeadline: August 11, 2026\nhttps://modeclassactionsdaily.com/aetna-life-insurance-2-56m-l-adr-surgery-denial-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "Alta Resources Data Breach Settlement",
+ "slug": "alta-resources-675000-data-breach-class-action-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/alta-resources-675000-data-breach-class-action-settlement/",
+ "payout_text": "Up to $2,000",
+ "payout_max_cents": 200000,
+ "deadline": "2026-08-17",
+ "proof_required": null,
+ "no_claim_required": false,
+ "eligibility_question": null,
+ "category": "data_breach",
+ "source_email_id": "19fc4232e70d233a",
+ "source_email_date": "2026-08-02",
+ "raw_block": "Alta Resources Data Breach Settlement – Up to $2,000\n• Estimated $50 alternative cash payment\n• Up to $2,000 for documented expenses\nDeadline: August 17, 2026\nhttps://modeclassactionsdaily.com/alta-resources-675000-data-breach-class-action-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "Insurance Kickbacks Settlement",
+ "slug": "phh-mortgage-insurance-kickbacks-settlement-claim-875-per-loan",
+ "mode_url": "https://modeclassactionsdaily.com/phh-mortgage-insurance-kickbacks-settlement-claim-875-per-loan/",
+ "payout_text": "$875 Per Eligible Loan",
+ "payout_max_cents": 87500,
+ "deadline": "2026-08-11",
+ "proof_required": false,
+ "no_claim_required": false,
+ "eligibility_question": "If you had a residential mortgage loan with PHH, this settlement provides a fixed payment. No receipts are required to file a claim.",
+ "category": "financial",
+ "source_email_id": "19fdde2f8fb5dd99",
+ "source_email_date": "2026-08-07",
+ "raw_block": "Insurance Kickbacks Settlement – $875 Per Eligible Loan\nIf you had a residential mortgage loan with PHH, this settlement provides a fixed payment. No receipts are required to file a claim.\nDeadline: August 11, 2026\nhttps://modeclassactionsdaily.com/phh-mortgage-insurance-kickbacks-settlement-claim-875-per-loan/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "The Polyclinic Disability Accommodation Settlement",
+ "slug": "the-polyclinic-350k-disability-accommodation-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/the-polyclinic-350k-disability-accommodation-settlement/",
+ "payout_text": "$350K",
+ "payout_max_cents": 35000,
+ "deadline": "2026-08-08",
+ "proof_required": null,
+ "no_claim_required": false,
+ "eligibility_question": "If you requested a hearing, vision, or speech accommodation while receiving care from The Polyclinic and it wasn't properly provided.",
+ "category": "other",
+ "source_email_id": "19fd39643b8765d2",
+ "source_email_date": "2026-08-05",
+ "raw_block": "The Polyclinic Disability Accommodation Settlement – $350K\nIf you requested a hearing, vision, or speech accommodation while receiving care from The Polyclinic and it wasn't properly provided.\nDeadline: August 8, 2026\nhttps://modeclassactionsdaily.com/the-polyclinic-350k-disability-accommodation-settlement/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "SolarEdge Securities Settlement",
+ "slug": "solaredge-securities-settlement-investors-may-claim-part-of-55-million-fund",
+ "mode_url": "https://modeclassactionsdaily.com/solaredge-securities-settlement-investors-may-claim-part-of-55-million-fund/",
+ "payout_text": "$55 Million Fund",
+ "payout_max_cents": 5500,
+ "deadline": "2026-08-17",
+ "proof_required": null,
+ "no_claim_required": false,
+ "eligibility_question": "Purchased SolarEdge Technologies stock in 2023? You might be eligible to file for a share of the fund.",
+ "category": "financial",
+ "source_email_id": "19faa6370db11c0d",
+ "source_email_date": "2026-07-28",
+ "raw_block": "SolarEdge Securities Settlement – $55 Million Fund\nPurchased SolarEdge Technologies stock in 2023? You might be eligible to file for a share of the fund.\nDeadline: August 17, 2026\nhttps://modeclassactionsdaily.com/solaredge-securities-settlement-investors-may-claim-part-of-55-million-fund/?utm_source=email",
+ "seen_count": 1
+ },
+ {
+ "name": "EMM Loans Data Breach Settlement",
+ "slug": "emm-loans-data-breach-class-action-settlement",
+ "mode_url": "https://modeclassactionsdaily.com/emm-loans-data-breach-class-action-settlement/",
+ "payout_text": "$50 Payment",
+ "payout_max_cents": 5000,
+ "deadline": "2026-08-17",
+ "proof_required": false,
+ "no_claim_required": false,
+ "eligibility_question": "Received a notice about the EMM Loans data breach? You can choose a $50 cash payment with no proof required, or claim up to $4,000 for documented losses.",
+ "category": "data_breach",
+ "source_email_id": "19faa6370db11c0d",
+ "source_email_date": "2026-07-28",
+ "raw_block": "EMM Loans Data Breach Settlement – $50 Payment\nReceived a notice about the EMM Loans data breach? You can choose a $50 cash payment with no proof required, or claim up to $4,000 for documented losses.\nDeadline: August 17, 2026\nhttps://modeclassactionsdaily.com/emm-loans-data-breach-class-action-settlement/?utm_source=email",
+ "seen_count": 1
+ }
+ ]
+}
\ No newline at end of file
diff --git a/db/migrations/0016_settlement_claims.sql b/db/migrations/0016_settlement_claims.sql
new file mode 100644
index 0000000..72cc9a3
--- /dev/null
+++ b/db/migrations/0016_settlement_claims.sql
@@ -0,0 +1,55 @@
+-- 0016_settlement_claims.sql — class-action settlement claim tracker + openclaw fill queue.
+--
+-- Source: the "Mode Class Actions" daily newsletter (Dan N. <daniel@mail.modemobile.com>),
+-- which surfaces class-action settlements with payouts + deadlines + claim URLs. This module
+-- ingests those emails, dedupes to distinct settlements, tracks Steve's eligibility decision,
+-- and stages an openclaw "fill (not submit)" job for the ones he confirms he qualifies for.
+--
+-- HARD RULE (encoded in fill_state + the app): the pipeline never fabricates eligibility and
+-- never clicks the final penalty-of-perjury SUBMIT. fill_state stops at 'prefilled_awaiting_submit'.
+
+BEGIN;
+
+CREATE TABLE IF NOT EXISTS settlement_claim (
+ id text PRIMARY KEY,
+ user_id text NOT NULL REFERENCES user_account(id) ON DELETE CASCADE,
+ slug text NOT NULL, -- dedupe key from the mode URL path
+ name text NOT NULL, -- settlement name, e.g. "PHH Mortgage Insurance Kickbacks"
+ mode_url text, -- modeclassactionsdaily.com/<slug> landing page
+ admin_url text, -- resolved official claim-administrator site (filled later)
+ payout_text text, -- verbatim payout blurb, e.g. "$875 per eligible loan"
+ payout_max_cents bigint, -- best-effort parsed ceiling for ranking (nullable)
+ deadline date, -- claim filing deadline
+ proof_required boolean, -- true if receipts/docs needed; false if "no proof required"
+ no_claim_required boolean DEFAULT false, -- true = automatic payment, nothing to file
+ eligibility_question text, -- the "are you a class member?" test, in plain English
+ eligibility_state text NOT NULL DEFAULT 'unreviewed',
+ -- unreviewed | eligible | not_eligible | maybe (Steve's decision — gates any fill)
+ fill_state text NOT NULL DEFAULT 'none',
+ -- none | queued | prefilled_awaiting_submit | submitted | skipped | expired
+ category text, -- data_breach | financial | product | employment | other
+ source_email_id text, -- Gmail message id it was extracted from
+ source_email_date timestamptz,
+ first_seen_at timestamptz NOT NULL DEFAULT now(),
+ updated_at timestamptz NOT NULL DEFAULT now(),
+ notes text,
+ raw_block text, -- the raw newsletter text block, for audit
+ UNIQUE (user_id, slug)
+);
+CREATE INDEX IF NOT EXISTS settlement_claim_user_idx ON settlement_claim (user_id, deadline);
+CREATE INDEX IF NOT EXISTS settlement_claim_state_idx ON settlement_claim (user_id, eligibility_state, fill_state);
+
+-- One row per openclaw fill attempt (append-only audit of what the browser agent did).
+CREATE TABLE IF NOT EXISTS settlement_fill_job (
+ id text PRIMARY KEY,
+ claim_id text NOT NULL REFERENCES settlement_claim(id) ON DELETE CASCADE,
+ user_id text NOT NULL,
+ state text NOT NULL DEFAULT 'staged', -- staged | filling | prefilled_awaiting_submit | submitted | failed
+ brief_jsonb jsonb NOT NULL DEFAULT '{}'::jsonb, -- the openclaw job brief (URL, fields, guardrails)
+ result_jsonb jsonb, -- screenshots/paths/notes from the run
+ created_at timestamptz NOT NULL DEFAULT now(),
+ updated_at timestamptz NOT NULL DEFAULT now()
+);
+CREATE INDEX IF NOT EXISTS settlement_fill_job_claim_idx ON settlement_fill_job (claim_id, created_at);
+
+COMMIT;
← 4f346d9 chore: v0.4.0 (session close — claims tracker + auth hardeni
·
back to AbramsOS
·
AbramsOS: class-action settlement claim-filler (Mode feed → 7ff4ec3 →