Milestones
List view
- No due date•0/3 issues closed
How work gets designed, reviewed and enforced: the design process, CI, the quality gates and the tooling behind them. Process: .claude/docs/design-process.md. New engineering-process work goes here.
No due date•19/20 issues closedAdmin panel, login screen, change password screen, and storage-config management UI. Stack: React SPA served by the API (ADR 0012, #338; comparison archived on #338). v1.0 order: each parent issue (needs-design) is grilled, then /to-spec and /to-tickets cut its children. #344 (foundation, done: #357, #358 → #359 → #360 login) → #347 (API prerequisites; children #363 → #364 → #365, #340 and #366 in parallel → #367 media cookie, which feeds #49) and #346 (design system; decided 2026-11-06, ADR 0018; children: #457 tokens and themes → #458 base components; blocks #120, which carries the theme toggle) → **#394** (the document publishes the error codes; decided 2026-11-06) → #345 (sign-in and API client; decided 2026-11-06, ADR 0017; children: #443 session and reload → #444 refresh lifecycle → #445 tabs and sign-out; #443 also blocks #122) → #120 (app shell) → **#496** (API module holds the session's user, one failure shape; done: #505. #49 brought back `authorized` with the `401` rule and its tests, and `SessionNotRenewed` with the query retry predicate (#523); clearing the query cache on sign-out is #477: [Decision](https://github.com/bitbiter-dev/anichron/issues/496#issuecomment-6781931440)) and #498 (low review findings; done: #521) → #122 (change password) → #92 (forced change guard) → #525 (low review finding: admin types named for auth; done: #530) → #446 (work-items view, live; done: #534; shipped the admin guard and the Server-Sent Events reader) → the remaining admin screens (#123–#127, #81). Blocking links are recorded on each issue.
No due date•27/36 issues closedSurfaces memories beyond the daily flashback.
No due date•0/9 issues closedExpose read-optimised endpoints consumed by the UI. v1.0 order: **#385** first (503 while the database is down; decided 2026-11-04, ready-for-agent, from the 2026-10-30 real-world test; ordered with Epic 3's findings) → then #35 (Epic 4, pulled forward) → #241, #242 → #43 → the 2026-10-16 architecture-review follow-ups #251, #252 (done, #268) → #48 + #253 + #38 in one PR (done, #269; #38 is the first caller of #253's reader and #48's hidden rule; decided 2026-10-17, design note on #253) → #255 (done, #270), plus #254 (Epic 4, done, #274) → the 2026-10-18 review follow-ups #282, #283 (Epic 4) → #250 (Epic 4) → #46 → #296 (Epic 3; #297 → #298, #299; #26 superseded). #44 (originals) is deferred to post-1.0: no v1.0 feature uses it (decision on #44). Blocking links are recorded on each issue.
No due date•16/20 issues closedProactively surface flashbacks to users via email. Later, beside email: web push notifications from the installed PWA. Left out of v1.0 (UI technology grilling, 2026-10-28): on iOS, web push works only for a PWA added to the home screen, and it needs a push service, VAPID keys and per-device subscriptions, a separate project from the email path.
No due date•0/6 issues closedInstagram Story-style memory navigation. v1.0 order: after Epic 6's foundation (#345) → #348 (story player; decided 2026-11-07, [Decision](https://github.com/bitbiter-dev/anichron/issues/348#issuecomment-6704489659); children: #49 (landing and story; done: #523) → #524 (a broken image renews only a lapsed session; review finding; done: #530) → #469 tray (done: #532), #50 taps/swipes/keys (done: #531), #55 BlurHash and failures (done: #542), #53 star/like/hide (done: #539) → #51 hold and pause (done: #535), #470 videos and sound (done: #547) → #52 Live Photos (done: #555), #56 bursts (after #50, #53), #54 prefetching (done: #554); #466 E2E with media after the player; post-1.0 follow-ups #463 seen tracking, #465 earlier-days summary) → #349 (PWA; decided 2026-11-08, [Decision](https://github.com/bitbiter-dev/anichron/issues/349#issuecomment-6717136625); children: #478 service worker, can start now → #479 update notice (after #478); #481 install row, can start now; #482 edge swipe, device check first (after #122, the first screen below Settings)). Each parent issue is grilled, then /to-spec and /to-tickets. Blocking links are recorded on each issue.
No due date•15/24 issues closedKeep the database consistent with the physical state of the NAS. v1.0 order: #35 first (pulled ahead of Epic 5, done) → #254 (architecture review: classify each file once, done, #274) → the 2026-10-18 architecture-review follow-ups: **#282** (one config's missing root stops the Worker), **#283** (capture-date rule in one place; blocks #250) → #250 (content changed at a known path; scope note from the review on the issue) → the 2026-10-24 architecture-review follow-ups: **#304** (duplicate tally per crawl, Work↔Crawling cycle, IngestionShutdown) and **#303** (needs-design: a file overwritten with content stored elsewhere leaves its row stale; blocks #37) → after the core Epic 5 endpoints: #33 (spec, 2026-10-23; split into #37, #301, #34), built with #303 in **one PR** (decided 2026-10-25, design note on #303) → #320 → the 2026-10-26 architecture-review follow-ups: **#328** (explicit soft-delete intent, pure burst grouping, counts after the save) and **#327** (needs-design: one rule for a row taking new content; blocks #331) → #321 (a Live Photo's video is never a memory of its own, needs-design; can be built alongside #327) → #331 (Live Photo as one unit, needs-design; after #327 and #321) → #174 → the 2026-10-28 architecture-review follow-ups: **#354** (an ingestion item's writes planned in one place; blocks #350) and **#355** (one live-config and one partitioning rule for proxy deletions) → **#337** (one running work item per storage config, done, #356) → #47 (spec, 2026-10-28: #341, then #342 once #341, #337 and **#350** (a Live Photo's photo soft-deleted at classification takes its video) are done). → **#370** (the video a photo lets go of at pairing; ready-for-agent: decided 2026-11-08, option 2; #350 done). #36 (report-only) done, #291. The work queue (#276) comes before #174 per #276 (done: #277–#281 in #289, #293, #294, #295).
No due date•29/29 issues closedCrawl the NAS, extract metadata, compute hashes, generate all proxy types. Reopened 2026-10-30 for the findings of the first real-world test (iPhone samples). v1.0 order: **#509** (the worker image ships only what the Worker uses; 447 MB, decided 2026-11-11; done, #520) → **#382** (decode HEIC with Magick.NET, decided 2026-10-31; blocks #348), as #400 (decode seam, starts now) and #397 (Git LFS, Engineering Process) → #401 (HEIC ingests in the image) → the grilling issues, they need the maintainer: **#383** (capture date: recorded or undated; decided 2026-10-31, ADR 0015; time zone from location decided 2026-11-03, revised design note awaits approval; built as #406 → #404 → #405 → **#415** (Apple creation date, decided 2026-11-06), and #407 after #404; blocks #388) → **#384** (something to show before a video plays; blocks #348) → **#385** (503 while the database is down, Epic 5) → then the direct fixes: #386 (video proxies transcode, short-edge size) → #387 (real sizes, video duration and upright size) → **#422** (AVI stores its size and duration, MKV and WMV no longer accepted; decided 2026-11-04; high priority, blocks #396) → **#393** (one rule dates a Live Photo's video; 2026-10-31 architecture review, blocks #388) → #388 (an edit keeps the capture date) → #389 (quiet cleanup after a failed item) → #390 (logs, HTTPS redirect, image build docs) → #425 (low findings of the 2026-11-03 architecture review) → #438 (low findings of the 2026-11-06 architecture review) → #462 (low findings of the 2026-11-07 architecture review; done, #521). → **#392** (rerun the real-world test on master; blocked by #382–#390). #391 (slo-mo), #398 (HDR photos and videos), #396 (AVIF), #399 (Magick.NET replaces ImageSharp) and #402 (Undated section), #416 (place names) and #417 (recorded time disagrees with location) are post-1.0.
No due date•47/49 issues closed