halkyon/packages/halkyon_base_server/test/integration/password
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tizian 「ティツィアーン」 274b796faa
fix(auth): a hold-out moves a reset on only by its own time, and a reset lives 30 days at most
The reading of the full reading's fixes found that every refusal at the
address's ceiling moved a reset to 72 hours after it (A1): someone who
knows only the address kept the owner's own reset from ever taking effect
with one burst every three days, and kept a forgotten one alive (A2).

Now a hold-out that begins before a reset takes effect moves it on only by
the time it holds the owner out and no hold-out counted before did
(account_reset.heldOutUntil, under a row lock), so the owner gets 72 hours
outside hold-outs in total; and every reset not carried out lapses 30 days
after it was asked (resetLivesAtMost), whatever moved it, besides a week
after it took effect.

Migration (module, Learn's and Todo's servers, Learn's device schema):
ALTER TABLE "account_reset" ADD COLUMN "heldOutUntil" timestamp without
time zone; nullable, existing rows counted from now on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-23 14:12:59 +02:00
..
password_change_test.dart fix(auth)!: the owner's proof is bound to what it approves 2026-10-23 14:12:54 +02:00
password_test.dart fix(auth)!: the owner's proof is bound to what it approves 2026-10-23 14:12:54 +02:00
resets_test.dart fix(auth): a hold-out moves a reset on only by its own time, and a reset lives 30 days at most 2026-10-23 14:12:59 +02:00
ways_in_test.dart fix(auth)!: the owner's proof is bound to what it approves 2026-10-23 14:12:54 +02:00