A previous worker implemented the task in ~/bookshelf/tasks/M-authexpiry.txt and left the
working tree FAILING its acceptance gate. Read, in order: ~/bookshelf/docs/SPEC.md,
~/bookshelf/tasks/M-authexpiry.txt (the original instructions — every constraint in it binds
you too), ~/bookshelf/logs/M-authexpiry.summary (that worker's report), then the gate output at
~/bookshelf/logs/gate-M-authexpiry.log. Lines starting "GATE:" and non-zero exits are the failures.

Fix ONLY what makes the gate red. Do not redesign or re-implement the feature. The
test count must end ABOVE 337 with zero failures; do not delete or @Ignore tests to
get there. If a Paparazzi verify failed because snapshots were never recorded, record
them and LOOK at the PNGs before accepting them.

Run in the FOREGROUND (never background a build): ./tasks/gw assembleDebug,
./tasks/gw testDebugUnitTest, ./tasks/gw verifyPaparazziDebug. Do not git commit/add/push.
Report what was wrong, what you changed, and the verbatim output tails.
