com.suibari.nagi.putPreferences

suibari.com

Schema Diff

+24 -0

From

CID
bafyreigjcqxtfpa...
Indexed At
2026-08-06 12:22 UTC
View this version

To

CID
bafyreihqlpwq4rs...
Indexed At
2026-08-15 17:15 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 8 non-breaking changes.

Non-Breaking Changes (8)
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.preferredName" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.replyFreq" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.preferredName" }
  • AddedVertex AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.replyFreq" }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.preferredName", kind: "prop", name: Some("preferredName") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.replyFreq", kind: "prop", name: Some("replyFreq") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.preferredName", kind: "prop", name: Some("preferredName") }
  • AddedEdge AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.replyFreq", kind: "prop", name: Some("replyFreq") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.preferredName" }
  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:input.replyFreq" }
  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.preferredName" }
  • AddedVertex { vertex_id: "com.suibari.nagi.putPreferences:output.replyFreq" }

Additional Notes

  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.preferredName", kind: "prop", name: Some("preferredName") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:input", tgt: "com.suibari.nagi.putPreferences:input.replyFreq", kind: "prop", name: Some("replyFreq") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.preferredName", kind: "prop", name: Some("preferredName") }
  • Non-breaking: AddedEdge { src: "com.suibari.nagi.putPreferences:output", tgt: "com.suibari.nagi.putPreferences:output.replyFreq", kind: "prop", name: Some("replyFreq") }
1 1
{
2 2
  "id": "com.suibari.nagi.putPreferences",
3 3
  "defs": {
4 4
    "main": {
5 5
      "type": "procedure",
6 6
      "input": {
7 7
        "schema": {
8 8
          "type": "object",
9 9
          "properties": {
10 10
            "feedTabs": {
11 11
              "type": "array",
12 12
              "items": {
13 13
                "ref": "com.suibari.nagi.getPreferences#feedTab",
14 14
                "type": "ref"
15 15
              },
16 16
              "maxLength": 16
17 17
            },
18 +
            "replyFreq": {
19 +
              "type": "integer",
20 +
              "maximum": 100,
21 +
              "minimum": 0,
22 +
              "description": "botたんからの返信確率(0〜100%)。送らなければ変更しない。"
23 +
            },
24 +
            "preferredName": {
25 +
              "type": "string",
26 +
              "maxLength": 120,
27 +
              "description": "botたんに呼んでほしい名前。空文字を送ると登録を解除し、表示名に戻す。送らなければ変更しない。",
28 +
              "maxGraphemes": 40
29 +
            },
18 30
            "readPositions": {
19 31
              "type": "array",
20 32
              "items": {
21 33
                "ref": "com.suibari.nagi.getPreferences#readPosition",
22 34
                "type": "ref"
23 35
              },
24 36
              "maxLength": 16
25 37
            },
26 38
            "emojiFavorites": {
27 39
              "type": "array",
28 40
              "items": {
29 41
                "type": "unknown"
30 42
              },
31 43
              "maxLength": 32
32 44
            },
33 45
            "feedTabsUpdatedAt": {
34 46
              "type": "string",
35 47
              "format": "datetime",
36 48
              "description": "feedTabs を送るときは必須。保存済みより古ければ書き込まない。"
37 49
            },
38 50
            "emojiFavoritesUpdatedAt": {
39 51
              "type": "string",
40 52
              "format": "datetime",
41 53
              "description": "emojiFavorites を送るときは必須。保存済みより古ければ書き込まない。"
42 54
            }
43 55
          }
44 56
        },
45 57
        "encoding": "application/json"
46 58
      },
47 59
      "errors": [
48 60
        {
49 61
          "name": "AuthRequired"
50 62
        },
51 63
        {
52 64
          "name": "InvalidRequest"
53 65
        }
54 66
      ],
55 67
      "output": {
56 68
        "schema": {
57 69
          "type": "object",
58 70
          "required": [
59 71
            "readPositions",
60 72
            "emojiFavorites"
61 73
          ],
62 74
          "properties": {
63 75
            "feedTabs": {
64 76
              "type": "array",
65 77
              "items": {
66 78
                "ref": "com.suibari.nagi.getPreferences#feedTab",
67 79
                "type": "ref"
68 80
              },
69 81
              "maxLength": 16
70 82
            },
83 +
            "replyFreq": {
84 +
              "type": "integer",
85 +
              "maximum": 100,
86 +
              "minimum": 0,
87 +
              "description": "botたんからの返信確率(0〜100%)。"
88 +
            },
89 +
            "preferredName": {
90 +
              "type": "string",
91 +
              "maxLength": 120,
92 +
              "description": "botたんに呼んでほしい名前。省略時は未設定=表示名で呼ばれる。",
93 +
              "maxGraphemes": 40
94 +
            },
71 95
            "readPositions": {
72 96
              "type": "array",
73 97
              "items": {
74 98
                "ref": "com.suibari.nagi.getPreferences#readPosition",
75 99
                "type": "ref"
76 100
              },
77 101
              "description": "マージ後の確定値。送った位置が負けた場合は保存済みの方が返る。"
78 102
            },
79 103
            "emojiFavorites": {
80 104
              "type": "array",
81 105
              "items": {
82 106
                "type": "unknown"
83 107
              },
84 108
              "maxLength": 32
85 109
            },
86 110
            "feedTabsUpdatedAt": {
87 111
              "type": "string",
88 112
              "format": "datetime"
89 113
            },
90 114
            "emojiFavoritesUpdatedAt": {
91 115
              "type": "string",
92 116
              "format": "datetime"
93 117
            }
94 118
          }
95 119
        },
96 120
        "encoding": "application/json"
97 121
      },
98 122
      "description": "同期対象の設定を書き込む。既読位置は (indexedAt, uri) が進むときだけ更新する単調マージ、お気に入りは updatedAt による後勝ち。どちらも省略でき、送った分だけが更新される。"
99 123
    }
100 124
  },
101 125
  "$type": "com.atproto.lexicon.schema",
102 126
  "lexicon": 1
103 127
}

Compare Other Versions

Lexicon Garden

@