Repository navigation
Prevent stale analytics renders and unhandled API rejections - #2
Conversation
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c639e794bb
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Review feedback addressed (commit
|
Analytics could render before its data arrived or let a delayed response replace a newer filter, tab, or page visit. Both the core load and independently loaded tabs now check that their view is still current before changing content, state, or scheduled work. Current errors remain visible and a refresh can recover.
The shared API helper also stops creating an unhandled rejection when its caller already handles a failed request. Request sharing, caching, and warmup retries retain their existing behavior.
Addresses Kpa-clawbot#2200 and Kpa-clawbot#2212, including the lazy-tab race reported in this PR's review. This fork PR is based on
codex/canadaverse-uiand preserves the existing PostgreSQL and Canadaverse changes.Validation
41 analytics lifecycle checks cover core and lazy tabs, old successes/failures, filter changes, navigation away/re-entry, detail selections, overlapping refreshes, and obsolete timers/animation callbacks.
Seven API cleanup checks cover concurrent callers, cache TTL/bust, HTTP/network/JSON failures, exhausted warmup retries, recovery, and absence of extra unhandled rejections.
All standalone frontend suites passed locally. The server and ingestor Go suites passed locally.
Eight browser scenarios passed against an isolated local Go/SQLite instance, including delayed lazy responses, HTTP 500 handling, and successful retry. The existing neighbour-graph filter/theme regression also passed.
The lifecycle check is O(1) per async completion or callback. Weak DOM keys allow replaced views to be collected. The change adds no API requests, dependencies, configuration settings, or database changes.
Deployment
Commit
d961022cbe0419d8cb6c3af918673e3948b6ca3fwas deployed and verified on Canadaverse CoreScope. Its changes remain included in the current deployment through follow-up PR #3. The complete CI run passed both database backends, all browser shards, race checks, and packaged image/startup checks. This stacked PR uses an explicit workflow dispatch because automatic PR runs target master.The public API reports the exact commit, and both JavaScript files delivered to the browser match the committed SHA-256 hashes. Live browser checks covered rapid YKF/YYZ filter changes and switching between Nodes and Neighbour Graph, with no JavaScript errors during those interactions.
The application completed startup and is healthy on PostgreSQL. Both Canadian MQTT sources are fresh, database write errors are zero, and the existing account remains present. Configuration and theme files, the 96 MB packet-store limit, and the 24-hour retention policy were preserved. No other container changed. The previous application image and a private configuration snapshot remain available for rollback.
The regional role-count mismatch recorded in Kpa-clawbot#2213 is addressed and live-verified in follow-up PR #3.