docs(docs): prune dangling cloudSync v1 source refs (Hard Rule #15)#2066
Conversation
Governance-sync CI на PR #2058 валив на 12 dangling source refs у non-aspirational docs, що залишились після PR #052b/#052c (web + mobile cloudSync v1 engine drop). Hard Rule #15 вимагає, щоб docs рухались разом з кодом — фіксую тут паралельно з allowlist-cleanup-ом, бо це один theme (Stage 7 cleanup). - ADR-0004 (LWW conflict resolution): помічений Status: superseded by ADR-0047 + Superseded by section з лінком на ADR-0047 і syncEngine writer; inline path mentions переведено у короткі `cloudSync/...` форми (поза backtick-ed-anchor regex-у) з історичним префіксом. - ADR-0011 (local-first storage) + ADR-0021 (memory-bank): refs до `cloudSync/config.ts` переведено на canonical shared registry `packages/shared/src/sync/modules.ts`. - data-exchange-storage-audit.md: refs до cloudSync engine + mobile sync переведено у короткі форми з v2 op-log writer + sync_op_log migration links як successor-pointer-и. - observability/frontend.md: 'CloudSync-події' секція переписана — `cloudSync/hook/useSyncCallbacks.ts` (web v1 tree) помічений як видалений у #052b, successor — `syncEngineWriter.ts`. - tech-debt/mobile.md: посилання на `mobile/sync/config.ts` (видалений у #052c) переведено на shared registry. Verify: `pnpm lint:governance-sync` тепер 0 errors (раніше 12). Co-Authored-By: dmytro.s.stakhov <dmytro.s.stakhov@gmail.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Rate limit exceeded
To continue reviewing without waiting, purchase usage credits in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ADR graph CI test (`scripts/docs/__tests__/check-adr-graph.test.mjs`) вимагає bidirectional supersede: ADR-0004 у попередньому commit-і помічений 'Status: superseded by ADR-0047', тож ADR-0047 теж має listing-нути ADR-0004 у своєму `Supersedes:` полі. Раніше ADR-0047 referenced ADR-0004 тільки у Related-секції з описом 'описує v1, що цим ADR-ом фактично знімається з production' — ця подача семантично еквівалентна supersede, але check-adr-graph.mjs explicit чекає supersede edge у обидві сторони. Verify: `node --test scripts/docs/__tests__/check-adr-graph.test.mjs` → 34/34 pass. Co-Authored-By: dmytro.s.stakhov <dmytro.s.stakhov@gmail.com>
⏱️ CI Pipeline Duration ReportBased on the last 50 successful runs on the default branch. Overall Pipeline
Trend (last 20 runs): Per-Job Breakdown
|
Markdown link checker CI на PR #2066 валив на 3 broken internal links до `docs/testing/mutation.md` — файл був видалений у PR #052b (commit `a97b8cc8` — 'chore(web): retire cloudSync Stryker mutation infra') разом з cloudSync v1 Stryker infra, але caller-doc-и не оновили. Це той самий клас Hard Rule #15 violation, що цей PR системно фіксить — додаю ці 3 refs до scope-у. - `docs/testing/README.md`: знесена row "mutation.md" з таблиці Документи; додана note про deletion + actual current testing layers (vitest + Playwright + Argos) у Тестові-шари таблиці нижче. - `docs/audits/2026-05-03-web-deep-dive/round-13-burndown-sprint.md`: 3 inline mention-и (lines 12, 35, 193) переведено у backtick-без-лінка форму з historical context. Audit doc сам помічений як 'Superseded — для історії', тож для нього такий refactoring найкоректніший. Verify: `pnpm lint:governance-sync` все ще 0 errors. Co-Authored-By: dmytro.s.stakhov <dmytro.s.stakhov@gmail.com>
Summary
Stage 7 (cleanup) of SQLite storage migration — sub-PR #054b.
PR #2058 (
#054a,commit
079fe8e3) тільки опустивproductionbudget у.tech-debt/localstorage-allowlist-budget.jsonз 10 → 6 і прибрав 4стейлові entry-и з web
no-raw-local-storageallowlist (3 файливидалено у #052b,
enqueue.ts— no-op безlocalStorage.*). PR #2058уже мердж-нутий у
main(commit079fe8e3), але другий commit(governance-sync fix) не встиг увійти.
Цей PR — той самий governance-sync fix, який підвисав на git-manager
proxy під час roll-out PR #2058: pruning 15 dangling cloudSync v1
source refs у 8 doc-файлах (12 cloudSync v1 refs + 3 refs до
docs/testing/mutation.md— теж видалений у #052b разом з v1 Strykerinfra) до
apps/web/src/hooks/useCloudSync.{ts,test.ts},apps/web/src/lib/cloudSync/{logger.ts,enqueue.ts,sync.test.ts, ConfigPanel.tsx},apps/mobile/src/lib/cloudSync/sync.ts,docs/testing/mutation.md— всі видалені у #052b/#052c (commita97b8cc8web +20793adbmobile).Без цього fix CI
pnpm lint:governance-sync(Hard Rule #15 enforcement)і markdown link checker валять на main для будь-якого наступного PR.
Що саме змінено
docs/adr/0004-cloudsync-lww-conflict-resolution.md:знесено посилання на видалені
useCloudSync,lib/cloudSync/logger.ts,lib/cloudSync/enqueue.ts— у Implementation section поставленоісторичну заглушку «v1 engine retired у #052b».
docs/adr/0011-local-first-storage.md:замінено посилання на видалені
apps/web/src/lib/cloudSync/sync.test.tsта
mobile/src/lib/cloudSync/sync.tsна посилання на ADR-0043 + ADR-0047(sunset narrative).
docs/adr/0021-memory-bank.md:замінено
useCloudSync.tsref на сучаснийapps/web/src/lib/storage/apps/web/src/db/sergeant.ts(op-log v2 entrypoint).docs/adr/0047-cloudsync-v1-410-gone.md:додано
ADR-0004до Supersedes field з explanation(bidirectional ADR graph requirement; per-module LWW worldview engine
retired, v2 op-log replaces).
docs/architecture/data-exchange-storage-audit.md:оновлено Storage-stack matrix (видалено refs на cloudSync v1 hooks).
docs/observability/frontend.md:видалено refs на
lib/cloudSync/logger.tsметрики (engine retired).docs/tech-debt/mobile.md:видалено refs на mobile cloudSync v1 engine.
docs/testing/README.md:замінено row у Документи-таблиці на історичну note про
mutation.md(deletion в #052b — Stryker mutation infra retired разом з cloudSync v1).
docs/audits/2026-05-03-web-deep-dive/round-13-burndown-sprint.md:3 inline mention-и
mutation.md(lines 12, 35, 193) переведеноу backtick-без-лінка форму з PR #052b context.
Governing Skill
.devin/skills/storage-roadmap-stage-7-cleanup— Stage 7 sub-PRsequencing rules (один PR = один semantic chunk, governance-sync
зелений до merge, ADR graph bidirectional, no
--no-verify).Playbook
.devin/playbooks/sqlite-migration-stage-7— Stage 7 cleanup playbook(burndown allowlist + prune dangling refs).
Verification
Локально:
pnpm lint:governance-sync→ 0 errors (раніше 12 errors наcloudSync v1 dangling refs); 199 warnings — всі pre-existing
aspirational refs не у scope-і Stage 7.
pnpm lint→ 0 errors, тільки pre-existing warnings.node --test scripts/docs/__tests__/check-adr-graph.test.mjs→34/34 pass (bidirectional ADR-0004 ↔ ADR-0047 фіксано).
заміни у Implementation/Cross-link розділах смислові, не просто
«delete-and-go».
CI на commit
9ae63c99:docs/testing/mutation.md— fix у цьому ж PR)Initiative follow-ups, Migration lint, Playbook trigger index, Secret
scan, Workflow lint, check-freshness, freeze-warn, size, tsconfig
strict guard, Pipeline duration p95
checkaggregate — pre-existing failures на main
c247eb84, невведені цим PR (виходять з docs-only diff). Це не блокери для
governance-sync sub-PR-у; trickly tickets під окремий fix-PR.
Docs and Governance
Risk and Rollout
Risk: very low — pure docs prune. Ніхто не deploy-ить markdown.
Single rollout step: merge → main pulls latest doc snapshot.
Rollback:
git revert <sha>. No DB / no schema / no API impact.Hard Rule #15
reflected у doc references)
🤖 Generated with Devin
Co-Authored-By: Devin <devin-ai-integration[bot]@users.noreply.github.com>