social.colibri.beta.actor.defs

colibri.social

Schema Diff

+3 -3

From

CID
bafyreibtkmpledi...
Indexed At
2026-08-23 12:32 UTC
View this version

To

CID
bafyreiav2qovor5...
Indexed At
2026-08-23 14:58 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 2 non-breaking changes.

Breaking Changes (2)
  • KindChanged KindChanged { vertex_id: "social.colibri.beta.actor.defs#preferences.gifFavorites:items", old_kind: "string", new_kind: "ref" }
  • ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.beta.actor.defs#preferences.gifFavorites:items", sort: "ref", value: "social.colibri.beta.embed.defs#gifView" }
Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.embed.defs#gifView" }
  • AddedEdge AddedEdge { src: "social.colibri.beta.actor.defs#preferences.gifFavorites:items", tgt: "social.colibri.beta.embed.defs#gifView", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "social.colibri.beta.embed.defs#gifView" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "social.colibri.beta.actor.defs#preferences.gifFavorites:items", sort: "ref", value: "social.colibri.beta.embed.defs#gifView" }

Additional Notes

  • Breaking: KindChanged { vertex_id: "social.colibri.beta.actor.defs#preferences.gifFavorites:items", old_kind: "string", new_kind: "ref" }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.actor.defs#preferences.gifFavorites:items", tgt: "social.colibri.beta.embed.defs#gifView", kind: "ref", name: None }
1 1
{
2 2
  "id": "social.colibri.beta.actor.defs",
3 3
  "defs": {
4 4
    "mute": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "subject",
8 8
        "createdAt"
9 9
      ],
10 10
      "properties": {
11 11
        "subject": {
12 12
          "type": "string",
13 13
          "format": "did",
14 14
          "description": "The muted user or community."
15 15
        },
16 16
        "createdAt": {
17 17
          "type": "string",
18 18
          "format": "datetime",
19 19
          "description": "When the mute was created."
20 20
        }
21 21
      },
22 22
      "description": "A muted subject."
23 23
    },
24 24
    "status": {
25 25
      "type": "object",
26 26
      "required": [
27 27
        "text"
28 28
      ],
29 29
      "properties": {
30 30
        "text": {
31 31
          "type": "string",
32 32
          "maxLength": 32,
33 33
          "description": "The status text."
34 34
        },
35 35
        "emoji": {
36 36
          "type": "string",
37 37
          "description": "An emoji shown beside the status."
38 38
        }
39 39
      },
40 40
      "description": "A user's status line."
41 41
    },
42 42
    "presence": {
43 43
      "type": "object",
44 44
      "required": [
45 45
        "onlineState"
46 46
      ],
47 47
      "properties": {
48 48
        "voice": {
49 49
          "ref": "#voiceState",
50 50
          "type": "ref",
51 51
          "description": "Where the user is connected for voice, if anywhere."
52 52
        },
53 53
        "status": {
54 54
          "ref": "#status",
55 55
          "type": "ref",
56 56
          "description": "The user's status line."
57 57
        },
58 58
        "onlineState": {
59 59
          "type": "string",
60 60
          "description": "Derived online state.",
61 61
          "knownValues": [
62 62
            "online",
63 63
            "away",
64 64
            "dnd",
65 65
            "offline"
66 66
          ]
67 67
        }
68 68
      },
69 69
      "description": "A user's live, off-protocol state."
70 70
    },
71 71
    "voiceState": {
72 72
      "type": "object",
73 73
      "required": [
74 74
        "channel"
75 75
      ],
76 76
      "properties": {
77 77
        "muted": {
78 78
          "type": "boolean",
79 79
          "description": "Whether the user has muted their microphone."
80 80
        },
81 81
        "channel": {
82 82
          "type": "string",
83 83
          "format": "space-ref",
84 84
          "description": "The voice channel the user is connected to."
85 85
        },
86 86
        "deafened": {
87 87
          "type": "boolean",
88 88
          "description": "Whether the user has deafened themselves."
89 89
        }
90 90
      },
91 91
      "description": "A user's voice connection."
92 92
    },
