app.standard-reader.sidebarPref

standard-reader.app

Schema Diff

+22 -2

From

CID
bafyreigksjecpbi...
Indexed At
2026-07-25 03:10 UTC
View this version

To

CID
bafyreibwn5tmw2b...
Indexed At
2026-07-26 02:51 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 6 non-breaking changes.

Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.sidebarPref:body.subscriptionSort" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.sidebarPref:body.treeOrder" }
  • AddedVertex AddedVertex { vertex_id: "app.standard-reader.sidebarPref:body.treeOrder:items" }
  • AddedEdge AddedEdge { src: "app.standard-reader.sidebarPref:body", tgt: "app.standard-reader.sidebarPref:body.subscriptionSort", kind: "prop", name: Some("subscriptionSort") }
  • AddedEdge AddedEdge { src: "app.standard-reader.sidebarPref:body", tgt: "app.standard-reader.sidebarPref:body.treeOrder", kind: "prop", name: Some("treeOrder") }
  • AddedEdge AddedEdge { src: "app.standard-reader.sidebarPref:body.treeOrder", tgt: "app.standard-reader.sidebarPref:body.treeOrder:items", kind: "items", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.standard-reader.sidebarPref:body.subscriptionSort" }
  • AddedVertex { vertex_id: "app.standard-reader.sidebarPref:body.treeOrder" }
  • AddedVertex { vertex_id: "app.standard-reader.sidebarPref:body.treeOrder:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "app.standard-reader.sidebarPref:body", tgt: "app.standard-reader.sidebarPref:body.subscriptionSort", kind: "prop", name: Some("subscriptionSort") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.sidebarPref:body", tgt: "app.standard-reader.sidebarPref:body.treeOrder", kind: "prop", name: Some("treeOrder") }
  • Non-breaking: AddedEdge { src: "app.standard-reader.sidebarPref:body.treeOrder", tgt: "app.standard-reader.sidebarPref:body.treeOrder:items", kind: "items", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 -
      "description": "A reader's personal sidebar preferences: the display order of their subscription list groups, which groups are collapsed, and which primary nav items are hidden. A singleton record (rkey `self`).",
5 +
      "description": "A reader's personal sidebar preferences: the top-level arrangement of list groups and ungrouped subscriptions (one level deep), which groups are collapsed, how automatic sort orders subscriptions, and which primary nav items are hidden. A singleton record (rkey `self`).",
6 6
      "key": "literal:self",
7 7
      "record": {
8 8
        "properties": {
9 9
          "collapsed": {
10 10
            "description": "AT URIs of the list groups the reader has collapsed in the sidebar.",
11 11
            "items": {
12 12
              "format": "at-uri",
13 13
              "type": "string"
14 14
            },
15 15
            "maxLength": 1000,
16 16
            "type": "array"
17 17
          },
18 18
          "customizeNav": {
19 19
            "description": "Whether the reader has enabled 'Customize sidebar'. When true, the `hiddenNav` items are hidden; when false or absent, every primary nav item is shown regardless of `hiddenNav`.",
20 20
            "type": "boolean"
21 21
          },
22 22
          "hiddenNav": {
23 23
            "description": "Stable ids of the primary sidebar nav items the reader has hidden (e.g. 'home', 'latest', 'discover', 'search', 'saved', 'collections'). Subscriptions and its list groups are never hideable.",
24 24
            "items": {
25 25
              "maxLength": 64,
26 26
              "type": "string"
27 27
            },
28 28
            "maxLength": 32,
29 29
            "type": "array"
30 30
          },
31 31
          "listOrder": {
32 -
            "description": "Ordered AT URIs of the reader's list groups (own + saved) as shown top-to-bottom in the sidebar. Groups not present are appended in their default order.",
32 +
            "description": "Legacy: ordered AT URIs of the reader's list groups (own + saved), used as a fallback top-level list order only while `treeOrder` is empty. Superseded by `treeOrder`, which also carries ungrouped subscriptions interleaved with lists; new writes should prefer `treeOrder`.",
33 33
            "items": {
34 34
              "format": "at-uri",
35 35
              "type": "string"
36 36
            },
37 37
            "maxLength": 1000,
38 38
            "type": "array"
39 39
          },
40 +
          "subscriptionSort": {
41 +
            "description": "How the sidebar's subscriptions are ordered: 'default' (the reader's manual arrangement per `treeOrder`, or natural/stored order — the default), 'recent' (most recent activity first, interleaving publications and people), 'alpha' (name), or 'unread' (highest unread count first). Absent means 'default'.",
42 +
            "knownValues": [
43 +
              "default",
44 +
              "recent",
45 +
              "alpha",
46 +
              "unread"
47 +
            ],
48 +
            "maxLength": 16,
49 +
            "type": "string"
50 +
          },
51 +
          "treeOrder": {
52 +
            "description": "Manual top-level order of the sidebar's subscriptions tree: list-group AT URIs interleaved with ungrouped publication AT URIs / person DIDs, exactly as arranged via drag-and-drop. Applies only when `subscriptionSort` is 'default'. Entries not present are appended in their natural order. Takes precedence over the legacy `listOrder` once populated.",
53 +
            "items": {
54 +
              "maxLength": 512,
55 +
              "type": "string"
56 +
            },
57 +
            "maxLength": 2000,
58 +
            "type": "array"
59 +
          },
40 60
          "updatedAt": {
41 61
            "description": "When these preferences were last changed.",
42 62
            "format": "datetime",
43 63
            "type": "string"
44 64
          }
45 65
        },
46 66
        "required": [
47 67
          "updatedAt"
48 68
        ],
49 69
        "type": "object"
50 70
      },
51 71
      "type": "record"
52 72
    }
53 73
  },
54 74
  "id": "app.standard-reader.sidebarPref",
55 75
  "lexicon": 1
56 76
}

Compare Other Versions

Lexicon Garden

@