social.coves.community.post.update

coves.social

Schema Diff

+13 -5

From

CID
bafyreibzi3l4hqf...
Indexed At
2026-07-24 05:18 UTC
View this version

To

CID
bafyreidkpnqlqdb...
Indexed At
2026-09-07 20:28 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "social.coves.community.post.update:input.content", sort: "maxLength", old_value: "100000", new_value: "500000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "social.coves.community.post.update:input.content", sort: "maxGraphemes", old_value: "10000", new_value: "50000" }

Migration Guidance

Constraint Changes

  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "social.coves.community.post.update:input.content", sort: "maxGraphemes", old_value: "10000", new_value: "50000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "social.coves.community.post.update:input.content", sort: "maxLength", old_value: "100000", new_value: "500000" }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "Update an existing post",
6 6
      "errors": [
7 7
        {
8 8
          "description": "Post not found",
9 9
          "name": "PostNotFound"
10 10
        },
11 11
        {
12 12
          "description": "User is not authorized to edit this post",
13 13
          "name": "NotAuthorized"
14 14
        },
15 15
        {
16 -
          "description": "Edit window has expired (posts can only be edited within 24 hours)",
16 +
          "description": "The post changed between being read and being written, so the edit was composed against content that no longer stands. Re-read the post and re-apply the edit; the server does not merge, because re-applying server-side would silently erase a change the editor never saw.",
17 +
          "name": "ConcurrentModification"
18 +
        },
19 +
        {
20 +
          "description": "The service holds no credentials it can write to the author's repository with. Distinct from an expired caller session: signing in again is the fix for a person and no fix at all for a non-interactive author whose stored grant was revoked.",
21 +
          "name": "NoAuthorCredentials"
22 +
        },
23 +
        {
24 +
          "description": "DEPRECATED, retained for backward compatibility: no edit window is enforced - a post is editable by its author for as long as it exists. This name ships on main; removing a declared error is a non-additive break, so it stays declared until a new-NSID change retires it.",
17 25
          "name": "EditWindowExpired"
18 26
        },
19 27
        {
20 -
          "description": "Invalid update operation (e.g., changing post type)",
28 +
          "description": "DEPRECATED, retained for backward compatibility: never emitted. Refusals this once covered are answered by name instead - an edit naming a different community is an InvalidRequest validation error, and a post whose collection is not editable is the same. This name ships on main; removing a declared error is a non-additive break, so it stays declared until a new-NSID change retires it.",
21 29
          "name": "InvalidUpdate"
22 30
        }
23 31
      ],
24 32
      "input": {
25 33
        "encoding": "application/json",
26 34
        "schema": {
27 35
          "properties": {
28 36
            "content": {
29 37
              "description": "Updated content - main text for text posts, description for media, etc.",
30 -
              "maxGraphemes": 10000,
31 -
              "maxLength": 100000,
38 +
              "maxGraphemes": 50000,
39 +
              "maxLength": 500000,
32 40
              "type": "string"
33 41
            },
34 42
            "editNote": {
35 -
              "description": "Optional note explaining the edit",
43 +
              "description": "DEPRECATED, retained for backward compatibility: an optional note explaining the edit. This field ships on main; removing it is a non-additive break, so it stays declared as an optional input until a new-NSID change retires it.",
36 44
              "maxGraphemes": 300,
37 45
              "maxLength": 3000,
38 46
              "type": "string"
39 47
            },
40 48
            "embed": {
41 49
              "description": "Updated embedded content (note: changing embed type may be restricted)",
42 50
              "refs": [
43 51
                "social.coves.embed.images",
44 52
                "social.coves.embed.video",
45 53
                "social.coves.embed.external",
46 54
                "social.coves.embed.post"
47 55
              ],
48 56
              "type": "union"
49 57
            },
50 58
            "facets": {
51 59
              "description": "Updated annotations for rich text (mentions, links, formatting, block structure)",
52 60
              "items": {
53 61
                "ref": "social.coves.richtext.facet",
54 62
                "type": "ref"
55 63
              },
56 64
              "maxLength": 200,
57 65
              "type": "array"
58 66
            },
59 67
            "labels": {
60 68
              "description": "Updated self-applied content labels",
61 69
              "ref": "com.atproto.label.defs#selfLabels",
62 70
              "type": "ref"
63 71
            },
64 72
            "langs": {
65 73
              "description": "Updated languages (ISO 639-1)",
66 74
              "items": {
67 75
                "format": "language",
68 76
                "type": "string"
69 77
              },
70 78
              "maxLength": 3,
71 79
              "type": "array"
72 80
            },
73 81
            "tags": {
74 82
              "description": "Updated topic tags",
75 83
              "items": {
76 84
                "maxGraphemes": 64,
77 85
                "maxLength": 640,
78 86
                "type": "string"
79 87
              },
80 88
              "maxLength": 8,
81 89
              "type": "array"
82 90
            },
83 91
            "title": {
84 92
              "description": "Updated title",
85 93
              "maxGraphemes": 300,
86 94
              "maxLength": 3000,
87 95
              "type": "string"
88 96
            },
89 97
            "uri": {
90 98
              "description": "AT-URI of the post to update",
91 99
              "format": "at-uri",
92 100
              "type": "string"
93 101
            }
94 102
          },
95 103
          "required": [
96 104
            "uri"
97 105
          ],
98 106
          "type": "object"
99 107
        }
100 108
      },
101 109
      "output": {
102 110
        "encoding": "application/json",
103 111
        "schema": {
104 112
          "properties": {
105 113
            "cid": {
106 114
              "description": "New CID of the updated post",
107 115
              "format": "cid",
108 116
              "type": "string"
109 117
            },
110 118
            "uri": {
111 119
              "description": "AT-URI of the updated post",
112 120
              "format": "at-uri",
113 121
              "type": "string"
114 122
            }
115 123
          },
116 124
          "required": [
117 125
            "uri",
118 126
            "cid"
119 127
          ],
120 128
          "type": "object"
121 129
        }
122 130
      },
123 131
      "type": "procedure"
124 132
    }
125 133
  },
126 134
  "id": "social.coves.community.post.update",
127 135
  "lexicon": 1
128 136
}

Compare Other Versions

Lexicon Garden

@