feat(search): surface record hits on the full search page + i18n group labels#2776
Merged
Merged
Conversation
…p labels Follow-up to the ⌘K command-palette fix (#3371). The full-page search (/apps/:app/search) still matched only navigation metadata (objects, dashboards, pages, reports), never records. - SearchResultsPage now runs the same global record search the palette uses (`useRecordSearch` → /api/v1/search), scoped to the app's searchable nav objects, and renders the record hits grouped by object above the metadata matches (with a searching indicator and record-count in the header). - Both the search page and the command palette resolve each object group's heading through `resolveI18nLabel`, so localized object labels display instead of falling back to the raw object name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011s54R8tmaqmvj6xjLPfv7c
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
os-zhuang
marked this pull request as ready for review
July 21, 2026 14:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #2772 (which fixed the ⌘K command palette for objectstack-ai/objectstack#3371).
Problem
Two gaps remained after the palette fix:
/apps/:app/search) still only matched navigation metadata — objects, dashboards, pages, reports — and never surfaced records. So the palette's "Open full search" action led to a page that couldn't find the very record you searched for.labelwas an i18n object ({ key, defaultValue }) rather than a plain string, because the hook can only carry a plain-string label.Changes
SearchResultsPagenow runs the same global record search the palette uses (useRecordSearch→/api/v1/search), scoped to the app's searchable nav objects so record links resolve within the current app. Record hits render grouped by object above the metadata matches, the header count includes records, and a searching indicator shows while a query is in flight.resolveI18nLabel, so localized object labels display instead of falling back to the raw object name.No changes to
@object-ui/types,@object-ui/data-objectstack, or@object-ui/react— this builds entirely on thesearchAll/useRecordSearchAPI shipped in #2772.Testing
packages/app-shell/src/views/__tests__/SearchResultsPage.records.test.tsx(new) — asserts record hits render grouped by object, headings use the i18n-resolved label (not the raw name), and each hit links to/apps/:app/:object/record/:id.@object-ui/app-shellsuite passes (1784 tests / 214 files).type-checkpasses forapp-shell; ESLint clean (0 errors).A changeset is included (
patchfor@object-ui/app-shell).🤖 Generated with Claude Code
https://claude.ai/code/session_011s54R8tmaqmvj6xjLPfv7c
Generated by Claude Code