chore(ci): drop stale cloudSync entries from localStorage allowlist#2058
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis PR documents the removal of cloudSync v1 engine and reduces technical debt by updating the localStorage allowlist budget count from 10 to 6, removing the exemption for a cloudSync file from ESLint rules, and recording the mobile-side engine removal in the storage roadmap. ChangesCloudSync v1 Removal & Storage Debt Cleanup
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
PR #052b/#052c видалили cloudSync v1 engine tree, включно з
`apps/web/src/core/cloudSync/{logger,queue/offlineQueue,state/moduleData}.ts`
— allowlist-entry-и для них тепер посилаються на видалені файли.
`apps/web/src/core/cloudSync/enqueue.ts` лишається як no-op shim для
`syncedKV.ts` до PR #53 KVStore deprecate, але прямого
`localStorage.*` доступу там більше нема (`rawRemoveItem` handle
пішов разом з `clearSyncManagedData` в #052b), тож exemption теж
не потрібен.
Прибрав 4 стейлові entry-и з `eslint.config.js` (web
`no-raw-local-storage` allowlist) і опустив бюджет
`.tech-debt/localstorage-allowlist-budget.json` з 10 → 6 щоб
зберегти headroom = 0 (per existing rationale).
Решта 6 entry-ів — storage-primitive файли (`storage.ts`,
`storageManager.ts`, `storageQuota.ts`, `typedStore.ts`,
`createModuleStorage.ts`, `useLocalStorageState.ts`) — самі і
реалізують safe-LS обгортки; на burndown ніхто не планує.
Також відмітив у `docs/planning/storage-roadmap.md` що PR #052c
залендив у commit `20793adb` — таблиця Stage 7 status тепер
4/4 in flight (3 commits landed + #53/#54 outstanding).
Co-Authored-By: dmytro.s.stakhov <dmytro.s.stakhov@gmail.com>
bc80b35 to
c8ca572
Compare
⏱️ CI Pipeline Duration ReportBased on the last 50 successful runs on the default branch. Overall Pipeline
Trend (last 20 runs): Per-Job Breakdown
|
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>
Що це
Stage 7 cleanup продовження — підбираємо хвости після PR #052b (#2046, web cloudSync v1 engine drop) та PR #052c (
20793adb, mobile cloudSync v1 engine drop).Що міняю
eslint.config.js— прибираю 4 стейлові entry-и зapps/web/src/**allowlist дляsergeant-design/no-raw-local-storage:apps/web/src/core/cloudSync/logger.ts— файл видалений у #052bapps/web/src/core/cloudSync/queue/offlineQueue.ts— файл видалений у #052bapps/web/src/core/cloudSync/state/moduleData.ts— файл видалений у #052bapps/web/src/core/cloudSync/enqueue.ts— файл лишається як no-op shim дляsyncedKV.ts(PR fix(barcode): покращення надійності та точності сканера штрихкодів #53 KVStore deprecate видалить його), але прямогоlocalStorage.*доступу там більше нема (rawRemoveItemhandle пішов разом зclearSyncManagedDataу #052b), тож exemption теж не потрібен..tech-debt/localstorage-allowlist-budget.json— опускаю production budget з 10 → 6 щоб зберегти headroom = 0 (per вже існуючий rationale в файлі: "new sites must migrate an existing one to keep parity").docs/planning/storage-roadmap.md— позначаю PR #052c якLANDED(commit20793adb); таблиця Stage 7 status тепер4/4 in flight(3 commits landed + fix(barcode): покращення надійності та точності сканера штрихкодів #53/fix(food-search): фільтр релевантності + англійський fallback + нові … #54 outstanding).Після цього PR
Лишилося 6 entry-ів у
no-raw-local-storageallowlist для web — усі це storage-primitive файли (storage.ts,storageManager.ts,storageQuota.ts,typedStore.ts,createModuleStorage.ts,useLocalStorageState.ts), які саме і реалізують safe-LS обгортки. Їх на burndown ніхто не планує — вони і є цільова точка enforcement-у.Наступні кроки в Stage 7:
chore: deprecate KVStore in favor of SQLite-backed cache(включно з прибираннямenqueue.tsno-op shim).Verification
pnpm lintлокально — pass.node scripts/check-localstorage-allowlist.mjs—6/6 (headroom 0)— pass.node --test scripts/__tests__/check-localstorage-allowlist.test.mjs— 12/12 subtests pass.Per AGENTS hard rule #5 — scope
Scope
ciоскільки зачіпаєeslint.config.js+scripts/-budget + roadmap doc.Summary by cubic
Dropped four stale cloudSync entries from the
sergeant-design/no-raw-local-storageallowlist ineslint.config.js(including removing the no-openqueue.tsexemption) after the v1 engine was removed. Reduced the production allowlist budget from 10 to 6 to keep headroom at 0, and updated the storage roadmap to reflect the mobile engine removal.Written for commit bc80b35. Summary will update on new commits.
Summary by CodeRabbit