social.colibri.actor.profile

colibri.social

Schema Diff

+6 -1

From

CID
bafyreigfshrxjmf...
Indexed At
2026-07-31 21:22 UTC
View this version

To

CID
bafyreihrptmo45d...
Indexed At
2026-07-29 16:12 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.actor.profile#theme.plate" }
  • AddedEdge AddedEdge { src: "social.colibri.actor.profile#theme", tgt: "social.colibri.actor.profile#theme.plate", kind: "prop", name: Some("plate") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "social.colibri.actor.profile#theme.plate" }

Additional Notes

  • Non-breaking: AddedEdge { src: "social.colibri.actor.profile#theme", tgt: "social.colibri.actor.profile#theme.plate", kind: "prop", name: Some("plate") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A Colibri-specific user profile. Singleton record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record.",
6 6
      "key": "literal:self",
7 7
      "record": {
8 8
        "properties": {
9 9
          "$type": {
10 10
            "description": "The type of the record.",
11 11
            "format": "nsid",
12 12
            "type": "string"
13 13
          },
14 14
          "avatar": {
15 15
            "accept": [
16 16
              "image/jpeg",
17 17
              "image/png",
18 18
              "image/gif",
19 19
              "image/webp"
20 20
            ],
21 21
            "description": "The user's avatar image.",
22 22
            "type": "blob"
23 23
          },
24 24
          "banner": {
25 25
            "accept": [
26 26
              "image/jpeg",
27 27
              "image/png",
28 28
              "image/gif",
29 29
              "image/webp"
30 30
            ],
31 31
            "description": "The user's profile banner image.",
32 32
            "type": "blob"
33 33
          },
34 34
          "description": {
35 35
            "description": "The user's profile description / bio.",
36 36
            "maxGraphemes": 256,
37 37
            "maxLength": 2560,
38 38
            "type": "string"
39 39
          },
40 40
          "displayName": {
41 41
            "description": "The user's display name.",
42 42
            "maxGraphemes": 64,
43 43
            "maxLength": 640,
44 44
            "type": "string"
45 45
          },
46 46
          "preferredBadge": {
47 47
            "description": "Label value of the badge the user chose to display as their primary badge. Absent means automatic (highest-priority badge).",
48 48
            "maxLength": 64,
49 49
            "type": "string"
50 50
          },
51 51
          "presenceService": {
52 52
            "description": "DID of the AppView authorized to emit off-protocol presence (status, typing, voice) for this user via Humming. A receiving AppView MUST drop any Hum about this user whose authenticated origin does not equal this value. Absent means the user has not opted into cross-instance presence.",
53 53
            "format": "did",
54 54
            "type": "string"
55 55
          },
56 56
          "syncBluesky": {
57 57
            "default": false,
58 58
            "description": "When true, the AppView serves displayName/avatar/banner/description from the user's app.bsky.actor.profile record (Bluesky stays the live source); these mirrored fields may be omitted here.",
59 59
            "type": "boolean"
60 60
          },
61 61
          "theme": {
62 62
            "description": "Colibri-only profile theming. Always sourced from this record regardless of syncBluesky.",
63 63
            "ref": "lex:social.colibri.actor.profile#theme",
64 64
            "type": "ref"
65 65
          }
66 66
        },
67 67
        "required": [],
68 68
        "type": "object"
69 69
      },
70 70
      "type": "record"
71 71
    },
72 72
    "theme": {
73 73
      "description": "Colibri-only profile theming.",
74 74
      "properties": {
75 75
        "accentColor": {
76 76
          "description": "Accent color as a #rrggbb hex string.",
77 77
          "maxLength": 7,
78 78
          "type": "string"
79 79
        },
80 80
        "bannerColor": {
81 81
          "description": "Solid fallback banner color as #rrggbb, used when no banner image is set.",
82 82
          "maxLength": 7,
83 83
          "type": "string"
84 84
        },
85 85
        "gradient": {
86 86
          "description": "Two-color gradient profile theme.",
87 87
          "ref": "lex:social.colibri.actor.profile#themeGradient",
88 88
          "type": "ref"
89 +
        },
90 +
        "plate": {
91 +
          "description": "Name plate currently in use.",
92 +
          "format": "at-uri",
93 +
          "type": "string"
89 94
        }
90 95
      },
91 96
      "required": [],
92 97
      "type": "object"
93 98
    },
94 99
    "themeGradient": {
95 100
      "description": "Two-color gradient profile theme.",
96 101
      "properties": {
97 102
        "primary": {
98 103
          "description": "Primary gradient color as #rrggbb.",
99 104
          "maxLength": 7,
100 105
          "type": "string"
101 106
        },
102 107
        "secondary": {
103 108
          "description": "Secondary gradient color as #rrggbb.",
104 109
          "maxLength": 7,
105 110
          "type": "string"
106 111
        }
107 112
      },
108 113
      "required": [],
109 114
      "type": "object"
110 115
    }
111 116
  },
112 117
  "id": "social.colibri.actor.profile",
113 118
  "lexicon": 1,
114 -
  "revision": 2
119 +
  "revision": 3
115 120
}

Compare Other Versions

Lexicon Garden

@