feat: runtime polish pass across core/node/native layers#39
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a37a32c353
ℹ️ 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".
| const totalHeight = getTotalHeight(items, itemHeight); | ||
| const effectiveScrollTop = clampScrollTop(state.scrollTop, totalHeight, rect.h); | ||
|
|
There was a problem hiding this comment.
Persist clamped scroll offsets before row hit-testing
This clamps scrollTop only for rendering, but the clamped value is never written back to state, so pointer hit-testing still uses the stale offset (WidgetRenderer computes indices from raw state.scrollTop, e.g. yInContent = state.scrollTop + localY). After data shrink, users can see rows rendered at the top but clicks/context actions map to out-of-range or wrong rows until some other event rewrites scroll state.
Useful? React with 👍 / 👎.
| // Sort and remove non-matches via fuzzy score to allow non-substring fuzzy hits. | ||
| const sorted = sortByScore(allItems, effectiveQuery); |
There was a problem hiding this comment.
Preserve metadata-based command matches when fuzzy sorting
Removing the filterItems(...) step means getFilteredItems now keeps only sortByScore results, and fuzzyScore evaluates label text only. Queries that used to match by description or shortcut (for example, searching by a keybinding string) will now return no results, which is a functional regression in command palette filtering behavior.
Useful? React with 👍 / 👎.
Summary
This PR implements the runtime polish backlog before starting a new ink-compat implementation.
Implemented tasks
ZR_ERR_LIMIToversized event batches are recoverable (worker + inline), not fatal.js_u64BigInt parsing to reject negative/overflow values + regression tests.Validation approach
Local checks run
npm run lintnpm run typechecknpm run buildnpm testnpm run test:e2e:reducednpm run test:e2enpm run test:native:smokeAll above pass locally in this branch.