From
bafyreialn5sccpfppwsvxeoeut5mz2ilojqsyxiz7yrbuh5zrrsscya3zq
indexed 2026-11-09 10:13 UTC
View this version
To
bafyreihqwmpuwp4izvj3uxdi5kqsywxtgbqus62kjga5tqwbbkkxwh4grm
indexed 2026-11-09 12:07 UTC
View this version
Compatibility
breaking 3 breaking changes, 7 non-breaking changes.
Breaking changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.kind", kind: "prop", name: Some("kind") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.value", kind: "prop", name: Some("value") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords:output", src: "us.off-the-clock.searchRecords:output", tgt: "us.off-the-clock.searchRecords:output.read", kind: "prop", name: Some("read") }
Non-breaking changes (7)
- AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part" }
- AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.kind" }
- AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.value" }
- AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read" }
- AddedVertex AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read:items" }
- AddedEdge AddedEdge { src: "us.off-the-clock.searchRecords:output.read", tgt: "us.off-the-clock.searchRecords:output.read:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "us.off-the-clock.searchRecords:output.read:items", tgt: "us.off-the-clock.searchRecords#part", kind: "ref", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part" }AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.kind" }AddedVertex { vertex_id: "us.off-the-clock.searchRecords#part.value" }AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read" }AddedVertex { vertex_id: "us.off-the-clock.searchRecords:output.read:items" }
Notes
- Breaking: RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords:output", src: "us.off-the-clock.searchRecords:output", tgt: "us.off-the-clock.searchRecords:output.read", kind: "prop", name: Some("read") }
- Breaking: RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.kind", kind: "prop", name: Some("kind") }
- Breaking: RequiredEdgeAdded { vertex_id: "us.off-the-clock.searchRecords#part", src: "us.off-the-clock.searchRecords#part", tgt: "us.off-the-clock.searchRecords#part.value", kind: "prop", name: Some("value") }
- Non-breaking: AddedEdge { src: "us.off-the-clock.searchRecords:output.read", tgt: "us.off-the-clock.searchRecords:output.read:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "us.off-the-clock.searchRecords:output.read:items", tgt: "us.off-the-clock.searchRecords#part", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"hit": {55
"properties": {66
"distanceKm": {77
"description": "For near: the distance in kilometres from the point to the record's nearest place, a decimal.",88
"maxLength": 16,99
"type": "string"1010
},1111
"record": {1212
"refs": [1313
"us.off-the-clock.defs#postView",1414
"us.off-the-clock.defs#eventView",1515
"us.off-the-clock.defs#bookmarkView",1616
"us.off-the-clock.defs#documentView",1717
"us.off-the-clock.defs#listingView",1818
"us.off-the-clock.defs#reviewView",1919
"us.off-the-clock.polls.pollView"2020
],2121
"type": "union"2222
},2323
"score": {2424
"description": "The mode's own number as a decimal: BM25 made positive for keyword and text, cosine similarity for semantic, 0 for a search by place alone. Lexicons carry no floats.",2525
"maxLength": 32,2626
"type": "string"2727
},2828
"snippet": {2929
"description": "The matched text with each match between [ and ].",3030
"maxLength": 2000,3131
"type": "string"3232
}3333
},3434
"required": [3535
"record",3636
"score"3737
],3838
"type": "object"3939
},4040
"main": {41
"description": "Posts, events, bookmarks, polls, documents, listings and reviews of one content space the viewer reads, matching every condition given: words (keyword), a full-text query (text) or a meaning (semantic), an H3 cell, a radius around a point, a bookmark's domain and a tag. Only records the viewer may see are answered, never another space's. SearchUnavailable is answered for mode=semantic before any other parameter is read, so a call without q tells a client whether meaning search is on.",41
"description": "Posts, events, bookmarks, polls, documents, listings and reviews of one content space the viewer reads, matching every part of a query and every other condition given: an H3 cell, a radius around a point and a bookmark's domain. The query's words and phrases rank the results and its other parts filter them; the parts read are answered in read. Only records the viewer may see are answered, never another space's. SearchUnavailable is answered for mode=semantic before any other parameter is read, so a call without query tells a client whether meaning search is on.",4242
"errors": [4343
{4444
"name": "InvalidRequest"4545
},4646
{4747
"name": "NotSpaceMember"4848
},4949
{5050
"description": "mode=semantic on a site with no embeddings endpoint.",5151
"name": "SearchUnavailable"5252
}5353
],5454
"output": {5555
"encoding": "application/json",5656
"schema": {5757
"properties": {5858
"cursor": {5959
"type": "string"6060
},6161
"hits": {6262
"items": {6363
"ref": "#hit",6464
"type": "ref"6565
},6666
"type": "array"6767
},6868
"mapUrl": {6969
"description": "For a search by place: a signed map of this page's first ten hits, numbered in order (IMG-14), when a map provider is configured.",7070
"format": "uri",7171
"type": "string"7272
},7373
"noPlaces": {7474
"description": "True on a search by place that found nothing in a space where no record has a place yet.",7575
"type": "boolean"76
},77
"read": {78
"description": "The parts of the query as they were read, in reading order.",79
"items": {80
"ref": "#part",81
"type": "ref"82
},83
"type": "array"7684
}7785
},7886
"required": [79
"hits"87
"hits",88
"read"8089
],8190
"type": "object"8291
}8392
},8493
"parameters": {8594
"properties": {86
"collection": {87
"description": "Posts, events, bookmarks, polls, documents, listings or reviews; all seven when absent.",88
"format": "nsid",89
"knownValues": [90
"app.bsky.feed.post",91
"community.lexicon.calendar.event",92
"community.lexicon.bookmarks.bookmark",93
"us.off-the-clock.polls.poll",94
"site.standard.document",95
"us.off-the-clock.listing",96
"us.off-the-clock.review"97
],98
"type": "string"99
},10095
"cursor": {10196
"type": "string"10297
},10398
"domain": {10499
"description": "Bookmarks whose subject's host is this domain or a subdomain of it, case-insensitive.",105100
"maxLength": 253,106101
"type": "string"107102
},108103
"from": {109104
"description": "Records sorted at or after this time.",110105
"format": "datetime",111106
"type": "string"112107
},113108
"h3": {114109
"description": "An H3 cell index in hexadecimal, at resolution 4 to 10.",115110
"maxLength": 16,116111
"type": "string"117112
},118113
"limit": {119114
"default": 25,120115
"maximum": 50,121116
"minimum": 1,122117
"type": "integer"123118
},124119
"mode": {125
"default": "keyword",120
"default": "best",121
"description": "best ranks full text and meaning together; keyword requires every word; text reads the words and phrases as a full-text query; semantic ranks by meaning.",126122
"knownValues": [123
"best",127124
"keyword",128125
"text",129126
"semantic"130127
],131128
"maxLength": 16,132129
"type": "string"133130
},134131
"near": {135132
"description": "A point as decimal degrees, latitude,longitude.",136133
"maxLength": 64,137134
"type": "string"138135
},139
"q": {140
"description": "Required unless h3, near, domain or tag is given.",141
"maxLength": 200,136
"query": {137
"description": "The search as a member typed it, read whole (D100): words, \"phrases\", rating:N/10, @handle, mentions:@handle, type:X (post, reply, event, bookmark, document, poll, listing or review), has:X and no:X (parent, replies, tags; has:mentions), and #tag, combined with AND. Required unless h3, near or domain is given.",138
"maxLength": 300,142139
"minLength": 1,143140
"type": "string"144141
},145142
"space": {146143
"description": "The pair's TID.",147144
"format": "tid",148145
"type": "string"149146
},150
"tag": {151
"description": "Bookmarks carrying this tag, case-insensitive.",152
"maxLength": 64,153
"type": "string"154
},155147
"until": {156148
"description": "Records sorted before this time.",157149
"format": "datetime",158150
"type": "string"159151
},160152
"within": {161153
"description": "The radius around near in kilometres, a decimal from 0.1 to 100; 5 by default.",162154
"maxLength": 16,163155
"type": "string"164156
}165157
},166158
"required": [167159
"space"168160
],169161
"type": "params"170162
},171163
"type": "query"164
},165
"part": {166
"description": "One part of a query as it was read: one word, a phrase without its quotes, a rating's number, a handle or DID without its @, a type's name, a statement's name, or a tag without its #.",167
"properties": {168
"kind": {169
"knownValues": [170
"words",171
"phrase",172
"rating",173
"author",174
"type",175
"has",176
"hasNo",177
"mentions",178
"tag"179
],180
"maxLength": 16,181
"type": "string"182
},183
"value": {184
"maxLength": 300,185
"type": "string"186
}187
},188
"required": [189
"kind",190
"value"191
],192
"type": "object"172193
}173194
},174195
"id": "us.off-the-clock.searchRecords",175196
"lexicon": 1176197
}