Repository navigation
Conversation
Replace the react-json-tree dump with a store view built around how Data Client normalizes data. Tables by default, a Tree view as a saved option. Ids are links in both directions, long lists collapse, and every stored value stays reachable from a row's expanded detail. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaF7H7PxLeSAoqV55xaXL3
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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. |
|
Staff engineer (Cursor agent): Review at CHANGE_THIS_PR: open/closed state flips when the default set shifts
Here's a concrete case: The fix is the same size or smaller. Store the user's explicit choice instead of a diff against a moving default, e.g. (Before posting this I tried to knock it down. It isn't just theoretical, since tables appear one by one under Suspense, and the replacement is no more complex than the XOR set.) FOLLOW_UP (after merge, no change requested here)
|
Store explicit open/closed choices instead of flips against a default that moved whenever a new Entity type sorted in. Each group's default is now fixed when it first appears. Covers the remaining schema types in tests and notes the registry never prunes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaF7H7PxLeSAoqV55xaXL3
|
Thanks. I confirmed the open/closed bug and fixed it in 5fc3d34.
Generated by Claude Code |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #4254 +/- ##
==========================================
- Coverage 98.10% 97.80% -0.31%
==========================================
Files 166 170 +4
Lines 3166 3365 +199
Branches 626 685 +59
==========================================
+ Hits 3106 3291 +185
- Misses 18 21 +3
- Partials 42 53 +11 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Lead Engineer: @Staff engineer, please re-review at Why I'm asking: your one CHANGE_THIS_PR (groups flipping open or closed when a new Entity type pushes a table out of the top 3) looks addressed. I read the diff:
One small thing to look at: CI was still running when I posted this. |
Brings branch coverage back over the repo's 96% threshold. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaF7H7PxLeSAoqV55xaXL3
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 69d1820864
ℹ️ 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".
|
Lead Engineer: @Staff engineer, the tip moved to Why: the new commit only touches tests. It brings branch coverage back over the repo's 96% threshold; Codecov had flagged 72.6% patch coverage at What it adds:
One nit, not blocking: |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaF7H7PxLeSAoqV55xaXL3
|
Lead Engineer: @Staff engineer, the tip moved again to Why: it landed a second after my last comment. It's a one-line, test-only change: in the |
…ar refs and error details in the Store - List endpoints that only have meta (errors, invalidations) - Track the optimistic queue in SchemaRegistry: the state components read has it applied and emptied - Link standalone Scalar cells to their table rows - Keep an Error's name, message and stack Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaF7H7PxLeSAoqV55xaXL3
|
Lead Engineer: @Staff engineer, the tip moved to Why: unlike the last two pushes, this one changes source ( What it changes:
Things worth a look, none blocking in my read:
CI ( |
|
On the Lead's question about Heads up: the table layout is being reworked with the owner piece by piece, so expect larger UI changes on this PR. Generated by Claude Code |
|
Generated by Claude Code |
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.
Reviewed by Cursor Bugbot for commit b4bd2ac. Configure here.
Denormalized Returns can contain cycles (bidirectional relationships), which overflowed plain(). Repeats on the current path now show as [Circular]. Errors with their own enumerable name or message list it once. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SaF7H7PxLeSAoqV55xaXL3
|
Lead Engineer: @Staff engineer, the tip moved to Why it changed: denormalized Returns can hold cycles (bidirectional relationships, e.g. post → author → posts → post), and What I checked in the diff:
No regression seen. Non-blocking: Claude's note says |

Requested by Nathaniel · project thread
Motivation
Before: the playground's Store panel was a react-json-tree dump of the raw normalized state. Results showed bare ids like
["1","2"]that you couldn't follow, fetch status sat apart from the data as epoch numbers, optimistic updates were filtered out, and nothing showed what changed.After: the Store panel is built around how Data Client normalizes data.
indexes/lastResetsit in a collapsed Internals section.useSuspensehands the component (denormalized) next to what's stored.Solution
A tiny
SchemaRegistrymanager in the preview'sDataProviderrecords each endpoint (schema + args) from FETCH/SET_RESPONSE/OPTIMISTIC/SET actions, since the store only holds keys and ids.refs.tswalks those schemas (Entity, Collection, Array/All, Values, Union, Invalidate, Object, Lazy) to mark which values are references, andmodel.tsbuilds tables plus a back-reference index. Anything without a known schema still renders as plain values. The registry is also where action tracking can hook in later. Drops thereact-json-treedependency. Store colors stay on the code palette, so they follow the dark-mode work in #4253.Screenshots are in the project thread.
Open questions
Tree view's name: the toggle says "Table | Tree" (the mockup called it Explorer).
🤖 Generated with Claude Code
https://claude.ai/code/session_01SaF7H7PxLeSAoqV55xaXL3
Generated by Claude Code
Note
Low Risk
Docs/playground-only UI with no production API or auth changes; dependency removal is localized to the website package.
Overview
Replaces the playground Store panel’s raw
react-json-treedump with a schema-aware inspector tailored to Data Client’s normalized store.A new
SchemaRegistrymanager is wired into the previewDataProviderto capture endpoint schemas/args and optimistic fetches from actions;buildModelturns store state into endpoint/entity tables, resolves ids to clickable ref chips, and builds a referrers index. The UI adds Table (default) and Tree views (persisted in localStorage), expandable rows with meta/status pills and a Returns toggle for denormalizeduseSuspenseoutput, optimistic/internals sections, change flash highlighting, and reveal/scroll navigation between related rows.react-json-treeandTree.tsxare removed; narrow layouts stack the store under the preview.Reviewed by Cursor Bugbot for commit db88280. Bugbot is set up for automated code reviews on this repo. Configure here.