lightweight com.atproto.sync.listReposByCollection
45
fork

Configure Feed

Select the types of activity you want to include in your feed.

did that (and fixed that)

phil 4a1dd602 362c4b79

+3 -3
+1 -1
hacking.md
··· 94 94 - [x] *don't* allow non-validating commits that look like sync1.1 95 95 - [x] rachet by PDS host: be lenient if we have never seen a sync1.1-looking commit, always strict after we see one. 96 96 - [?] boooo we might need more handling for pre-sync1.1 repos if they don't include adjacent keys 97 + - [x] split the keyspace: put the rbc/cbr indexes on a second keyspace with larger block size, expect hits on main keyspace 97 98 - [ ] resync free hints from first phony getRecord 98 99 - [ ] short-circuit: tiny repos may incidentally return their entire CAR for getRecord 99 100 - [ ] estimate CAR size and `getRecord` if it's likely very small (bypass `describeRepo`) 100 101 - [ ] commit CAR handling: generate a list of keys with gaps noted, to reliably detect missing adjacent keys 101 102 - [ ] account status convergeance: if we receive commits from apparently-inactive accounts, should we check upstream status to make sure we're not stale? 102 - - [ ] split the keyspace: put the rbc/cbr indexes on a second keyspace with larger block size, expect hits on main keyspace 103 103 - [ ] websocket ping/pong (unless jacquard is already doing it) 104 104 - [ ] websocket no-events-received timeout reconnect 105 105
+2 -2
src/storage/collection_index.rs
··· 330 330 ) -> StorageResult<usize> { 331 331 let prefix = cbr_prefix(did); 332 332 let collections: Vec<Vec<u8>> = db 333 - .ks 333 + .index_ks 334 334 .prefix(prefix.clone()) 335 335 .map(|guard| guard.into_inner().map(|(k, _v)| k.to_vec())) 336 336 .collect::<fjall::Result<_>>()?; ··· 373 373 let prefix = cbr_prefix(did); 374 374 let prefix_len = prefix.len(); 375 375 let existing: Vec<Nsid<'static>> = db 376 - .ks 376 + .index_ks 377 377 .prefix(prefix) 378 378 .map(|guard| { 379 379 guard