Verified complete: feature landed in BOTH repos — backend PR #432 + angular PR #454 ('parents can share/grant their uploaded books with their children'). Closing.
Verified complete: spikersoft-angular PR #453 merged ('surface a domestic child's requested states on the parent approval map') — 1:1 with the reported bug. Closing.
Verified complete: spikersoft-angular PR #228 merged ('read downloaded PDFs offline + auth.guard offline entry'); auth.guard offline path + offline manage UI on master. Closing.
Verified complete: spikersoft-angular PR #229 merged ('read downloaded EPUBs offline + blob-URL resource rewriter'); epub-reader carries the offline/blob-URL handling on master. Closing.
Verified complete: backend PR #378 merged; ThreeDModelController now uses TryGetUserId (5 call sites) with the duplicated checks consolidated. Closing.
Verified complete: spikersoft-angular PR #457 merged (shared in-memory storage setup for the playground persistence specs); master test-and-lint has run green repeatedly since. Closing.
Verified complete: spikersoft-angular PR #226 merged ('download-for-offline button on book cards'); the offline.download/downloading/removeDownload i18n strings ship in the live bundle. Closing…
Verified complete: spikersoft-angular PR #227 merged; offline-books-section.component exists on master with list/remove/quota strings (offline.manageTitle/storageUsed/noneDownloaded). Closing.
Epic complete — every one of the 9 PR trains shipped, plus substantial post-scope hardening. Closing.
Train map (all merged + deployed): 1-2. Photograph domain/upload/permissions/gear +…
Resolved by the #779 provenance work (spikersoft-backend PR #442/#446, merged + deployed): Stacked/Touchup gallery saves now carry artAssetId and the SERVER inherits gear/exposure metadata…
All merged: backend #446/#447 (deployed) + angular #510/#511 (deploy in the current master pipeline). Burst auto-grouping live in the worker, backfill run (11/11), collapse gallery + provenance…