Refactor PrerenderedCardSearch to use live search during render/indexing context#4102
Refactor PrerenderedCardSearch to use live search during render/indexing context#4102
Conversation
…e-make-prerenderedcardsearch-use-real-_search
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6fb9e785f0
ℹ️ 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".
Preview deployments |
There was a problem hiding this comment.
Pull request overview
This PR refactors PrerenderedCardSearch to use live search (live rendering) during render/indexing context (when globalThis.__boxelRenderContext is set) instead of fetching stale pre-indexed HTML. Outside of that context, the existing prerendered-search behavior is preserved. The live path adapts CardDef | FileDef instances into PrerenderedCard objects by rendering them on the fly.
Changes:
- Added
LivePrerenderedSearchResourcefor rendering card/file search instances live inside the prerender context - Updated
PrerenderedCardSearchto choose between live and prerendered search based on__boxelRenderContextflag - Updated the
/renderroute template (html.gts) to provide a fullCardContext(includingprerenderedCardSearchComponent) for nested card rendering - Added prerender coverage tests for the live-search fallback behavior
- Minor operational changes:
PRERENDER_REALM_TAB_MAXdefault 1→4, startup timeout 2000000→2400000ms
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
packages/host/app/resources/live-prerendered-search.ts |
New resource that renders CardDef/FileDef instances live and wraps them in PrerenderedCard objects |
packages/host/app/components/prerendered-card-search.gts |
Adds conditional search path selection; live path for render context, prerendered path otherwise |
packages/host/app/templates/render/html.gts |
Refactored from template-only to full Glimmer component providing complete CardContext |
packages/realm-server/tests/prerendering-test.ts |
New test module verifying live CardDef and FileDef HTML is used instead of stale indexed HTML |
packages/realm-server/prerender/page-pool.ts |
Default PRERENDER_REALM_TAB_MAX changed from 1 to 4 |
packages/realm-server/scripts/start-all.sh |
Wait timeout increased from 2000000 to 2400000ms |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Summary
PrerenderedCardSearchto use live search during render/indexing context, while preserving existing prerendered-search behavior elsewhere.globalThis.__boxelRenderContextis true andisTesting()is false (since host test use the same js runtime for both indexing and tests--its more straight forward that this behavior is suppressed during host tests).PrerenderedCardSearchyielded API compatible by adapting liveCardDef | FileDefresults intoPrerenderedCardinstances.What Changed
packages/host/app/resources/live-prerendered-search.tspackages/host/app/components/prerendered-card-search.gts:getSearch()+ live adapter in render context.getPrerenderedSearch()outside that context.packages/host/app/templates/render/html.gts:CardContext(includingprerenderedCardSearchComponent) in/renderroute so nested dynamic-card usage works.packages/realm-server/tests/prerendering-test.ts:isolated_html.