Repository navigation
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…manizers Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…king and summaries Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lldata Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… cards Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…controls Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d oversized permalinks Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…r edge cases Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…parallelize batch decodes Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…stic Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e whole tree Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…med tuple components Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ding Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rmalink length Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…llapsed rows Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ETH on collapsed rows Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…distribution Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
|
🚅 Deployed to the anticapture-pr-2164 environment in anticapture-infra
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b20ba4b540
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| // Fire-and-forget: the response must not wait for the broadcast. | ||
| void enactment | ||
| .enact(proposalId.toString()) |
There was a problem hiding this comment.
Queue webhook work durably before acknowledging it
When the process restarts or enact() encounters a transient RPC/API failure after this fire-and-forget call, the handler has already returned 202 and the catch path only logs the failure. The webhook sender therefore considers the one-shot proposal event delivered, while the proposal is never queued or executed automatically. Persist the job before returning 202, or add an internal retry mechanism so accepted events cannot be silently lost.
Useful? React with 👍 / 👎.
🎨 UI Review
Calldata Decoder (
|
…e and harden fallbacks Upstream failures are logged as a description (status, code, redacted url, cause chain capped at three) instead of the raw AxiosError, whose config carried the CoinGecko and Dune API keys. DegradedUpstreamData gains an arm for counter series born inside the window, so the first fallback of a new label set pages. Dune month values must be real calendar dates before they are cached. The empty Dune fallback is leased like the stale one, for transport and status failures only. The NFT spot price is quoted in the requested currency so its stale tag is truthful. The total treasury refuses a half that degraded to nothing instead of serving a token-only sum, joins the two halves by date rather than by position, and a DAO holding none of its token no longer loses its liquid half in a CoinGecko outage. The stale treasury test runs through the real provider factory with MSW. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…osals-endpoint # Conflicts: # infra/monitoring/alerts.yml
…t NFT results whole
A DAO with neither in-window transfers nor a carried balance has nothing to
price, yet the token treasury still waited on CoinGecko and recorded a
degraded treasury on outage before discarding the result. Fetch the balances
first and return before asking the provider.
The NFT price happy-path tests destructured `degraded` away, so a regression
flagging every healthy response as degraded would have passed. Assert the
full `{ data, degraded: false }` object.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…dpoint fix(api): serve stale or empty data instead of 5xx when Dune or CoinGecko fail (DEV-1163)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4229b084b3
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| this.lastGoodPrices.setIf( | ||
| prices, | ||
| (current) => prices.length >= current.length, | ||
| ); |
There was a problem hiding this comment.
Scope cached NFT histories to their requested page
The last-good NFT series is shared across every (limit, offset) request, but this write does not record the offset. For example, a successful skip=100 request can replace the cached skip=0 page (equal-length pages satisfy this predicate), after which a CoinGecko outage causes the default request to return the older page's timestamps and prices from line 89. Key the fallback by pagination window, or only serve it when the cached window matches the current request.
Useful? React with 👍 / 👎.
chore: version packages
|
🔍 Vercel preview: https://anticapture-mgt58af94-ful.vercel.app |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9a983026b8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| return; | ||
| } | ||
| if (this.consecutiveFailures >= this.consecutiveFailureThreshold) { | ||
| this.openTheCircuit(); |
There was a problem hiding this comment.
Defer the low-traffic streak rule during concurrent bursts
When a concurrent burst has five fast failures while at least five successful requests are still in flight, total contains only the settled failures and remains below minimumRequests, so this branch opens the route immediately. The generation change then discards the later successful outcomes, meaning a 5/10 partially failing burst opens the circuit despite the configured 50% rate policy. Include started/in-flight requests when deciding whether traffic is low, or defer the streak rule until the burst settles.
Useful? React with 👍 / 👎.
No description provided.