Skip to content

Persist durable assistant assets - #19

Draft
arnabnandy7 wants to merge 1 commit into
embabel:mainfrom
arnabnandy7:feature/durable-asset-persistence
Draft

Persist durable assistant assets#19
arnabnandy7 wants to merge 1 commit into
embabel:mainfrom
arnabnandy7:feature/durable-asset-persistence

Conversation

@arnabnandy7

@arnabnandy7 arnabnandy7 commented Aug 20, 2026

Copy link
Copy Markdown

Summary

Adds durable assistant asset persistence to the chat store, complementing the durable asset contracts introduced in embabel-agent.

  • Persists DurableAsset metadata as StoredAsset graph nodes.
  • Connects assistant messages to assets through HAS_ASSET relationships.
  • Restores persisted assets when reconstructing AssistantMessage.
  • Preserves original assets while asynchronous message persistence is pending.
  • Retains the existing repository path for messages without durable assets.
  • Removes stored asset metadata when its owning chat session is deleted.
  • Documents storage behavior and external content lifecycle responsibilities.
  • Updates the Embabel Agent dependency to 1.5.1-SNAPSHOT.

Implementation notes

The chat store persists asset metadata and the opaque storage URI. Asset content remains owned by the configured external asset store.

Only DurableAsset instances are persisted. Other asset implementations remain available while the message is pending but cannot be restored after reloading the conversation.

Stored asset node identifiers are scoped to the owning message, allowing the same logical asset to be referenced by multiple messages without one session’s deletion removing metadata used by another.

Testing

Focused tests:

Tests run: 32, Failures: 0, Errors: 0, Skipped: 0

Added coverage for:

  • Durable asset metadata conversion.
  • Reconstructing assistant messages with durable assets.
  • Pending-message asset preservation.
  • Passing durable assets through the repository persistence flow.
  • Reloading durable assets from graph storage.
  • Removing stored asset metadata during session deletion.

Graph-backed integration tests were added but not run locally.

Related issue

Supports embabel/embabel-agent#1821.

Dependency

Depends on the corresponding embabel-agent durable asset changes and uses embabel-agent version 1.5.1-SNAPSHOT.

embabel/embabel-agent#1957

Signed-off-by: Arnab Nandy <arnab_nandy7@yahoo.com>
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.

1 participant