Skip to content

fix(dashboard): respect each SPP program's report deadline - #2167

Merged
brunod-e merged 1 commit into
devfrom
fix/spp-report-due-days
Sep 30, 2026
Merged

brunod-e merged 1 commit into
devfrom
fix/spp-report-due-days

Conversation

@alextnetto

@alextnetto alextnetto commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

The service providers page treated every quarterly report as due on the last day of the quarter. SPP3's Program Terms §6.3 give providers 30 days after the quarter ends, so from Oct 1 all SPP3 providers would have shown as overdue for Q3.

Each program now sets its own deadline through an optional reportDueDays field in ensdao/spp (SPP3: 30). Programs without it (SPP1, SPP2) keep today's behavior.

  • Due dates and statuses are computed per program, since the same quarter can belong to two programs with different deadlines (e.g. 2026/Q3 in SPP2 and SPP3).
  • Column headers show the real deadline (SPP3 Q3: "Due by Oct 30").
  • Unit tests cover the deadline math and the per-program statuses.

Note

Low Risk
Dashboard-only deadline display and status logic with defaults and new unit tests; no auth, payments, or data persistence changes.

Overview
The service providers page no longer treats every quarterly report as due on the last day of the quarter. Programs can define reportDueDays (from ensdao/spp config; SPP3 uses 30 days after quarter end), and due dates, column headers, and overdue / due-soon / upcoming statuses follow that window.

Per-program deadlines: fetched report status is now keyed by program, so the same calendar quarter can show different statuses when SPP2 and SPP3 disagree. The table passes each program's reportDueDays into the due-date label (e.g. SPP3 Q3 → "Due by Oct 30").

Defaults: missing reportDueDays stays 0 (deadline at quarter end), preserving SPP1/SPP2 behavior. Unit tests cover deadline math, labels, and per-program status building.

Reviewed by Cursor Bugbot for commit f705ff8. Configure here.

@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
anticapture-storybook Ready Ready Preview Sep 28, 2026 5:36pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
anticapture Ignored Ignored Sep 28, 2026 5:36pm UTC

Request Review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-28T17:38:06.148370Z f705ff8 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@railway-app

railway-app Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

🚅 Deployed to the anticapture-pr-2167 environment in anticapture-infra

Service Status Web Updated
gitcoin-indexer-offchain ✅ Success (View Logs) Sep 28, 2026 at 8:33 pm UTC
uniswap-indexer-offchain ✅ Success (View Logs) Sep 28, 2026 at 8:33 pm UTC
ens-indexer-offchain ✅ Success (View Logs) Sep 28, 2026 at 8:33 pm UTC
shutter-indexer-offchain ✅ Success (View Logs) Sep 28, 2026 at 8:26 pm UTC
compound-indexer-offchain ✅ Success (View Logs) Sep 28, 2026 at 8:25 pm UTC
prometheus ✅ Success (View Logs) Sep 28, 2026 at 6:40 pm UTC
grafana ✅ Success (View Logs) Web Sep 28, 2026 at 6:40 pm UTC
mcp ✅ Success (View Logs) Web Sep 28, 2026 at 5:46 pm UTC
docs ✅ Success (View Logs) Web Sep 28, 2026 at 5:46 pm UTC
gateful ✅ Success (View Logs) Web Sep 28, 2026 at 5:46 pm UTC
nouns-api ✅ Success (View Logs) Sep 28, 2026 at 5:46 pm UTC
aave-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:43 pm UTC
aave-api ✅ Success (View Logs) Sep 28, 2026 at 5:43 pm UTC
tornado-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
fluid-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
lil-nouns-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
ens-relayer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
gitcoin-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
shutter-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
address-enrichment ✅ Success (View Logs) Web Sep 28, 2026 at 5:42 pm UTC
obol-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
otelcol ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
shutter-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
lil-nouns-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
compound-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
tempo ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
gitcoin-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
uniswap-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
tornado-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
scroll-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
uniswap-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
ens-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
fluid-api ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
nouns-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
compound-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
ens-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
obol-indexer ✅ Success (View Logs) Sep 28, 2026 at 5:42 pm UTC
erpc ✅ Success (View Logs) Sep 28, 2026 at 5:41 pm UTC
nodeful ✅ Success (View Logs) Sep 28, 2026 at 5:41 pm UTC
alertmanager ✅ Success (View Logs) Web Sep 28, 2026 at 5:39 pm UTC
scroll-api ✅ Success (View Logs) Sep 28, 2026 at 5:39 pm UTC
user-api ✅ Success (View Logs) Web Sep 28, 2026 at 5:38 pm UTC
loki ✅ Success (View Logs) Sep 28, 2026 at 5:38 pm UTC
authful ✅ Success (View Logs) Web Sep 28, 2026 at 5:38 pm UTC

@railway-app
railway-app Bot temporarily deployed to anticapture-infra / anticapture-pr-2167 September 28, 2026 17:36 Destroyed

Copy link
Copy Markdown
Collaborator

🎨 UI Review

Automated review · Figma: not found · Spec · Preview: dashboard build skipped ("Ignored") — Storybook preview only
ℹ️ Reviewed without a Figma reference — grounded in code/layout inspection and UX-expert evaluation. The anticapture (dashboard) Vercel deployment for this PR is marked Ignored, so live visual validation wasn't possible; the Storybook preview doesn't exercise this data-driven table with real API data.


Service Providers table — quarter column headers

No visual issues found. The due-date sub-label (text-secondary text-xs, ServiceProvidersTable.tsx:106) renders inside an unconstrained-width header cell that already handled variable-length strings before this change (e.g. "Due by Dec 31"). The new per-program dates ("Due by Oct 30", "Due by Jan 30") follow the same Due by <Mon> <D> format and won't overflow or wrap differently than the existing quarter-end labels. [Code-only]

Validated — no change needed

  • Header label format is unchanged; only the computed date input differs per program. No new UI element, state, or interaction is introduced by this PR. [Code-only]
  • No diff lines remove any rendered element — this layers a corrected date value onto the existing cell structure. [Code-only]

Note for the author

  • Worth double-checking that the anticapture project's Ignored Vercel build on this PR is expected (e.g. a turbo-ignore build-step skip) rather than a pipeline gap — as-is, reviewers can't visually spot-check the Service Providers page from this PR's preview alone.

Generated by Claude Code

@brunod-e
brunod-e merged commit 6910a42 into dev Sep 30, 2026
60 of 61 checks passed
@brunod-e
brunod-e deleted the fix/spp-report-due-days branch September 30, 2026 18:10

This branch was successfully deployed

1 active deployment
anticapture-infra / anticapture-pr-2167 — f705ff8d Deployed Sep 28, 2026 by railway-app[bot]
Preview – anticapture-storybook — f705ff8d Deployed Sep 28, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants