Commit Graph

620 Commits

Author SHA1 Message Date
525fb23849 make: feature-flag dep guards (federation-off, nats, no actix/aws-lc), wired in check+CI 2026-10-26 04:31:24 +01:00
5f2d60cb06 tracing-subscriber: restore tracing-log+smallvec 2026-10-26 04:29:28 +01:00
9215f3db69 workspace deps hygiene: minimal features, default-members sans tui; drop utoipa-scalar + /scalar; ci test --workspace; .sqlx dockerignore 2026-10-26 04:25:43 +01:00
ae0c04a4f3 sqlx: no default features (derive+migrate); drop SQLX_OFFLINE 2026-10-26 04:06:10 +01:00
0b80e48622 k-ap 0.5.1; reqwest ring-only, sqlx no tls; bootstrap installs ring provider 2026-10-26 03:52:49 +01:00
b9cdb54340 tombstone gate all user paths; cleanup deletes late follower rows; spa self-delete to /; adr 0016 + purge comment 2026-10-26 03:22:13 +01:00
caab63596a webhook tokens of tombstoned users rejected 2026-10-26 03:17:00 +01:00
c9e74d9cc3 purge: redact user from global wrap-up reports 2026-10-26 03:16:12 +01:00
9d0166f5cb service actor undeletable: domain const, 403, hide delete UI 2026-10-26 03:15:27 +01:00
3861d99e1f admin delete copy, anon form assertion 2026-10-26 03:03:18 +01:00
9fd1eadc95 docs: adr 0016 account deletion 2026-10-26 03:03:18 +01:00
bc3c9e3d23 fix: invalid-credentials code, no refresh on wrong pw 2026-10-26 02:58:55 +01:00
4714216093 feat: spa account deletion 2026-10-26 02:54:36 +01:00
6aebad1f0f feat: classic ui account deletion 2026-10-26 02:51:52 +01:00
0beedfbf0a feat: account deletion endpoints 2026-10-26 02:49:07 +01:00
54c8433c78 purge: erase only finished outbox rows; cleanup waits for unfinished events 2026-10-26 02:43:11 +01:00
80dbdec107 purge: skip broadcasts of deleted authors, purge outbox log, guards, 410 inbox test 2026-10-26 02:39:06 +01:00
51a70b5260 feat: account purge handler, tombstone cleanup, AP tombstone signing + 410 2026-10-26 02:30:09 +01:00
9a03de8956 mark_deleted: atomic last-admin guard; review minors 2026-10-26 02:16:35 +01:00
0b5d18c4ee feat: account deletion request and active-user check 2026-10-26 02:12:29 +01:00
83bb5d9847 chore: lockfile for activitypub tokio dev-dep 2026-10-26 02:04:08 +01:00
31f5d5f337 feat: user tombstone and retired usernames 2026-10-26 02:03:36 +01:00
bde8040cc3 watchlist add: event only if inserted; adr 0015 jetstream/relay accuracy; drop vacuous assert 2026-10-26 01:56:38 +01:00
d0568d7933 relay: sink failure defers + pauses w/ backoff, no attempt spent 2026-10-26 01:53:31 +01:00
fe9f284531 sqlite ack/nack/defer only if claim still held; use shared backoff 2026-10-26 01:52:28 +01:00
dfa5e1a4db nats nak w/ shared retry_backoff, exhausted log; no 'will retry' lie 2026-10-26 01:52:28 +01:00
56f3d1ac1b fix: preserve consumer config on update, warn not abort; adr accuracy 2026-10-26 01:43:22 +01:00
0908b7046a fix(sqlite): concurrent migrate retries 2026-10-26 01:40:40 +01:00
6ae3f54a36 docs: adr 0015 transactional outbox 2026-10-26 01:39:01 +01:00
2fb577af65 fix: apply dedup window + max_deliver to existing jetstream stream/consumer 2026-10-26 01:35:33 +01:00
818ab893a1 fix: real AP id tests, exact poster key check, exists port, list_movies fake 2026-10-26 01:33:29 +01:00
4cb2972f63 feat: idempotent handlers, deterministic activity ids 2026-10-26 01:27:03 +01:00
7f9c252d35 fix: NewRemoteReview param struct, atomic review+orphan movie delete 2026-10-26 01:19:09 +01:00
9a4d0c1714 feat: atomic social local writes, remote review enrichment
SocialCommand methods take events. Local follow ops = one FollowCommand::apply
tx (rows + events). k_ap path (remote, block/unblock): best-effort publish in
CompositeSocialAdapter after k_ap write; not atomic, k_ap owns tx.
save_remote_review takes events, enqueued in same tx via
sqlite::persistence::enqueue_events. Deps drop event_publisher: social
command, ReviewObjectHandler.

Remaining .publish( sites:
announce-only: users/delete_account UserDeleted, person/get + get_credits
PersonEnrichmentRequested, jobs/enrichment_staleness, http-axum search,
ImageStored (sync_poster, poster_sync_handler, image-converter backfill,
update_profile; object storage), federation_event_bridge (handler reaction),
nats relay (transport).
non-atomic by necessity: CompositeSocialAdapter::announce (k_ap-owned write).
Everything else rides its write.
2026-10-26 01:12:58 +01:00
6c295866a0 feat: atomic wrapup, movie, integration writes
Ride writes: WrapUpRequested/Completed (wrapup create/set_complete),
MovieDiscovered (resolve upsert, new+ext id only), PosterSynced (poster
handler upsert), MovieDeleted (delete_movie), WatchEventIngested (save).
Deps drop event_publisher: wrapup, ingest, delete_review, watchlist add,
review logger.

Remaining .publish( sites:
announce-only: users/delete_account UserDeleted, person/get +
get_credits PersonEnrichmentRequested, jobs/enrichment_staleness,
http-axum search, movies/sync_poster + poster_sync_handler +
image-converter backfill + users/update_profile ImageStored (object
storage), activitypub federation_event_bridge (reacting to events).
rides write, deferred: social/execute (see report),
activitypub review_handler MovieEnrichmentRequested (after
save_remote_review).
2026-10-26 01:02:34 +01:00
2f133afb96 fix: honest review update rollback test, goal delete NotFound fake, read before write 2026-10-26 00:52:45 +01:00
62ad9f4017 feat: atomic goal, watchlist, profile writes 2026-10-26 00:49:28 +01:00
c8a1e8bfe4 feat: atomic review writes with events 2026-10-26 00:40:43 +01:00
0236a488fa fix: defer blocked deliveries, claim owner token 2026-10-26 00:33:29 +01:00
53892847f2 fix: per-handler claim lease in ledger, nats max_deliver, pin handler names 2026-10-26 00:24:56 +01:00
5681d0c034 feat: processed-event ledger, idempotent dispatch 2026-10-26 00:17:28 +01:00
fa8e94817a fix: relay shutdown, claim lease, dead-letter undecodable, dedup window 2026-10-26 00:11:06 +01:00
c06d3d9207 feat: worker relays outbox to nats 2026-10-26 00:06:11 +01:00
32dfc84697 feat: event ids, outbox identity migration 2026-10-25 23:57:24 +01:00
c31aa033cc test: harden claim race test 2026-10-25 23:40:43 +01:00
98ad1a8fe7 docs: adr 0013 accuracy 2026-10-25 23:39:04 +01:00
b96f03f86f fix(sqlite): dedup clears old external id before canonical upsert 2026-10-25 23:39:04 +01:00
d073922308 fix(sqlite): atomic event queue claim 2026-10-25 23:39:04 +01:00
b7e69b69dc refactor: drop postgres leftovers, narrow bootstrap api 2026-10-25 23:25:16 +01:00
ec2760fd48 chore: drop unused deps 2026-10-25 23:19:19 +01:00