social.colibri.actor.profile

colibri.social

Schema Diff

+1 -6

From

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

To

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

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 0 non-breaking changes.

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

Migration Guidance

Removed Elements

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

Additional Notes

  • Breaking: RemovedEdge { src: "social.colibri.actor.profile#theme", tgt: "social.colibri.actor.profile#theme.plate", kind: "prop", name: Some("plate") }
1 1
{
2 2
  "id": "social.colibri.actor.profile",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "literal:self",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [],
10 10
        "properties": {
11 11
          "$type": {
12 12
            "type": "string",
13 13
            "format": "nsid",
14 14
            "description": "The type of the record."
15 15
          },
16 16
          "theme": {
17 17
            "ref": "lex:social.colibri.actor.profile#theme",
18 18
            "type": "ref",
19 19
            "description": "Colibri-only profile theming. Always sourced from this record regardless of syncBluesky."
20 20
          },
21 21
          "avatar": {
22 22
            "type": "blob",
23 23
            "accept": [
24 24
              "image/jpeg",
25 25
              "image/png",
26 26
              "image/gif",
27 27
              "image/webp"
28 28
            ],
29 29
            "description": "The user's avatar image."
30 30
          },
31 31
          "banner": {
32 32
            "type": "blob",
33 33
            "accept": [
34 34
              "image/jpeg",
35 35
              "image/png",
36 36
              "image/gif",
37 37
              "image/webp"
38 38
            ],
39 39
            "description": "The user's profile banner image."
40 40
          },
41 41
          "description": {
42 42
            "type": "string",
43 43
            "maxLength": 2560,
44 44
            "description": "The user's profile description / bio.",
45 45
            "maxGraphemes": 256
46 46
          },
47 47
          "displayName": {
48 48
            "type": "string",
49 49
            "maxLength": 640,
50 50
            "description": "The user's display name.",
51 51
            "maxGraphemes": 64
52 52
          },
53 53
          "syncBluesky": {
54 54
            "type": "boolean",
55 55
            "default": false,
56 56
            "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."
57 57
          },
58 58
          "preferredBadge": {
59 59
            "type": "string",
60 60
            "maxLength": 64,
61 61
            "description": "Label value of the badge the user chose to display as their primary badge. Absent means automatic (highest-priority badge)."
62 62
          },
63 63
          "presenceService": {
64 64
            "type": "string",
65 65
            "format": "did",
66 66
            "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."
67 67
          }
68 68
        }
69 69
      },
70 70
      "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."
71 71
    },
72 72
    "theme": {
73 73
      "type": "object",
74 74
      "required": [],
75 75
      "properties": {
76 -
        "plate": {
77 -
          "type": "string",
78 -
          "format": "at-uri",
79 -
          "description": "Name plate currently in use."
80 -
        },
81 76
        "gradient": {
82 77
          "ref": "lex:social.colibri.actor.profile#themeGradient",
83 78
          "type": "ref",
84 79
          "description": "Two-color gradient profile theme."
85 80
        },
86 81
        "accentColor": {
87 82
          "type": "string",
88 83
          "maxLength": 7,
89 84
          "description": "Accent color as a #rrggbb hex string."
90 85
        },
91 86
        "bannerColor": {
92 87
          "type": "string",
93 88
          "maxLength": 7,
94 89
          "description": "Solid fallback banner color as #rrggbb, used when no banner image is set."
95 90
        }
96 91
      },
97 92
      "description": "Colibri-only profile theming."
98 93
    },
99 94
    "themeGradient": {
100 95
      "type": "object",
101 96
      "required": [],
102 97
      "properties": {
103 98
        "primary": {
104 99
          "type": "string",
105 100
          "maxLength": 7,
106 101
          "description": "Primary gradient color as #rrggbb."
107 102
        },
108 103
        "secondary": {
109 104
          "type": "string",
110 105
          "maxLength": 7,
111 106
          "description": "Secondary gradient color as #rrggbb."
112 107
        }
113 108
      },
114 109
      "description": "Two-color gradient profile theme."
115 110
    }
116 111
  },
117 112
  "$type": "com.atproto.lexicon.schema",
118 113
  "lexicon": 1,
119 -
  "revision": 3
114 +
  "revision": 2
120 115
}

Compare Other Versions

Lexicon Garden

@