Skip to content

docs(docs): prune dangling cloudSync v1 source refs (Hard Rule #15)#2066

Merged
Skords-01 merged 2 commits into
mainfrom
devin/1778083920-storage-pr054b-prune-cloudsync-v1-doc-refs
May 6, 2026
Merged

docs(docs): prune dangling cloudSync v1 source refs (Hard Rule #15)#2066
Skords-01 merged 2 commits into
mainfrom
devin/1778083920-storage-pr054b-prune-cloudsync-v1-doc-refs

Conversation

@Skords-01
Copy link
Copy Markdown
Owner

@Skords-01 Skords-01 commented May 6, 2026

Summary

Stage 7 (cleanup) of SQLite storage migration — sub-PR #054b.

PR #2058 (#054a,
commit 079fe8e3) тільки опустив production budget у
.tech-debt/localstorage-allowlist-budget.json з 10 → 6 і прибрав 4
стейлові entry-и з web no-raw-local-storage allowlist (3 файли
видалено у #052b, enqueue.ts — no-op без localStorage.*). PR #2058
уже мердж-нутий у main (commit 079fe8e3), але другий 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 Stryker
infra) до 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 (commit
a97b8cc8 web + 20793adb mobile).

Без цього 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.ts ref на сучасний 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-PR
sequencing 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-sync0 errors (раніше 12 errors на
    cloudSync v1 dangling refs); 199 warnings — всі pre-existing
    aspirational refs не у scope-і Stage 7.
  • pnpm lint0 errors, тільки pre-existing warnings.
  • node --test scripts/docs/__tests__/check-adr-graph.test.mjs
    34/34 pass (bidirectional ADR-0004 ↔ ADR-0047 фіксано).
  • Markdown structure manually verified: всі 15 dangling refs прибрано,
    заміни у Implementation/Cross-link розділах смислові, не просто
    «delete-and-go».

CI на commit 9ae63c99:

  • ✅ ADR graph (statuses, supersede, README index)
  • ✅ Docs-automation scripts unit tests
  • ✅ PR body validator
  • ✅ Markdown link checker (раніше валив на 3 broken refs до
    docs/testing/mutation.md — fix у цьому ж PR)
  • ✅ CodeQL, Commit messages, Deploy-config, Hard-rules matrix,
    Initiative follow-ups, Migration lint, Playbook trigger index, Secret
    scan, Workflow lint, check-freshness, freeze-warn, size, tsconfig
    strict guard, Pipeline duration p95
  • ❌ Critical-flow E2E (Playwright), Test coverage (vitest), check
    aggregate — 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

  • Docs synchronized with source code state (PR #052b/#052c removals
    reflected у doc references)
  • Governance-sync CI зелений (0 errors, raw lint output: warnings only)
  • No new dangling refs introduced (verified locally + via CI)

🤖 Generated with Devin

Co-Authored-By: Devin <devin-ai-integration[bot]@users.noreply.github.com>

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>
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sergeant Ready Ready Preview, Comment May 6, 2026 4:27pm

Request Review

@github-actions github-actions Bot added the size/S label May 6, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

Warning

Rate limit exceeded

@Skords-01 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 20 minutes and 3 seconds before requesting another review.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e4e48e27-688f-4012-a377-b91df9eae8ba

📥 Commits

Reviewing files that changed from the base of the PR and between c247eb8 and ba755cd.

📒 Files selected for processing (7)
  • docs/adr/0004-cloudsync-lww-conflict-resolution.md
  • docs/adr/0011-local-first-storage.md
  • docs/adr/0021-memory-bank.md
  • docs/adr/0047-cloudsync-v1-410-gone.md
  • docs/architecture/data-exchange-storage-audit.md
  • docs/observability/frontend.md
  • docs/tech-debt/mobile.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch devin/1778083920-storage-pr054b-prune-cloudsync-v1-doc-refs

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

⏱️ CI Pipeline Duration Report

Based on the last 50 successful runs on the default branch.

Overall Pipeline

Metric Value
p50 6m 26s
p95 7m 55s
p99 9m 3s
Current run 14m 54s
vs p95 +88.2%

Trend (last 20 runs): ▃▃▁▂▃▃▃▂▃▃▂▂▄▃▃▆▅▄█▆

Per-Job Breakdown

Job p50 p95 p99 Current vs p95
Accessibility (axe-core) 2m 5s 2m 21s 2m 23s 0s -100.0%
Commit messages (commitlint) 0s 0s 0s 44s N/A
Critical-flow E2E (Playwright) 1m 36s 1m 44s 1m 44s 2m 7s +22.1%
Migration lint (AGENTS rule 0s 0s 0s 10s N/A
Pipeline duration (p95 trend) 26s 27s 27s
Secret scan (gitleaks) 8s 11s 11s 14s +27.3%
Smoke E2E (Playwright) 1m 26s 1m 40s 1m 40s
Test coverage (vitest) 2m 4s 2m 33s 2m 33s 9m 42s +280.4%
Workflow lint (actionlint) 7s 7s 7s 5s -28.6%
check 4m 12s 4m 54s 5m 6s 12m 29s +154.8%
tsconfig strict guard (PR-1.A) 5s 14s 14s 8s -42.9%

⚠️ Warning: Current run (14m 54s) exceeds p95 + 20% threshold (9m 30s). Consider reviewing slow jobs.

@Skords-01 Skords-01 merged commit 997ad6e into main May 6, 2026
32 of 50 checks passed
@Skords-01 Skords-01 deleted the devin/1778083920-storage-pr054b-prune-cloudsync-v1-doc-refs branch May 6, 2026 16:32
Skords-01 added a commit that referenced this pull request May 6, 2026
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant