xyz.quasigod.lab.letta.conversation

quasigod.spaces-alpha.bsky.network

Schema Diff

+54 -46

From

CID
bafyreiay3iw6ck6...
Indexed At
2026-08-24 16:12 UTC
View this version

To

CID
bafyreiaan6blkiq...
Indexed At
2026-08-25 19:16 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

25 breaking changes, 16 non-breaking changes.

Breaking Changes (25)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.createdAt", kind: "prop", name: Some("createdAt") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.updatedAt", kind: "prop", name: Some("updatedAt") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.agent", kind: "prop", name: Some("agent") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.role", kind: "prop", name: Some("role") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.id", kind: "prop", name: Some("id") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.createdAt", kind: "prop", name: Some("createdAt") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.agentId", kind: "prop", name: Some("agentId") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.lastSeq", kind: "prop", name: Some("lastSeq") }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.agentId" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.createdAt" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.forkedFrom" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.hidden" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.id" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.lastSeq" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.model" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.modelSettings" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.name" }
  • RemovedVertex RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.updatedAt" }
  • RemovedEdge RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.forkedFrom", kind: "prop", name: Some("forkedFrom") }
  • RemovedEdge RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.hidden", kind: "prop", name: Some("hidden") }
  • RemovedEdge RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.model", kind: "prop", name: Some("model") }
  • RemovedEdge RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.modelSettings", kind: "prop", name: Some("modelSettings") }
  • RemovedEdge RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.name", kind: "prop", name: Some("name") }
  • RemovedEdge RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.updatedAt", kind: "prop", name: Some("updatedAt") }
  • KindChanged KindChanged { vertex_id: "xyz.quasigod.lab.letta.conversation", old_kind: "object", new_kind: "record" }
Non-Breaking Changes (16)
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.agent" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.createdAt" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.hidden" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.model" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.modelSettings" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.role" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.title" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.updatedAt" }
  • AddedVertex AddedVertex { vertex_id: "xyz.quasigod.lab.letta.defs#modelSettings" }
  • AddedEdge AddedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation:body", kind: "record-schema", name: None }
  • AddedEdge AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.hidden", kind: "prop", name: Some("hidden") }
  • AddedEdge AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.model", kind: "prop", name: Some("model") }
  • AddedEdge AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.modelSettings", kind: "prop", name: Some("modelSettings") }
  • AddedEdge AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.title", kind: "prop", name: Some("title") }
  • AddedEdge AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body.modelSettings", tgt: "xyz.quasigod.lab.letta.defs#modelSettings", kind: "ref", name: None }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.agentId" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.createdAt" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.forkedFrom" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.hidden" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.id" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.lastSeq" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.model" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.modelSettings" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.name" }
  • RemovedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation.updatedAt" }

Added Elements

  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.agent" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.createdAt" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.hidden" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.model" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.modelSettings" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.role" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.title" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.conversation:body.updatedAt" }
  • AddedVertex { vertex_id: "xyz.quasigod.lab.letta.defs#modelSettings" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.createdAt", kind: "prop", name: Some("createdAt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.updatedAt", kind: "prop", name: Some("updatedAt") }
  • Breaking: RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.agent", kind: "prop", name: Some("agent") }
  • Breaking: RequiredEdgeAdded { vertex_id: "xyz.quasigod.lab.letta.conversation:body", src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.role", kind: "prop", name: Some("role") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.id", kind: "prop", name: Some("id") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.createdAt", kind: "prop", name: Some("createdAt") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.agentId", kind: "prop", name: Some("agentId") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "xyz.quasigod.lab.letta.conversation", src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.lastSeq", kind: "prop", name: Some("lastSeq") }
  • Breaking: RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.forkedFrom", kind: "prop", name: Some("forkedFrom") }
  • Breaking: RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.hidden", kind: "prop", name: Some("hidden") }
  • Breaking: RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.model", kind: "prop", name: Some("model") }
  • Breaking: RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.modelSettings", kind: "prop", name: Some("modelSettings") }
  • Breaking: RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.name", kind: "prop", name: Some("name") }
  • Breaking: RemovedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation.updatedAt", kind: "prop", name: Some("updatedAt") }
  • Breaking: KindChanged { vertex_id: "xyz.quasigod.lab.letta.conversation", old_kind: "object", new_kind: "record" }
  • Non-breaking: AddedEdge { src: "xyz.quasigod.lab.letta.conversation", tgt: "xyz.quasigod.lab.letta.conversation:body", kind: "record-schema", name: None }
  • Non-breaking: AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.hidden", kind: "prop", name: Some("hidden") }
  • Non-breaking: AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.model", kind: "prop", name: Some("model") }
  • Non-breaking: AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.modelSettings", kind: "prop", name: Some("modelSettings") }
  • Non-breaking: AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body", tgt: "xyz.quasigod.lab.letta.conversation:body.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "xyz.quasigod.lab.letta.conversation:body.modelSettings", tgt: "xyz.quasigod.lab.letta.defs#modelSettings", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "properties": {
6 -
        "agentId": {
7 -
          "maxLength": 128,
8 -
          "type": "string"
5 +
      "description": "A letta conversation persisted in a permissioned space. The record is write-once config: the message thread is the messages referencing this conversation, and the in-context window is derived from their status+seq (see xyz.quasigod.lab.letta.message), so appending a message never rewrites this record.",
6 +
      "key": "tid",
7 +
      "record": {
8 +
        "properties": {
9 +
          "agent": {
10 +
            "description": "The agent this conversation belongs to.",
11 +
            "format": "at-uri",
12 +
            "type": "string"
13 +
          },
14 +
          "createdAt": {
15 +
            "format": "datetime",
16 +
            "type": "string"
17 +
          },
18 +
          "hidden": {
19 +
            "description": "Hidden conversations are excluded from listings. Expected to be false.",
20 +
            "type": "boolean"
21 +
          },
22 +
          "model": {
23 +
            "description": "Optional per-conversation model override.",
24 +
            "maxLength": 256,
25 +
            "type": "string"
26 +
          },
27 +
          "modelSettings": {
28 +
            "description": "Optional per-conversation model settings override.",
29 +
            "ref": "xyz.quasigod.lab.letta.defs#modelSettings",
30 +
            "type": "ref"
31 +
          },
32 +
          "role": {
33 +
            "description": "primary: the agent's main thread (exactly one per agent, referenced by the agent's primaryConversation). fork: a branched copy of a message prefix.",
34 +
            "knownValues": [
35 +
              "primary",
36 +
              "fork"
37 +
            ],
38 +
            "type": "string"
39 +
          },
40 +
          "title": {
41 +
            "description": "Optional display title.",
42 +
            "maxLength": 256,
43 +
            "type": "string"
44 +
          },
45 +
          "updatedAt": {
46 +
            "format": "datetime",
47 +
            "type": "string"
48 +
          }
9 49
        },
10 -
        "createdAt": {
11 -
          "format": "datetime",
12 -
          "type": "string"
13 -
        },
14 -
        "forkedFrom": {
15 -
          "description": "Source conversation id, set on forks.",
16 -
          "maxLength": 128,
17 -
          "type": "string"
18 -
        },
19 -
        "hidden": {
20 -
          "type": "boolean"
21 -
        },
22 -
        "id": {
23 -
          "maxLength": 128,
24 -
          "type": "string"
25 -
        },
26 -
        "lastSeq": {
27 -
          "description": "Highest message seq written to this conversation.",
28 -
          "minimum": 0,
29 -
          "type": "integer"
30 -
        },
31 -
        "model": {
32 -
          "type": "string"
33 -
        },
34 -
        "modelSettings": {
35 -
          "type": "unknown"
36 -
        },
37 -
        "name": {
38 -
          "maxLength": 512,
39 -
          "type": "string"
40 -
        },
41 -
        "updatedAt": {
42 -
          "format": "datetime",
43 -
          "type": "string"
44 -
        }
50 +
        "required": [
51 +
          "agent",
52 +
          "role",
53 +
          "lastSeq",
54 +
          "createdAt",
55 +
          "updatedAt"
56 +
        ],
57 +
        "type": "object"
45 58
      },
46 -
      "required": [
47 -
        "id",
48 -
        "agentId",
49 -
        "createdAt",
50 -
        "lastSeq"
51 -
      ],
52 -
      "type": "object"
59 +
      "type": "record"
53 60
    }
54 61
  },
62 +
  "description": "A letta conversation: an ordered message thread bound to an agent. The rkey (TID) is the conversation's id in letta.",
55 63
  "id": "xyz.quasigod.lab.letta.conversation",
56 64
  "lexicon": 1
57 65
}

Compare Other Versions

Lexicon Garden

@