app.chronosky.schedule.updatePost

chronosky.app

Schema Diff

+49 -1

From

CID
bafyreifxnljmr3p...
Indexed At
2026-02-18 18:04 UTC
View this version

To

CID
bafyreiacah47uat...
Indexed At
2026-03-19 20:24 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

12 breaking changes, 24 non-breaking changes.

Breaking Changes (12)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed", src: "app.chronosky.schedule.updatePost#imagesEmbed", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images", kind: "prop", name: Some("images") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef", src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.alt", kind: "prop", name: Some("alt") }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("app.bsky.embed.images") }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.external") }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.record") }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.video") }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.bsky.embed.images", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
Non-Breaking Changes (24)
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef" }
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.alt" }
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.cid" }
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.image" }
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed" }
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images" }
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images:items" }
  • AddedVertex AddedVertex { vertex_id: "app.chronosky.schedule.updatePost:input.embed:variant5" }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.cid", kind: "prop", name: Some("cid") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.image", kind: "prop", name: Some("image") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", tgt: "app.chronosky.schedule.updatePost#imageRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("#imagesEmbed") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.video") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.chronosky.schedule.updatePost#imagesEmbed", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.images", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant5", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef" }
  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.alt" }
  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.cid" }
  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imageRef.image" }
  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed" }
  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images" }
  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed.images:items" }
  • AddedVertex { vertex_id: "app.chronosky.schedule.updatePost:input.embed:variant5" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imagesEmbed", src: "app.chronosky.schedule.updatePost#imagesEmbed", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images", kind: "prop", name: Some("images") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef", src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.alt", kind: "prop", name: Some("alt") }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("app.bsky.embed.images") }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.external") }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.record") }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.video") }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.bsky.embed.images", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.cid", kind: "prop", name: Some("cid") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imageRef", tgt: "app.chronosky.schedule.updatePost#imageRef.image", kind: "prop", name: Some("image") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost#imagesEmbed.images:items", tgt: "app.chronosky.schedule.updatePost#imageRef", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant0", kind: "variant", name: Some("#imagesEmbed") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant1", kind: "variant", name: Some("app.bsky.embed.images") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant2", kind: "variant", name: Some("app.bsky.embed.external") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant3", kind: "variant", name: Some("app.bsky.embed.record") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant4", kind: "variant", name: Some("app.bsky.embed.video") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed", tgt: "app.chronosky.schedule.updatePost:input.embed:variant5", kind: "variant", name: Some("app.bsky.embed.recordWithMedia") }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant0", tgt: "app.chronosky.schedule.updatePost#imagesEmbed", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant1", tgt: "app.bsky.embed.images", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant2", tgt: "app.bsky.embed.external", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant3", tgt: "app.bsky.embed.record", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant4", tgt: "app.bsky.embed.video", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.chronosky.schedule.updatePost:input.embed:variant5", tgt: "app.bsky.embed.recordWithMedia", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 +
    "imageRef": {
5 +
      "description": "Image reference that supports both new blob uploads and existing image CID references.",
6 +
      "properties": {
7 +
        "alt": {
8 +
          "description": "Alt text for the image.",
9 +
          "maxLength": 1000,
10 +
          "type": "string"
11 +
        },
12 +
        "cid": {
13 +
          "description": "CID of an image blob. Can reference an existing image in the post or a newly uploaded image via media.uploadBlob.",
14 +
          "maxLength": 200,
15 +
          "type": "string"
16 +
        },
17 +
        "image": {
18 +
          "accept": [
19 +
            "image/jpeg",
20 +
            "image/png",
21 +
            "image/webp",
22 +
            "image/gif"
23 +
          ],
24 +
          "description": "New image blob (for newly uploaded images).",
25 +
          "maxSize": 1000000,
26 +
          "type": "blob"
27 +
        }
28 +
      },
29 +
      "required": [
30 +
        "alt"
31 +
      ],
32 +
      "type": "object"
33 +
    },
34 +
    "imagesEmbed": {
35 +
      "description": "Images embed that supports CID references for existing images.",
36 +
      "properties": {
37 +
        "images": {
38 +
          "items": {
39 +
            "ref": "#imageRef",
40 +
            "type": "ref"
41 +
          },
42 +
          "maxLength": 4,
43 +
          "type": "array"
44 +
        }
45 +
      },
46 +
      "required": [
47 +
        "images"
48 +
      ],
49 +
      "type": "object"
50 +
    },
4 51
    "main": {
5 52
      "description": "Update a scheduled post. Only PENDING posts can be updated.",
6 53
      "errors": [
7 54
        {
8 55
          "name": "PostNotFound"
9 56
        },
10 57
        {
11 58
          "name": "PostNotPending"
12 59
        },
13 60
        {
14 61
          "name": "NoFieldsProvided"
15 62
        }
16 63
      ],
17 64
      "input": {
18 65
        "encoding": "application/json",
19 66
        "schema": {
20 67
          "properties": {
21 68
            "disableQuotePosts": {
22 69
              "description": "Whether to disable quote posts",
23 70
              "type": "boolean"
24 71
            },
25 72
            "embed": {
26 -
              "description": "Embedded content (images, external links, records).",
73 +
              "description": "Embedded content (images, external links, records). Use #imagesEmbed to reference existing images by CID.",
27 74
              "refs": [
75 +
                "#imagesEmbed",
28 76
                "app.bsky.embed.images",
29 77
                "app.bsky.embed.external",
30 78
                "app.bsky.embed.record",
31 79
                "app.bsky.embed.video",
32 80
                "app.bsky.embed.recordWithMedia"
33 81
              ],
34 82
              "type": "union"
35 83
            },
36 84
            "facets": {
37 85
              "description": "Rich text facets (links, mentions, tags).",
38 86
              "items": {
39 87
                "ref": "app.bsky.richtext.facet",
40 88
                "type": "ref"
41 89
              },
42 90
              "type": "array"
43 91
            },
44 92
            "id": {
45 93
              "description": "Post ID to update.",
46 94
              "maxLength": 100,
47 95
              "type": "string"
48 96
            },
49 97
            "labels": {
50 98
              "description": "Self-applied content labels for content warnings (AT Protocol standard).",
51 99
              "ref": "com.atproto.label.defs#selfLabels",
52 100
              "type": "ref"
53 101
            },
54 102
            "langs": {
55 103
              "description": "Language codes (ISO 639-1).",
56 104
              "items": {
57 105
                "format": "language",
58 106
                "type": "string"
59 107
              },
60 108
              "maxLength": 3,
61 109
              "type": "array"
62 110
            },
63 111
            "scheduledAt": {
64 112
              "description": "New scheduled publication datetime (ISO 8601).",
65 113
              "format": "datetime",
66 114
              "maxLength": 100,
67 115
              "type": "string"
68 116
            },
69 117
            "text": {
70 118
              "description": "New post text content.",
71 119
              "maxGraphemes": 300,
72 120
              "maxLength": 3000,
73 121
              "type": "string"
74 122
            },
75 123
            "threadgateRules": {
76 124
              "description": "Thread gate rules to control who can reply",
77 125
              "items": {
78 126
                "refs": [
79 127
                  "app.bsky.feed.threadgate#mentionRule",
80 128
                  "app.bsky.feed.threadgate#followerRule",
81 129
                  "app.bsky.feed.threadgate#followingRule",
82 130
                  "app.bsky.feed.threadgate#listRule"
83 131
                ],
84 132
                "type": "union"
85 133
              },
86 134
              "maxLength": 5,
87 135
              "type": "array"
88 136
            }
89 137
          },
90 138
          "required": [
91 139
            "id"
92 140
          ],
93 141
          "type": "object"
94 142
        }
95 143
      },
96 144
      "output": {
97 145
        "encoding": "application/json",
98 146
        "schema": {
99 147
          "properties": {
100 148
            "post": {
101 149
              "ref": "app.chronosky.schedule.listPosts#scheduledPost",
102 150
              "type": "ref"
103 151
            }
104 152
          },
105 153
          "required": [
106 154
            "post"
107 155
          ],
108 156
          "type": "object"
109 157
        }
110 158
      },
111 159
      "type": "procedure"
112 160
    }
113 161
  },
114 162
  "id": "app.chronosky.schedule.updatePost",
115 163
  "lexicon": 1
116 164
}

Compare Other Versions

Lexicon Garden

@