nelind and Tangled
34a47e6e5a
chore: clean up Cargo.toml files with cargo-shear and remove default feature on lib crates
2026-07-25 18:31:06 +03:00
Lewis and Tangled
b6274bb3c4
api: validated newtypes from their checked constructors
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:40 +03:00
Lewis and Tangled
17905115d8
store: revalidate stored mutation sets on replay
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:40 +03:00
Lewis and Tangled
6ed568dbfb
store: rebuild derived indexes when stored format version is older
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:40 +03:00
Lewis and Tangled
d00d72895a
store: record-by-cid reverse index
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:40 +03:00
Lewis and Tangled
2f1e22a950
store: add record-by-cid key shapes & chunked scan helpers
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:39 +03:00
Lewis and Tangled
946cb9740f
store: warn & skip instead of failing on unreadable event payloads
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:39 +03:00
Lewis and Tangled
0c7cccb14c
invite: require owning account for generated codes
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:39 +03:00
Lewis and Tangled
4f37ac26cd
store: typed revs thru metastore keys & requests
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:39 +03:00
Lewis and Tangled
932b0c07d4
db: make stored handle optional when it no longer parses
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:39 +03:00
Lewis and Tangled
14a086cb13
store: fix inline block span parsing in event sidecars
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-25 08:27:39 +03:00
Lewis
e41f34746a
db: newtype Rkey and final newtype touches for now
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 08:03:14 +02:00
Lewis
fbfa15b0b4
invite: newtype InviteCode for invite endpoints + store
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 08:03:14 +02:00
Lewis
eb1a89dc58
db: Did type for repos and handlers
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 08:03:14 +02:00
Lewis
6ca6c45605
identity: Handle type for stored handles & extract_handle
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 08:03:14 +02:00
Lewis
d238affd76
repo: newtype commit cid & rev to CidLink & Tid
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 08:03:14 +02:00
Lewis
469255f5a9
db: newtype PasswordHash for users & app passwords
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 08:03:14 +02:00
Lewis
8559764d31
auth: newtype jti claims, sessions, & store
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 08:03:14 +02:00
Lewis
a405d523ca
oauth: newtype client, token, device & request ids
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 00:25:08 +03:00
Lewis
3c46e5fc73
lexicon: Nsid instead of strs for collections
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-12 00:21:32 +03:00
Lewis
f330dcd366
types: did, nsid, & rkey in AtUri::from_parts
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-07-11 16:14:56 +03:00
Lewis
aab1a945c2
session: deletes scope to did, route muts by did
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-28 09:55:11 +03:00
ave and Tangled
9dc184ee33
bsky(auth): add grace period to legacy session refresh
...
Concurrent or retried com.atproto.server.refreshSession calls presenting the
same refresh token hit the reuse-detection path, which deleted the session and
returned "Refresh token has been revoked due to suspected compromise" —
logging users out at random. The legacy flow had no grace period, unlike OAuth.
Mirror the reference atproto PDS: every rotated refresh token gets a 2h grace
window measured from its own rotation time (used_refresh_tokens.used_at in
postgres; a rotated_at_ms field appended to the metastore used-marker, with
old-format markers decoding as outside the window). A refresh presenting a
recently-rotated token is served the session's current tokens, re-minted on
the fly with the same jti/expiry — signed JWTs are never persisted. Reuse
outside the window still revokes the session.
The grace lookup returns the session's encrypted signing key so the handler
verifies the presented token's signature before minting replacement tokens or
revoking a session; a forged token bearing a known jti gets a generic
rejection with no side effects.
Integration tests asserting the old replay-gets-401 behavior are reworked to
the new contract and now also cover forged-signature replays and
out-of-window revocation.
2026-06-27 23:54:22 +03:00
Lewis
ab4eba6dc4
delegation: preset scopes grant identity & account
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-27 23:11:24 +03:00
Lewis and Tangled
39a2e40b35
invite codes: dedup consumption, iron out kinks
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-26 13:28:49 +03:00
Lewis and Tangled
b009ccdaf2
repo: the pg side of MST structural repair
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-08 16:58:51 +03:00
Lewis and Tangled
37fc06fb39
fix(store): unblock eventlog sync&freeze when writer dies
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-02 17:29:21 +03:00
Lewis and Tangled
728a8c4d3b
test(store): cross-store, firehose, read-validation coverage w/ faults
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-02 17:29:21 +03:00
Lewis and Tangled
3d49e99cc3
test(store): generic consistency checker, gauntlet fault/read
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-02 17:29:21 +03:00
Lewis and Tangled
7e823673ca
test(store): untested metastore, eventlog, & archival stuff
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-02 17:29:21 +03:00
Lewis
500dc2e0e6
test(store): gauntlet sweep configs for time-travel & fsync repro
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-01 19:01:04 +03:00
Lewis
a220611a8b
test(store): D gauntlet faults, crash-loss oracley, recoverable scenarios
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-01 19:01:04 +03:00
Lewis
ca7a4b4b73
fix(store): recover eventlog lastseq from tail not sidecar
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-01 19:01:04 +03:00
Lewis
8ff02610e4
feat(store): inline-commit mode, committed-extent recovery, failsafe verify&rollback
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-06-01 19:01:04 +03:00
Lewis and Tangled
7f8e858137
test(store): gauntlet MST-repairable & misdirected-write scenario
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-31 21:11:36 +03:00
Lewis and Tangled
44d73dac58
feat(store): rebuild & rewrite missing/corrupt MST blocks
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-31 21:11:36 +03:00
Lewis and Tangled
b8cae15c12
feat(store): detect foreign&corrupt blocks on read & preserve blocks thru recovery
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-31 21:11:36 +03:00
Lewis
31ee12ecd3
fix(store): torn hint-file tail should be recoverable on reopen
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-31 11:37:21 +03:00
Lewis
4015217a2e
feat(store): Clock trait for DST
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-30 23:46:22 +03:00
Lewis and Tangled
e9dc57d6f4
fix(firehose): lost events if seq commits out of order
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-30 21:10:38 +03:00
Lewis and Tangled
4d2c7d4723
feat(auth): verification-gate override, inbound-migration bypass, store deleter improvement
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-23 23:02:43 +03:00
Lewis
bdaf510898
build: bump workspace to 0.6.2
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-17 12:32:05 +03:00
Lewis
1815ddba9f
feat(gauntlet): index-backed/hint-backed/readable invariants, ExternalCorruption scenario
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-17 12:32:05 +03:00
Lewis
a7517ed5c9
feat(store): consistency check & repair for orphan hints etc
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-17 11:50:32 +03:00
Lewis
d07d702dd4
feat(store): try to self-heal phantom index entries on compaction
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-17 11:50:19 +03:00
Lewis and Tangled
fac9520a16
feat(tranquil-server): email config, tests, fmt
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-02 22:28:59 +03:00
Lewis and Tangled
eee6fb9ff4
feat(comms): EmailSender, permanent/transient routing
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-05-02 22:28:59 +03:00
Lewis
9b2cfb3a7e
fix(tranquil-store): durable-tail recovery + sync semantics
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-04-30 11:11:28 +03:00
Lewis
efd499bb26
fix(tranquil-store): barrier durability + torn-header recovery
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-04-29 15:35:42 +03:00
Lewis and Tangled
180de29984
fix(tranquil-pds): firehose car carries inductive proof
...
Lewis: May this revision serve well! <lu5a@proton.me >
2026-04-26 20:11:27 +03:00