xyz.quasigod.lab.letta.conversation

quasigod.spaces-alpha.bsky.network

Schema Diff

+56 -48

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
  "id": "xyz.quasigod.lab.letta.conversation",
3 3
  "defs": {
4 4
    "main": {
5 -
      "type": "object",
6 -
      "required": [
7 -
        "id",
8 -
        "agentId",
9 -
        "createdAt",
10 -
        "lastSeq"
11 -
      ],
12 -
      "properties": {
13 -
        "id": {
14 -
          "type": "string",
15 -
          "maxLength": 128
16 -
        },
17 -
        "name": {
18 -
          "type": "string",
19 -
          "maxLength": 512
20 -
        },
21 -
        "model": {
22 -
          "type": "string"
23 -
        },
24 -
        "hidden": {
25 -
          "type": "boolean"
26 -
        },
27 -
        "agentId": {
28 -
          "type": "string",
29 -
          "maxLength": 128
30 -
        },
31 -
        "lastSeq": {
32 -
          "type": "integer",
33 -
          "minimum": 0,
34 -
          "description": "Highest message seq written to this conversation."
35 -
        },
36 -
        "createdAt": {
37 -
          "type": "string",
38 -
          "format": "datetime"
39 -
        },
40 -
        "updatedAt": {
41 -
          "type": "string",
42 -
          "format": "datetime"
43 -
        },
44 -
        "forkedFrom": {
45 -
          "type": "string",
46 -
          "maxLength": 128,
47 -
          "description": "Source conversation id, set on forks."
48 -
        },
49 -
        "modelSettings": {
50 -
          "type": "unknown"
5 +
      "key": "tid",
6 +
      "type": "record",
7 +
      "record": {
8 +
        "type": "object",
9 +
        "required": [
10 +
          "agent",
11 +
          "role",
12 +
          "lastSeq",
13 +
          "createdAt",
14 +
          "updatedAt"
15 +
        ],
16 +
        "properties": {
17 +
          "role": {
18 +
            "type": "string",
19 +
            "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.",
20 +
            "knownValues": [
21 +
              "primary",
22 +
              "fork"
23 +
            ]
24 +
          },
25 +
          "agent": {
26 +
            "type": "string",
27 +
            "format": "at-uri",
28 +
            "description": "The agent this conversation belongs to."
29 +
          },
30 +
          "model": {
31 +
            "type": "string",
32 +
            "maxLength": 256,
33 +
            "description": "Optional per-conversation model override."
34 +
          },
35 +
          "title": {
36 +
            "type": "string",
37 +
            "maxLength": 256,
38 +
            "description": "Optional display title."
39 +
          },
40 +
          "hidden": {
41 +
            "type": "boolean",
42 +
            "description": "Hidden conversations are excluded from listings. Expected to be false."
43 +
          },
44 +
          "createdAt": {
45 +
            "type": "string",
46 +
            "format": "datetime"
47 +
          },
48 +
          "updatedAt": {
49 +
            "type": "string",
50 +
            "format": "datetime"
51 +
          },
52 +
          "modelSettings": {
53 +
            "ref": "xyz.quasigod.lab.letta.defs#modelSettings",
54 +
            "type": "ref",
55 +
            "description": "Optional per-conversation model settings override."
56 +
          }
51 57
        }
52 -
      }
58 +
      },
59 +
      "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."
53 60
    }
54 61
  },
55 62
  "$type": "com.atproto.lexicon.schema",
56 -
  "lexicon": 1
63 +
  "lexicon": 1,
64 +
  "description": "A letta conversation: an ordered message thread bound to an agent. The rkey (TID) is the conversation's id in letta."
57 65
}

Compare Other Versions

Lexicon Garden

@