-
Notifications
You must be signed in to change notification settings - Fork 6
feat: enhance conversation loading with onLoaded callback #232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… sending logic - Added onLoaded callback to handle conversation loading events in useConversation. - Improved sendMessage function to create a conversation if none exists before sending a message. - Updated Assistant demo to log loaded conversations for better debugging.
WalkthroughIntroduced UseConversationEvents with optional onLoaded callback, updated UseConversationOptions signatures, and invoked onLoaded once after conversations load. Adjusted metadata types to Record<string, unknown>. In Assistant.vue, added onLoaded handler and wrapped sendMessage to auto-create a conversation when none exists. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant Assistant.vue as Assistant.vue
participant useConversation as useConversation()
participant Manager as MessageManager
participant Store as Conversations Store
Note over Assistant.vue,Store: Initialization & Load
Assistant.vue->>useConversation: init with events { onLoaded, onReceiveData, onFinish }
useConversation->>Store: load conversations
Store-->>useConversation: conversations[]
rect rgba(230,245,255,0.6)
Note right of useConversation: New behavior
useConversation-->>Assistant.vue: events.onLoaded(conversations) [once]
end
Note over User,Assistant.vue: Sending a message
User->>Assistant.vue: sendMessage(text)
alt No active conversation
rect rgba(235,255,235,0.6)
Note right of Assistant.vue: New wrapper
Assistant.vue->>useConversation: createConversation()
useConversation->>Store: create(title?, metadata?)
Store-->>useConversation: id
useConversation-->>Assistant.vue: id
end
end
Assistant.vue->>Manager: _sendMessage(text, ...args)
Manager-->>useConversation: onReceiveData(...)
useConversation-->>Assistant.vue: events.onReceiveData(...)
Manager-->>useConversation: onFinish(...)
useConversation-->>Assistant.vue: events.onFinish(...)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (3)
🧰 Additional context used🧬 Code graph analysis (1)packages/kit/src/vue/conversation/useConversation.ts (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (9)
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal). Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
and message sending logic
Summary by CodeRabbit
New Features
Documentation
Refactor