app.didpic.notification.updateSeen

lexicons.didpic.app

Schema Diff

+19 -3

From

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

To

CID
bafyreianba75ywx...
Indexed At
2026-05-18 02:59 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.updateSeen:output.badge", sort: "minimum", value: "0" }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "app.didpic.notification.updateSeen:input.token" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.notification.updateSeen:output" }
  • AddedVertex AddedVertex { vertex_id: "app.didpic.notification.updateSeen:output.badge" }
  • AddedEdge AddedEdge { src: "app.didpic.notification.updateSeen", tgt: "app.didpic.notification.updateSeen:output", kind: "prop", name: Some("output") }
  • AddedEdge AddedEdge { src: "app.didpic.notification.updateSeen:input", tgt: "app.didpic.notification.updateSeen:input.token", kind: "prop", name: Some("token") }
  • AddedEdge AddedEdge { src: "app.didpic.notification.updateSeen:output", tgt: "app.didpic.notification.updateSeen:output.badge", kind: "prop", name: Some("badge") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.didpic.notification.updateSeen:input.token" }
  • AddedVertex { vertex_id: "app.didpic.notification.updateSeen:output" }
  • AddedVertex { vertex_id: "app.didpic.notification.updateSeen:output.badge" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.notification.updateSeen:output.badge", sort: "minimum", value: "0" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.didpic.notification.updateSeen", tgt: "app.didpic.notification.updateSeen:output", kind: "prop", name: Some("output") }
  • Non-breaking: AddedEdge { src: "app.didpic.notification.updateSeen:input", tgt: "app.didpic.notification.updateSeen:input.token", kind: "prop", name: Some("token") }
  • Non-breaking: AddedEdge { src: "app.didpic.notification.updateSeen:output", tgt: "app.didpic.notification.updateSeen:output.badge", kind: "prop", name: Some("badge") }
1 1
{
2 2
  "id": "app.didpic.notification.updateSeen",
3 3
  "defs": {
4 4
    "main": {
5 5
      "type": "procedure",
6 6
      "input": {
7 7
        "schema": {
8 8
          "type": "object",
9 9
          "required": [
10 10
            "seenAt"
11 11
          ],
12 12
          "properties": {
13 +
            "token": {
14 +
              "type": "string",
15 +
              "description": "Caller's push token. When supplied and bound to the viewer, the response carries the post-update device badge."
16 +
            },
13 17
            "seenAt": {
14 18
              "type": "string",
15 -
              "format": "datetime",
16 -
              "description": "Timestamp indicating everything indexed at or before this moment has been seen. Clients should echo back the serverTime returned by listNotifications rather than using a locally-computed `now`."
19 +
              "format": "datetime"
20 +
            }
21 +
          }
22 +
        },
23 +
        "encoding": "application/json"
24 +
      },
25 +
      "output": {
26 +
        "schema": {
27 +
          "type": "object",
28 +
          "properties": {
29 +
            "badge": {
30 +
              "type": "integer",
31 +
              "minimum": 0,
32 +
              "description": "Device-wide unread sum across every DID bound to the supplied token."
17 33
            }
18 34
          }
19 35
        },
20 36
        "encoding": "application/json"
21 37
      },
22 -
      "description": "Push the authenticated viewer's notification seenAt boundary forward. Server-enforced monotonic: a stale or out-of-order client call with an older seenAt is a no-op, not a regression."
38 +
      "description": "Mark notifications as seen up to seenAt."
23 39
    }
24 40
  },
25 41
  "$type": "com.atproto.lexicon.schema",
26 42
  "lexicon": 1
27 43
}

Compare Other Versions

Lexicon Garden

@