Skip to content

Backlogs

Source-to-issue map maintained by om-backlog. The tracker is the live authority; this file keeps the id→issue mapping and reserved ids per source.

.ai/specs/backlog-przebudowa.md

Backlog source: .ai/specs/backlog-przebudowa.md Last filed: 2026-10-16 · re-synced 2026-10-19 · extended 2026-10-19 (handoff v8) Tracker: GitHub spokospace/zapiszprzepis

Epic E01 (public, high-readability rebuild): the first run filed 18 stories across 4 waves, all with new ids and no adoptions; the 2026-10-19 re-sync below adopted ten more entries. S01, S02, S18 were filed and then closed because the work had already merged to master (PRs linked in each issue) — filed so the E01 tracker record is complete.

E01-S03 was split (2026-10-16) into S03a (#204 — global dedup + first-adder ownership + source label; already designed in 2026-10-16-global-recipe-dedup-przepis-slug.md, PR #199) and S03b (#220 — /przepis/{slug} + 301; spec authored in this run).

Re-sync 2026-10-19: no new issues filed. Ten issues opened under #201 after the first run (mostly from the design-gap audit .ai/analysis/2026-10-17-design-gap-audit.md, design authority .ai/design/przebudowa-handoff/README.md) were adopted: the Backlog source: / Backlog id: lines were added to their bodies, with an adoption comment on each. S15–S17 statuses were refreshed to closed. S04–S11, S13, S14 were closed the same day on the owner’s confirmation: their implementation PRs had merged but referenced the issues with Refs, so GitHub never closed them. Only S12 (#205) stays open, waiting on #299 / #288.

Extension 2026-10-19 (handoff v8): four new stories S24–S27 filed from the owner’s design handoff v8, imported to .ai/design/przebudowa-handoff/ (ZMIANY_nawigacja_mobile.md, ISSUE_lupa_szukaj.md, screen 4 in README) — the two-word name „Zapisz Przepis”, the mobile header with „Szukaj” instead of „Dodaj” and a text-only logo (supersedes the #328/#331 mobile-logo rule), full-screen /szukaj and voice search. No adoptions: no open or closed issue covered them.

Extension 2026-10-20 (v8 gap review against production): S28 (recipe page header per C3 — „← {lista}” in the header, the list bar and „N z M” dropped below lg; owner decision, supersedes #324 for the recipe page), S29 (type-ahead suggestions) and S30 („W serwisie” / „Na blogach” tabs) — the last two parked by the owner until S24–S28 ship.

IdIssueTitleEpicDepends onAdoptedStatus
E01#201Rebuild ZapiszPrzepis as a public, high-readability app——noopen
E01-S01#202Design system and readability tokens#201—noclosed · shipped #195
E01-S02#203Public access: pages leave (authenticated) + anon RLS#201E01-S18noclosed · shipped #193, #194
E01-S03a#204One recipe per link: global dedup + first-adder ownership#201E01-S06, E01-S18, E01-S02no✅ closed · live on prod (#223, #235, #236); collapse merge_id 4a74ec54
E01-S03b#220Public /przepis/{slug} route + 301 from /recipes#201E01-S03a, E01-S02noclosed · shipped #239 (spec #221)
E01-S12#205OAuth Facebook/Google login + first-login gender + vocative#201E01-S02noopen
E01-S18#206Identity: display name + username#201—noclosed · shipped #192
E01-S04#207Home page: guest and logged-in#201E01-S01, E01-S02noclosed · shipped #249
E01-S05#208One search with results and scope (All/Mine/Favorites)#201E01-S01, E01-S02noclosed · shipped #262
E01-S06#209Favorites: labelled heart + guest→login→save flow#201E01-S02noclosed · shipped #260
E01-S07#210Recipe page rebuild#201E01-S01, E01-S02, E01-S03a, E01-S03bnoclosed · shipped #246
E01-S08#211Cooking mode (fullscreen, Wake Lock)#201E01-S01, E01-S07noclosed · shipped #274
E01-S09#212Menu drawer: Mine + All by category#201E01-S01noclosed · shipped #250
E01-S10#213Add recipe: dedicated /dodaj page#201E01-S01, E01-S11noclosed · shipped #269
E01-S11#214Add gate: access code (screen 3c)#201E01-S02noclosed · shipped #251
E01-S13#215My profile / Settings (/settings)#201E01-S01, E01-S12, E01-S03a, E01-S03b, E01-S18noclosed · shipped #263
E01-S14#216Public profile (/u/{username})#201E01-S02, E01-S03a, E01-S03b, E01-S18noclosed · shipped #259
E01-S15#217Notifications: fullscreen + home banner#201E01-S01noclosed
E01-S16#218Category with tags + similar recipes#201E01-S01, E01-S03a, E01-S03bnoclosed
E01-S17#219Desktop layouts (A8, A9)#201E01-S01, E01-S04, E01-S05, E01-S07noclosed
E01-S07b#279Recipe page fixes per design handoff (C3)#201—yesclosed · shipped #287
E01-S12b#281Login 3a, first-login 3b and code gate 3c per design handoff#201—yesclosed · shipped #285
E01-S12-T01#299Enable S12 OAuth login (Facebook + Google): provider setup + merge #288Story #205—yesopen · manual provider setup before merging #288
E01-S13b#282Settings fixes per design handoff (2a)#201—yesclosed · shipped #284
E01-S19#278Mobile header and menu per design handoff#201—yesclosed · shipped #286
E01-S20#280Home page visuals per design handoff (C1/A1)#201—yesclosed · shipped #283
E01-S21#296Versions of the same dish (dish / variant_note)#201—yesclosed · shipped #301 (spec #297)
E01-S21-T01#298Backfill dish / variant_note for existing recipes (Claude-authored data migration)Story #296—yesclosed · applied on prod
E01-S22#289Shared list card + favorites bar (search, category, profile)#201—yesclosed · shipped #292
E01-S23#290Gendered wording in public texts (Dodała/Dodał)#201—yesclosed · shipped #291
E01-S24#339The app is called „Zapisz Przepis” everywhere#201—noopen
E01-S25#340Below lg the header shows „Zapisz Przepis” · „Szukaj” · „MENU” for everyone#201E01-S24noopen
E01-S26#341Below lg, /szukaj opens as a full-screen search with recent and popular searches#201E01-S25noopen
E01-S27#342A user can search by voice with „Powiedz” and sees what was heard#201E01-S26noopen
E01-S28#344Below lg the recipe page header leads back to the list („← Wyniki”) instead of a separate list bar#201E01-S25noopen
E01-S29#345While typing a search, a user sees up to 4 recipe suggestions and „Pokaż wszystkie wyniki”#201E01-S26noopen
E01-S30#346Search results split into „W serwisie” and „Na blogach” tabs#201E01-S26noopen

Reserved ids: E01-S01 … E01-S30, plus E01-S03a / E01-S03b (S03 split; the bare E01-S03 id is retired, not reused), E01-S07b, E01-S12b, E01-S13b, and tasks E01-S12-T01, E01-S21-T01. Next new story would be E01-S31.

Outside the tree (not E01 outcomes, deliberately not adopted): #225–#233 (listing/performance refactors), #116, #132, #188, #307.

context/foundation/code-audit-2026-10-20.md

Backlog source: context/foundation/code-audit-2026-10-20.md Last filed: 2026-10-20 Tracker: GitHub spokospace/zapiszprzepis

Epic E02 covers the 2026-10-20 code audit §4 High items 1–9 plus the security-hardening Medium items 10–11. E03 parks the remaining Medium items (14–18, 20–22) and the Low items (23–28) as checklist bullets, not issues. No existing issue was adopted. #116 got a comment because it partly overlaps S05 and S06. #231 and #232 belong to #225, and #132 is listed in E03 as a related issue. #363 waits on S09. Stories are GitHub sub-issues of #368, and the S11 tasks are sub-issues of #379.

S08 (#376) and S09 (#377) carry blocking owner decisions: the public gender wording versus the privacy policy, and copyright exposure.

IdIssueTitleEpicDepends onAdoptedStatus
E02#368Close the 2026-10-20 code audit findings——noopen
E02-S01#369No account can rewrite a shared recipe or its source link outside the extraction pipeline#368—noopen
E02-S02#370The app runs on patched framework and runtime dependencies#368—noopen
E02-S03#371A user can save a recipe whose title already exists, however many times it exists#368—noopen
E02-S04#373The installed app works offline as promised and keeps nothing private after sign-out#368E02-S02noopen
E02-S05#372The owner can restore the whole app from a backup and is alerted when a backup fails#368—noopen
E02-S06#374The owner learns about production errors and failed jobs without watching live logs#368—noopen
E02-S07#375Every pull request is checked automatically before merge#368—noopen
E02-S08#376Public pages reveal nothing about a user that the privacy policy says stays private#368—noopen · owner decision
E02-S09#377Recipe pages publish only what the owner’s copyright decision allows#368—noopen · owner decision
E02-S10#378No other site can frame the app, and browsers enforce a content security policy#368E02-S02noopen
E02-S11#379A shared link ends as a saved recipe or a clear failure, without repeated paid attempts#368E02-S03noopen
E02-S11-T01#380Split the recipe extraction into checkpointed Inngest steps with non-retriable content errors#368 (story #379)—noopen
E02-S11-T02#381Validate the model’s recipe JSON with a schema and coerce ingredients and times#368 (story #379)—noopen
E02-S11-T03#382Expire shares stuck in pending and stop ignoring share-update errors#368 (story #379)—noopen
E02-S11-T04#383Rate-limit paid recipe extraction per user in all four entry points#368 (story #379)—noopen
E03#384Later: remaining 2026-10-20 audit findings (parked)——noopen · parked