Skip to content

embabel-chat-store integration#1373

Draft
jasperblues wants to merge 10 commits intomainfrom
feature/chat-store-integration
Draft

embabel-chat-store integration#1373
jasperblues wants to merge 10 commits intomainfrom
feature/chat-store-integration

Conversation

@jasperblues
Copy link
Contributor

@jasperblues jasperblues commented Feb 4, 2026

Summary

Integrates embabel-chat-store with embabel-agent, establishing agent-api as the source of truth for chat abstractions. This simplifies the dependency graph and enables pluggable conversation storage (in-memory or Neo4j, thus far. More in future).

Changes

Type Hierarchy Simplification

  • Deleted MessageAuthor - Conversation methods now use User from agent.api.identity directly
  • Added StoredUser (in chat-store) - Interface extending User with Drivine annotations for Neo4j persistence
  • Added SimpleStoredUser (in chat-store) - Ready-to-use implementation

New in agent-api

  • StoredMessage interface - Storage contract for messages
  • ConversationFactory interface - Creates conversations for a store type
  • ConversationFactoryProvider interface - Aggregates factories by type
  • ConversationStoreType enum - IN_MEMORY or STORED
  • Fluent API: context.ai().conversationFactory(type)

Architecture

  agent-api (source of truth)
  ├── User                      ← identity interface
  ├── StoredMessage             ← storage contract
  ├── Conversation              ← uses User for attribution
  ├── ConversationFactory
  └── ConversationFactoryProvider

  chat-store (persistence layer)
  ├── StoredUser                ← User + Drivine annotations
  ├── StoredConversation        ← Neo4j implementation
  └── ChatSessionRepository

@alexheifetz alexheifetz marked this pull request as draft February 4, 2026 02:43
@alexheifetz
Copy link
Contributor

looks like needs rebase

@igordayen igordayen self-requested a review February 4, 2026 03:24
Copy link
Contributor

@igordayen igordayen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

massive change on pom version can be most likely avoided with proper rebase in place.
please share PR with chat-store to assess cross-repos interdependencies , if still any. thanks

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

${project.version}

Copy link
Contributor Author

@jasperblues jasperblues Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this comment still relevant after rebase?

@igordayen
Copy link
Contributor

also: please consider preserving history for cross-repos refactoring

@jasperblues jasperblues force-pushed the feature/chat-store-integration branch from 6be03a7 to 01d20e2 Compare February 4, 2026 04:40
@jasperblues jasperblues force-pushed the feature/chat-store-integration branch from bd5ef6c to 95c903f Compare February 6, 2026 08:49
@jasperblues jasperblues requested a review from igordayen February 6, 2026 08:49
@jasperblues jasperblues marked this pull request as ready for review February 6, 2026 08:49
Copy link
Contributor

@johnsonr johnsonr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should at least consider making Message an interface and avoiding the need for StoredMessage.

I'm not sure what the impact of this will be on user code: Probably not too great

@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 7, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
67.1% Coverage on New Code (required ≥ 73%)

See analysis details on SonarQube Cloud

@jasperblues jasperblues marked this pull request as draft February 7, 2026 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants