Catalog PyPI
PACKAGE EXPLORERView in registry

3tears-conversations

PyPI

Conversation entity, three-tier collection, and per-agent schema migrations shared by memory and tool packages

Versions collected1
Direct dependencies4From release 0.72.0
Last observed20 Oct, 15:37 UTC

README

Version 0.72.0 documentation

3tears-conversations

Canonical owner of the per-agent conversations table plus its entity and three-tier collection.

Purpose

Tracks one row per user-facing conversation an agent is engaged in: ownership scope (agent_id, customer_id, user_id), external reference (channel_type, conversation_ref), lifecycle (status, summary), timestamps (date_created, date_updated, date_last_message).

This table is owned here because multiple packages key off conversation_id (memory, agent-tools context items, workspace bindings) and no single consumer is the natural owner of the shape. Owning the table here lets each downstream package depend on conversations without pulling in memory's extraction pipeline.

Public API

Exports (see src/threetears/conversations/__init__.py):

  • Conversation -- BaseEntity subclass for a single row.
  • ConversationsCollection -- three-tier (L1 SQLite / L2 NATS KV / L3 postgres) collection with the usual get / save / subscript semantics.
  • register(runner) -- agent-scope migration entry point. Contributes the conversations table creation to a canonical threetears.core.data.migrations.MigrationRunner. No depends_on edges; this is the root of the agent-schema dependency graph, so memory / workspace / tools migrations that reference conversations.id sort after it.

Minimal usage

from threetears.conversations import Conversation, ConversationsCollection, register
from threetears.core.data.migrations import MigrationRunner

# 1. register the package's migrations on the runner; run_migrations pins one
#    pooled connection and holds the database-wide DDL lock for the whole run
runner = MigrationRunner()
register(runner)
await store.run_migrations(runner)

# 2. use the collection like any other 3tears collection
collection = ConversationsCollection(registry=registry)
conv = await collection.get(conversation_id)
conv.summary = "follow-up on last week's analysis"
await conv.save()

Reference

  • Downstream consumers: threetears.agent.memory, threetears.agent.tools (context items), threetears.agent.workspace (bindings)

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.72.020 Oct 20264

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

ACCESSIBLE
pacepace/3tears

Shared repository data · GitHub

License detected in repository
MIT
License branch / ref
develop
Last push
20 Oct 2026
Archived
No
Contributor identities
— · partial collection

Public sponsor counts have not been collected. These signals belong to the repository owner.

Downloads & popularity

0count
Gauge · observed snapshots20 Oct 2026
10.50
2026-10-20: 0 · observed 2026-10-20T17:18:19.8928356Z
20 Oct20 Oct

github · 1 observations shown. Missing days are unknown.

View observed values
Date / source periodValueObserved at
2026-10-2002026-10-20T17:18:19.8928356Z

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 15:37 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:6a34230743abe38b9b34be121909eb6c7a229f64e887b6c31529ffd971049166