feat(chat): complete the headless public surface - #3766
Conversation
📦 Client bundle boundary
A server module in a client graph aborts hydration in the browser. New leaks fail CI; known leaks are tracked in |
|
Warning Review limit reached
Next review available in: 38 minutes Limit details: You’ve used all 3 included reviews currently available under your plan. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (6)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
Included review availability: Your plan includes up to 3 reviews per rolling hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe PR adds agent prompt suggestion exports to the chat barrel. It also adds optional ChangesChat context and exports
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The PR adds the headless suggestion-items export and an active-conversation readiness signal without introducing an actionable merge-blocking risk; it is merge-ready after normal checks and review. Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5441705533
ℹ️ 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".
Re-export getAgentPromptSuggestionItems (and its PromptSuggestion type) from the public veryfront/chat entrypoint, matching the agent/react barrel, and derive an activeReady boolean on the ConversationsProvider context value (activeConversationId != null && activeConversation?.id === activeConversationId) so consumers can gate on the full active record without re-deriving it.
5441705 to
137c6b5
Compare
|
Addressed both review findings on exact head
Verification is green: focused chat tests, typecheck, format, lint, chat ratchets/composability, API reference check, and docs validation. @codex review |
|
Replacement CI exposed three stale RFC export ledgers for the newly public helper. Exact head The previously failing @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 137c6b5c90
ℹ️ 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".
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
What
Completes the headless chat public surface in two spots:
veryfront/chatentrypoint: re-exportgetAgentPromptSuggestionItems(and itsPromptSuggestiontype) alongside the existinggetAgentPromptSuggestions, matching what theagent/reactbarrel already exposes. Headless consumers previously had to reach into internal paths to flatten suggestion groups into renderable items.ConversationsProvider: derive anactiveReadyboolean on the context value (activeConversationId != null && activeConversation?.id === activeConversationId) so consumers can gate on the full active conversation record having resolved for the current id, instead of re-deriving that comparison in every consumer. The field is optional onConversationsContextValueso existing caller-supplied structural fixtures stay compatible; the provider always supplies it. The provider value is memoized so the added spread does not introduce a new referential identity per render beyond whatuseConversationsalready produces.Why
Headless integrations that build their own chat UI on top of the public surface need both the flattened prompt-suggestion items helper and a reliable "active conversation is fully loaded" signal without importing from internal module paths.
Tests
src/chat/index.test.ts:getAgentPromptSuggestionItemsadded to the expected runtime exports and asserted identical to the barrel export.src/react/components/chat/chat/contexts/conversations-context.test.tsx: new client-rendered coverage assertingactiveReadyis false with no active id, false while the full record is still loading or mismatched, and true once the record matching the active id resolves.deno task lint,deno task typecheck,deno task test.Ref: veryfront-issue-inbox#64
Summary by CodeRabbit
New Features
Bug Fixes
Tests