feat(messages): add tip-stage raw fallback for near-head explorer visibility#281
feat(messages): add tip-stage raw fallback for near-head explorer visibility#281paulbalaji wants to merge 6 commits intomainfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@claude review |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 5 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
|
Claude finished @paulbalaji's task in 3m 19s —— View job Review: PR #281 — tip-stage raw fallback for near-head explorer visibility
OverallWell-structured PR. The dual-source query pattern (finalized + raw fallback) is clean, and the merge/dedup approach is sound. The provisional guard in delivery status is a good call to avoid false The approach of keeping raw queries scoped to hash-like inputs and msg_id detail is the right tradeoff — avoids heavy table scans while covering the primary use case ("I just sent a message, where is it?"). Bugbot AssessmentOf the 5 Bugbot findings:
Inline Feedback1. Guard
reexecuteQuery({ requestPolicy: 'network-only' });
- reexecuteRawQuery({ requestPolicy: 'network-only' });
- }, [pause, isDelivered, reexecuteQuery, reexecuteRawQuery]);
+ if (rawQueryConfig) {
+ reexecuteRawQuery({ requestPolicy: 'network-only' });
+ }
+ }, [pause, isDelivered, reexecuteQuery, reexecuteRawQuery, rawQueryConfig]);2. Remove duplicate function —
const warpRouteWhereClause = buildWarpRouteWhereClause(warpAddressesBytea);3. Add clarifying comment for
+ // msg_id shares the same hex format as tx hashes, so this also enables raw fallback for msg_id searches
const shouldQueryRaw =
dbStatusFilter !== 'delivered' && hasInput && isPotentiallyTransactionHash(sanitizedInput);4. Prefer Per project guidelines, prefer - timestamp: parseTimestampString(m.time_updated || m.time_created),
+ timestamp: parseTimestampString(m.time_updated ?? m.time_created),Missing TestsNo unit tests for the new parsing/scoring logic. Other Minor Notes
|
|
Addressed latest review feedback in 9877150:\n- raw fallback gating now explicitly supports message-id/tx-hash shape ( + 64 hex)\n- search merge now uses shared scored dedupe () instead of unconditional overwrite\n- guarded raw reexecute in detail hook\n- removed duplicate warp-route clause helper\n- switched timestamp fallback to \n\nValidation:\n-
src/AppLayout.tsx 252ms (unchanged) |
|
Follow-up (clean formatting): addressed latest review feedback in Changes:
Validation:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
|
Addressed latest review comments in Changes:
Validation:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
|
Addressed duplication comment in Changes:
Validation:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
|
Addressed stale raw cache leak in Change:
Validation:
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
|
Addressed latest unresolved callback-deps comment in Changes in
Validation:
|
Summary
raw_message_dispatchfor near-head visibilitymessage_viewas authoritative source when presentmsg_idand prefer finalized rowsisProvisional) +tipbadge in tableQuery Scope
msg_id) and hash-like search inputsTesting Plan
pnpm -C /Users/pbio/work/hyperlane-explorer run typecheckpnpm -C /Users/pbio/work/hyperlane-explorer run linttipbadge before finalized rowFailingfor provisional rows (status stays pending unless delivery confirmed)Linked PRs
Follow-up (DB indexes)
Potential scraper DB indexes if raw-query volume grows:
(time_updated DESC, id DESC)(origin_domain, time_updated DESC, id DESC)(destination_domain, time_updated DESC, id DESC)sender,recipient(if address-based raw queries are introduced)Note
Medium Risk
Adds new GraphQL query paths and merge/dedup logic that can affect search/detail results ordering and freshness, plus increases query load when hash-like inputs trigger raw fallback.
Overview
Adds a tip-stage fallback to read from
raw_message_dispatchwhen finalizedmessage_viewrows are not yet available, enabling near-head visibility for message detail and hash-like searches; finalized rows remain authoritative when present.Introduces parsing/typing for raw dispatch rows, merges raw+finalized results by
msg_idwith a scoring-based dedupe that prefers non-provisional/fresher entries, and marks raw-derived results viaMessageStub.isProvisional(including atipbadge inMessageTable).Updates server-side OG metadata fetch to fall back to raw dispatch rows, and prevents deep message debugging for provisional messages in
fetchDeliveryStatusto avoid false failing states.Written by Cursor Bugbot for commit 3713656. This will update automatically on new commits. Configure here.