93 93
    "preferences": {
94 94
      "type": "object",
95 95
      "required": [
96 96
        "notificationLevel",
97 97
        "communityOrder",
98 98
        "mutes",
99 99
        "gifFavorites"
100 100
      ],
101 101
      "properties": {
102 102
        "mutes": {
103 103
          "type": "array",
104 104
          "items": {
105 105
            "ref": "#mute",
106 106
            "type": "ref"
107 107
          },
108 108
          "description": "Subjects the user has muted."
109 109
        },
110 110
        "gifFavorites": {
111 111
          "type": "array",
112 112
          "items": {
113 -
            "type": "string",
114 -
            "description": "A GIF identifier."
113 +
            "ref": "social.colibri.beta.embed.defs#gifView",
114 +
            "type": "ref"
115 115
          },
116 -
          "description": "GIFs saved from the picker."
116 +
          "description": "GIFs saved from the picker, stored whole."
117 117
        },
118 118
        "communityOrder": {
119 119
          "type": "array",
120 120
          "items": {
121 121
            "type": "string",
122 122
            "format": "did",
123 123
            "description": "A community."
124 124
          },
125 125
          "description": "Communities in preferred sidebar order."
126 126
        },
127 127
        "notificationLevel": {
128 128
          "type": "string",
129 129
          "description": "Which messages produce a notification.",
130 130
          "knownValues": [
131 131
            "all",
132 132
            "mentionsAndReplies"
133 133
          ]
134 134
        }
135 135
      },
136 136
      "description": "The authenticated user's own settings, as the AppView currently holds them."
137 137
    },
138 138
    "profileView": {
139 139
      "type": "object",
140 140
      "required": [
141 141
        "did",
142 142
        "handle",
143 143
        "displayName",
144 144
        "isBot",
145 145
        "syncBluesky"
146 146
      ],
147 147
      "properties": {
148 148
        "did": {
149 149
          "type": "string",
150 150
          "format": "did",
151 151
          "description": "The user's DID."
152 152
        },
153 153
        "isBot": {
154 154
          "type": "boolean",
155 155
          "description": "Whether the account is labelled as an automated account."
156 156
        },
157 157
        "theme": {
158 158
          "ref": "social.colibri.beta.actor.profile#theme",
159 159
          "type": "ref",
160 160
          "description": "Colibri-only profile theming, read from the profile record even when the mirrored fields come from Bluesky."
161 161
        },
162 162
        "avatar": {
163 163
          "type": "string",
164 164
          "format": "uri",
165 165
          "description": "URL of the user's avatar, served by this AppView's blob proxy."
166 166
        },
167 167
        "banner": {
168 168
          "type": "string",
169 169
          "format": "uri",
170 170
          "description": "URL of the user's profile banner, served by this AppView's blob proxy."
171 171
        },
172 172
        "handle": {
173 173
          "type": "string",
174 174
          "format": "handle",
175 175
          "description": "The user's handle, or 'handle.invalid' when it does not resolve."
176 176
        },
177 177
        "presence": {
178 178
          "ref": "#presence",
179 179
          "type": "ref",
180 180
          "description": "Live presence, when the AppView is tracking any."
181 181
        },
182 182
        "description": {
183 183
          "type": "string",
184 184
          "description": "Resolved bio."
185 185
        },
186 186
        "displayName": {
187 187
          "type": "string",
188 188
          "description": "Resolved display name, falling back to the handle."
189 189
        },
190 190
        "syncBluesky": {
191 191
          "type": "boolean",
192 192
          "description": "Whether the mirrored profile fields come from app.bsky.actor.profile."
193 193
        },
194 194
        "preferredBadge": {
195 195
          "type": "string",
196 196
          "description": "Label value of the badge the user chose to display."
197 197
        }
198 198
      },
199 199
      "description": "A Colibri user as the AppView serves them: identity, resolved profile, and presence."
200 200
    }
201 201
  },
202 202
  "$type": "com.atproto.lexicon.schema",
203 203
  "lexicon": 1
204 204
}

Compare Other Versions

Lexicon Garden

@