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

7 breaking changes, 19 non-breaking changes.

Breaking Changes (7)
  • 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") }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef.alt", sort: "maxLength", value: "1000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef.cid", sort: "maxLength", value: "200" }
Non-Breaking Changes (19)
  • 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.alt", kind: "prop", name: Some("alt") }
  • 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", tgt: "app.chronosky.schedule.updatePost#imagesEmbed.images", kind: "prop", name: Some("images") }
  • 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: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") }

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" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef.alt", sort: "maxLength", value: "1000" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.chronosky.schedule.updatePost#imageRef.cid", sort: "maxLength", value: "200" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@