app.didpic.feed.comment

lexicons.didpic.app

Schema Diff

+32 -2

From

CID
bafyreihojhh64iz...
Indexed At
2026-05-18 00:14 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, 12 non-breaking changes.

Breaking Changes (2)
  • 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" }
Non-Breaking Changes (12)
  • 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.facets" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.feed.comment:body.facets:items" }
  • 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.facets", kind: "prop", name: Some("facets") }
  • 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") }
  • AddedEdge AddedEdge { src: "app.didpic.feed.comment:body.facets", tgt: "app.didpic.feed.comment:body.facets:items", kind: "items", name: None }

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.facets" }
  • AddedVertex { vertex_id: "app.didpic.feed.comment:body.facets:items" }
  • 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: "maxGraphemes", value: "1000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.feed.comment:body.alt", sort: "maxLength", value: "10000" }

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.facets", kind: "prop", name: Some("facets") }
  • 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") }
  • Non-breaking: AddedEdge { src: "app.didpic.feed.comment:body.facets", tgt: "app.didpic.feed.comment:body.facets:items", kind: "items", name: None }
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 +
          },
34 +
          "facets": {
35 +
            "type": "array",
36 +
            "items": {
37 +
              "ref": "app.didpic.richtext.facet",
38 +
              "type": "ref"
39 +
            }
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 +
          },
20 46
          "parent": {
21 47
            "ref": "com.atproto.repo.strongRef",
22 48
            "type": "ref",
23 49
            "description": "The comment being replied to."
24 50
          },
25 51
          "subject": {
26 52
            "ref": "com.atproto.repo.strongRef",
27 53
            "type": "ref",
28 54
            "description": "The post being commented on."
29 55
          },
30 56
          "createdAt": {
31 57
            "type": "string",
32 58
            "format": "datetime"
59 +
          },
60 +
          "aspectRatio": {
61 +
            "ref": "app.didpic.feed.post#aspectRatio",
62 +
            "type": "ref"
33 63
          }
34 64
        }
35 65
      },
36 -
      "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."
37 67
    }
38 68
  },
39 69
  "$type": "com.atproto.lexicon.schema",
40 70
  "lexicon": 1
41 71
}

Compare Other Versions

Lexicon Garden

@