app.didpic.feed.comment

lexicons.didpic.app

Schema Diff

+25 -2

From

CID
bafyreigmk5g3s6k...
Indexed At
2026-05-24 01:15 UTC
View this version

To

CID
bafyreidelxh6cem...
Indexed At
2026-06-04 01:10 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 8 non-breaking changes.

Breaking Changes (2)
  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.feed.comment:body.alt", sort: "maxGraphemes", value: "1000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.feed.comment:body.alt", sort: "maxLength", value: "10000" }
Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.alt" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.aspectRatio" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.image" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.labels" }
  • AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.alt", kind: "prop", name: Some("alt") }
  • AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
  • AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.image", kind: "prop", name: Some("image") }
  • AddedEdge AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.labels", kind: "prop", name: Some("labels") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.didpic.feed.comment:body.alt" }
  • AddedVertex { vertex_id: "app.didpic.feed.comment:body.aspectRatio" }
  • AddedVertex { vertex_id: "app.didpic.feed.comment:body.image" }
  • AddedVertex { vertex_id: "app.didpic.feed.comment:body.labels" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.feed.comment:body.alt", sort: "maxLength", value: "10000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.feed.comment:body.alt", sort: "maxGraphemes", value: "1000" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.alt", kind: "prop", name: Some("alt") }
  • Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
  • Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.image", kind: "prop", name: Some("image") }
  • Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body", tgt: "app.didpic.feed.comment:body.labels", kind: "prop", name: Some("labels") }
1 1
{
2 2
  "id": "app.didpic.feed.comment",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "subject",
11 -
          "text",
12 11
          "createdAt"
13 12
        ],
14 13
        "properties": {
14 +
          "alt": {
15 +
            "type": "string",
16 +
            "maxLength": 10000,
17 +
            "description": "Alt text for accessibility. Required by the client when `image` is set and the author has the requireAltText pref enabled.",
18 +
            "maxGraphemes": 1000
19 +
          },
15 20
          "text": {
16 21
            "type": "string",
17 22
            "maxLength": 10000,
18 23
            "maxGraphemes": 1000
19 24
          },
25 +
          "image": {
26 +
            "type": "blob",
27 +
            "accept": [
28 +
              "image/png",
29 +
              "image/jpeg",
30 +
              "image/webp"
31 +
            ],
32 +
            "maxSize": 5000000
33 +
          },
20 34
          "facets": {
21 35
            "type": "array",
22 36
            "items": {
23 37
              "ref": "app.didpic.richtext.facet",
24 38
              "type": "ref"
25 39
            }
26 40
          },
41 +
          "labels": {
42 +
            "ref": "app.didpic.feed.post#selfLabels",
43 +
            "type": "ref",
44 +
            "description": "Self-applied content labels (e.g. nsfw) on the comment's image."
45 +
          },
27 46
          "parent": {
28 47
            "ref": "com.atproto.repo.strongRef",
29 48
            "type": "ref",
30 49
            "description": "The comment being replied to."
31 50
          },
32 51
          "subject": {
33 52
            "ref": "com.atproto.repo.strongRef",
34 53
            "type": "ref",
35 54
            "description": "The post being commented on."
36 55
          },
37 56
          "createdAt": {
38 57
            "type": "string",
39 58
            "format": "datetime"
59 +
          },
60 +
          "aspectRatio": {
61 +
            "ref": "app.didpic.feed.post#aspectRatio",
62 +
            "type": "ref"
40 63
          }
41 64
        }
42 65
      },
43 -
      "description": "A comment on a post."
66 +
      "description": "A comment on a post. Optionally includes a single image with alt text and self-applied labels — same image shape as feed.post. Either text or image (or both) must be present in practice; the lexicon doesn't enforce that since 'one of N required' isn't expressible."
44 67
    }
45 68
  },
46 69
  "$type": "com.atproto.lexicon.schema",
47 70
  "lexicon": 1
48 71
}

Compare Other Versions

Lexicon Garden

@