vyvoj-dash

Tasky

34 tasků

Kanban board tasků — filtr dle priority, labelu nebo runu.

ID Název Status Priorita Vytvořeno
147 Nastavit BUILD_ACCESS_TOKEN secret
Nastavení zablokováno: CF API 10053 binding conflict (živý worker měl BUILD_ACCESS_TOKEN jako var). Fix: nejdřív deploy (odstraní var binding), pak wrangler secret put BUILD_ACCESS_TOKEN. Zdokumentováno v access-setup.md.
Hotovo Střední 12. 5. 2026
148 Dokumentace CI/CD secrets v access-setup.md
access-setup.md: přidána tabulka vars vs secrets (BUILD_ACCESS_CLIENT_ID public var, BUILD_ACCESS_TOKEN/CF_API_TOKEN/WEBHOOK_URL secrets), pořadí setup (deploy first → secret put), per-owner CF token flow přes dočasný AUTH_ADMIN_TOKEN.
Hotovo Střední 12. 5. 2026
143 BUILD_ACCESS_CLIENT_ID a WEBHOOK_URL do wrangler.jsonc
BUILD_ACCESS_CLIENT_ID (public client_id service tokenu) přidán do vars — hodnota je v kódu, není secret. WEBHOOK_URL přidán s default prázdný string. BUILD_ACCESS_TOKEN přesunut z vars do secrets-only (wrangler vars a secret nemůžou mít stejné jméno).
Hotovo Střední 12. 5. 2026
144 Nový notifyWebhook helper
Nový helper src/common/notifyWebhook.ts: POST JSON payload na URL, swallows all errors, canceluje response body (aby nezůstala otevřená CF Workers connection). Exportován z common/index.ts.
Hotovo Střední 12. 5. 2026
145 buildRunner volá webhook po každém buildu
buildRunner.ts po recordAndAck zkontroluje env.WEBHOOK_URL — pokud nastaven, zavolá notifyWebhook s payload { repoId, buildId, status, commitSha }. Empty string je falsy, takže nenastaven = skip.
Hotovo Střední 12. 5. 2026
146 cf-typegen + typecheck
cf-typegen přegeneroval worker-configuration.d.ts s novými vars (BUILD_ACCESS_CLIENT_ID, WEBHOOK_URL). BUILD_ACCESS_TOKEN přidán do env-augment.d.ts jako ambient type. Typecheck prošel čistě.
Hotovo Střední 12. 5. 2026
142 Oprava clone auth (CF-Access extraheaders)
Git clone v containeru posílal HTTP basic auth, ale git.vyvoj.dev je za CF Access (vyžaduje Client-Id + Client-Secret headers). Přepnuto na git -c http.extraheader syntax — oba headers předány jako env var přes setEnvVars.
Hotovo Střední 12. 5. 2026
140 Research CF R2 backup a replikační možnosti
R2 nemá nativní cross-account replikaci. Zdokumentovány tři varianty: rclone (cross-account), Scheduled Worker (same-account), Super Slurper (jednorázový export).
Hotovo Střední 11. 5. 2026
141 run-013-r2-backup.md a dokumentace backup strategie
run-013-r2-backup.done.md s design doporučením a poznámkou o bucket.list() paginaci (max 1000 objektů/call) přidáno do sprint dokumentace.
Hotovo Střední 11. 5. 2026
136 Sprint 005 adresář a dokumentace
Sprint 005 adresář chyběl — vytvořen, sprint.md a run-012 soubory zapsány ve stejném formátu jako Sprint 004.
Hotovo Střední 11. 5. 2026
137 Research Cloudflare Observability a Logpush
Workers Observability auto-zachycuje HTTP metadata (IP, Ray, path, status) — 7 dní retence. Pro delší retenci doporučen Logpush → R2, zdokumentováno v sprint.md.
Hotovo Střední 11. 5. 2026
138 Audit logging do git.ts
git.ts nemělo žádný logging. Přidány tři audit eventy (git:service-advertise, git:fetch-start, git:push-start/auth-failed) s owner/repoId/IP kontextem.
Hotovo Střední 11. 5. 2026
139 Logpush doporučení v sprint dokumentaci
Logpush doporučení přidáno do sprint.md s porovnáním variant (Workers Observability vs Logpush → R2 vs externí) a konkrétními wrangler příkazy.
Hotovo Střední 11. 5. 2026
133 i18n pro builds
BuildsCard potřeboval překlady pro 8 stavů buildu a 4 sloupce tabulky. Přidáno 18 klíčů admin.builds.* + help.step6_title do dict.cs.ts.
Hotovo Střední 11. 5. 2026
134 HelpPage sekce automatický deploy
Uživatel nevěděl, že server umí auto-deploy. Přidán Step 6 'Automatický deploy workerů' v /napoveda — vysvětluje detekci, frontu, kontejner a kde najít výsledek. e2e-notes.md dokumentuje postup pro manuální ověření.
Hotovo Střední 11. 5. 2026
135 Sprint audit a access-setup docs
Sprint 004 neměl zdokumentovanou CI/CD architekturu. Přidána sekce do access-setup.md (architektura push→deploy, potřebné secrets, diagnostika, limity). Sprint audit: 5/6 DoD splněno, E2E deferred.
Hotovo Střední 11. 5. 2026
132 Builds karta v admin UI
Admin UI nemělo viditelnost buildů. Přidán BuildsCard.tsx s tabulkou buildů, expandovatelným log tailem a status badges (zelená/červená). Data přicházejí ze server-side fetchnutého getBuildHistory() RPC v adminPage.ts.
Hotovo Střední 11. 5. 2026
128 redactSecrets helper a AVA test
Secrets v build logu by prosakly do DO storage. Přidán redactSecrets.ts s regex chainem (Bearer/JWT/hex/base64/KEY=) a truncateLog pro UTF-8 safe ořez. AVA test pokrývá 10 vzorů.
Hotovo Střední 11. 5. 2026
129 BuildRecord typ a RepoDO RPCs pro záznamy buildů
RepoDO neměl kde ukládat výsledky buildů. Přidán BuildRecord typ (stav, log tail, version_id) do repoState.ts a recordBuild/getBuildHistory RPC do repoDO.ts — ring buffer 50 záznamů per repo.
Hotovo Střední 11. 5. 2026
130 Build runner consumer — skutečná implementace
handleBuildMessage byl no-op (log + ack). Nahrazen skutečným buildRunner.ts: getSandbox → setEnvVars → git clone přes credential helper → checkout → npm ci → build → wrangler deploy → recordBuild do DO. destroy() vždy v finally.
Hotovo Střední 11. 5. 2026
131 Vitest worker test pro build pipeline
Build runner potřeboval worker-context test bez module-level mockování. Řešení: sandboxFactory parametr s default getSandbox, testy injektují mock. Pokrývá happy path (success + version_id parsing) + clone fail + deploy fail.
Hotovo Střední 11. 5. 2026
125 Produkční Dockerfile
Dockerfile byl jen v docs/sprints/004-ci-cd/Dockerfile.spike (proof-of-concept), produkce ho neměla. Promotnul jsem ho do rootu jako Dockerfile, wrangler pinnutý na 4.37.1 (= devDep verze v package.json) aby kontejner a dev tooling mluvily stejným CLI. Base image cloudflare/sandbox:0.7.0 + git + ca-certificates + smoke check.
Hotovo Střední 11. 5. 2026
126 AUTH_DO cfTokens schema + RPC + admin endpoint
AUTH_DO neměl kde držet CF API tokeny per owner — build runner potřebuje předat reálný token wrangler deploy v containeru. Přidal jsem typed key cfTokens do AuthStateSchema + RPC getCfToken/setCfToken (plaintext, nehashujem — token jde do CLI, ne pro verifikaci). HTTP endpoint POST /auth/api/cf-token v auth.ts (Bearer admin gate, ne admin.ts — ten má per-owner Basic auth = nesprávný gate pro system secret). UI pro ownery je až Sprint 005.
Hotovo Střední 11. 5. 2026
127 Wrangler bindings pro Sandbox container
Wrangler.jsonc neměl Sandbox container ani DO binding — runtime tedy neuměl spustit sandbox.exec(). Přidal jsem containers[] (lite, max_instances 1 per architecture §2 R3 serial build), Sandbox DO binding, migrations v3 new_sqlite_classes [Sandbox] (Sandbox SDK vyžaduje SQLite-backed DOs). BUILD_ACCESS_TOKEN secret zůstává mimo JSON — manuálně přes wrangler secret put.
Hotovo Střední 11. 5. 2026
124 Sandbox SDK install + re-export
Sandbox SDK nebyl v projektu — bez něj nešlo importovat Sandbox class ani postavit container binding. Nainstaloval jsem @cloudflare/sandbox@0.7.0 (verze sladěná se Sandbox Docker image) a re-exportuju Sandbox class z src/index.ts; Workers runtime ji potřebuje vidět na worker entry, jinak DO binding nezaregistruje.
Hotovo Střední 11. 5. 2026
123 Vitest worker test pro enqueue logiku
Producer logika potřebovala test coverage před plug-in build runneru v Run 010. Vitest worker test seedne pack-first repo s definovanou root tree a verifikuje 3 scénáře: worker repo enqueue / no-config skip / re-push HEAD-unchanged. Vše pass.
Hotovo Střední 11. 5. 2026
119 Korekce architecture.md (AUTH_DO storage shape)
Run zadání předpokládalo že AUTH_DO je Drizzle SQLite, ve skutečnosti je to typed KV storage (asTypedStorage). Architecture.md D4 + D5 + Decision summary opraveny, cf_api_token storage přesunut do Run 010 kde ho build-runner skutečně konzumuje. Také D5 implementace upravena z DO RPC na Worker-side helper, aby se neporušilo single-hop boundary.
Hotovo Střední 11. 5. 2026
120 RepoDO markBuildHead RPC
Bez transakčního trackingu by enqueue na feature-branch push nebo re-push téhož commitu vždy zařadil duplicitní build job. Přidán RPC markBuildHead na RepoDO + lastBuildHead key ve schema, single-threaded DO storage dělá read-then-write transakci natural — žádný blockConcurrencyWhile potřeba.
Hotovo Střední 11. 5. 2026
121 Worker-side detekce wrangler config
Detekce musela běžet Worker-side (ne v DO), jinak by Worker → DO → R2 porušila single-hop pravidlo z AGENTS.md. Nová detectWorkerProject v src/maintenance/buildDetect.ts čte HEAD commit a root tree přes existing readCommit/readTree, vrací tagged result (shouldBuild + configType jsonc/toml).
Hotovo Střední 11. 5. 2026
122 Build queue producer a wire-up
Producer-side build pipeline chyběla celá: nový buildEnqueue.ts s 3-step guard chain (HEAD → markBuildHead → detect → BUILD_QUEUE.send), dispatcher rozšířen v queue.ts o build kind, wire-up v routes/git.ts po addRepoToOwner s vlastním try/catch, BUILD_QUEUE binding v wrangler.jsonc.
Hotovo Střední 11. 5. 2026
110 Dockerfile prototype pro build container
Produkční build container chybí specifikaci. Vytvořen Dockerfile.spike extending cloudflare/sandbox:0.7.0 s git + wrangler@3 + smoke step; komentář o cílové image size ~600 MB jako vstup pro Run 010 produkční Dockerfile.
Hotovo Střední 10. 5. 2026
111 Standalone spike worker s POST /spike-build endpoint
Feasibility Sandbox SDK ve workeru nebyla nikdy ověřena. Vytvořen standalone worker v docs/sprints/004-ci-cd/spike/ (4 soubory, mimo hlavní package.json) s POST /spike-build endpointem volajícím sandbox.exec. Spuštění blokované absencí Dockeru v dev env — acceptance pro Run 010.
Hotovo Střední 10. 5. 2026
108 Sandbox SDK průzkum přes context7 docs
Sandbox SDK je v cloudflare:sandbox-sdk skillu i context7 docs. Tři queries (exec+filesystem, lifecycle, wrangler containers binding) → potvrzeno: sandbox.exec vrací {stdout,stderr,exitCode,success}, getSandbox podporuje sleepAfter/keepAlive, containers binding v wrangler.jsonc je zaužívaný shape.
Hotovo Střední 10. 5. 2026
109 Architecture dokument s 5 rozhodnutími
Bez explicitních rozhodnutí by Run 009-011 psaly hypotézy. Vytvořen kanonický doc s Mermaid push→deploy flow, pěti rozhodnutími (delivery, lifecycle, timeout, secrets, detekce), 9-řádkovou failure modes tabulkou a decision summary jako vstupem pro Run 009.
Hotovo Střední 10. 5. 2026