app.didpic.notification.defs

lexicons.didpic.app

Schema Diff

+19 -2

From

CID
bafyreianj477oaj...
Indexed At
2026-05-16 06:40 UTC
View this version

To

CID
bafyreievootbsng...
Indexed At
2026-05-16 07:07 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 6 non-breaking changes.

Breaking Changes (1)
  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.notification.defs#notificationView.count", sort: "minimum", value: "1" }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.comment" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.count" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.post" }
  • AddedEdge AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.comment", kind: "prop", name: Some("comment") }
  • AddedEdge AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.count", kind: "prop", name: Some("count") }
  • AddedEdge AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.post", kind: "prop", name: Some("post") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.comment" }
  • AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.count" }
  • AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.post" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.notification.defs#notificationView.count", sort: "minimum", value: "1" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.comment", kind: "prop", name: Some("comment") }
  • Non-breaking: AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.count", kind: "prop", name: Some("count") }
  • Non-breaking: AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.post", kind: "prop", name: Some("post") }
1 1
{
2 2
  "id": "app.didpic.notification.defs",
3 3
  "defs": {
4 4
    "notificationView": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "id",
8 8
        "reason",
9 9
        "author",
10 10
        "recordUri",
11 11
        "recordCid",
12 +
        "count",
12 13
        "isRead",
13 14
        "createdAt",
14 15
        "indexedAt"
15 16
      ],
16 17
      "properties": {
17 18
        "id": {
18 19
          "type": "string",
19 20
          "description": "Server-issued opaque identifier for this notification within the recipient's stream."
20 21
        },
22 +
        "post": {
23 +
          "ref": "app.didpic.feed.defs#postView",
24 +
          "type": "ref",
25 +
          "description": "Server-hydrated thread-root post for any reason involving a post (like / comment / reply). Lets clients render a thumbnail preview inline without an extra fetch."
26 +
        },
27 +
        "count": {
28 +
          "type": "integer",
29 +
          "minimum": 1,
30 +
          "description": "Number of underlying records collapsed into this notification. Always 1 for comment / reply / follow; for like notifications it counts repeat likes on the same subject (a viral post that gets many likes produces a single row with count incrementing)."
31 +
        },
21 32
        "author": {
22 33
          "ref": "app.didpic.actor.defs#profileBasic",
23 -
          "type": "ref"
34 +
          "type": "ref",
35 +
          "description": "Most recent actor responsible for this notification. For collapsed likes this is the latest liker; the UI typically reads 'author and (count - 1) others ...'."
24 36
        },
25 37
        "isRead": {
26 38
          "type": "boolean",
27 39
          "description": "True if this notification's indexedAt is at or before the viewer's stored seenAt boundary."
28 40
        },
29 41
        "reason": {
30 42
          "type": "string",
31 43
          "knownValues": [
32 44
            "like",
33 45
            "comment",
34 46
            "reply",
35 47
            "follow"
36 48
          ]
37 49
        },
50 +
        "comment": {
51 +
          "ref": "app.didpic.feed.defs#commentView",
52 +
          "type": "ref",
53 +
          "description": "Server-hydrated comment for cases where the subject is a comment: reply (the parent comment) and like (when the like targets a comment rather than a post). Lets clients render the snippet text inline."
54 +
        },
38 55
        "postUri": {
39 56
          "type": "string",
40 57
          "format": "at-uri",
41 58
          "description": "Denormalised thread-root post URI for all post-context reasons (like / comment / reply). Lets clients route directly to the post view without a lookup. Absent for follow notifications."
42 59
        },
43 60
        "createdAt": {
44 61
          "type": "string",
45 62
          "format": "datetime"
46 63
        },
47 64
        "indexedAt": {
48 65
          "type": "string",
49 66
          "format": "datetime"
50 67
        },
51 68
        "recordCid": {
52 69
          "type": "string",
53 70
          "format": "cid"
54 71
        },
55 72
        "recordUri": {
56 73
          "type": "string",
57 74
          "format": "at-uri",
58 -
          "description": "URI of the underlying interaction record (like, comment, or follow)."
75 +
          "description": "URI of the most recent underlying interaction record. For collapsed likes earlier likes are not enumerated."
59 76
        },
60 77
        "subjectCid": {
61 78
          "type": "string",
62 79
          "format": "cid"
63 80
        },
64 81
        "subjectUri": {
65 82
          "type": "string",
66 83
          "format": "at-uri",
67 84
          "description": "URI of the thing the interaction targeted: post for top-level comments and post-likes, comment for comment-likes and replies. Absent for follow notifications."
68 85
        }
69 86
      }
70 87
    }
71 88
  },
72 89
  "$type": "com.atproto.lexicon.schema",
73 90
  "lexicon": 1
74 91
}

Compare Other Versions

Lexicon Garden

@