refactor: decompose domain/services/ into 10 cohesive subdirectories#76
Conversation
Moves 59 files from the flat 83-file domain/services/ directory into 10 subdirectories based on import graph analysis (cycle 0004): controllers/ 10 files — WarpRuntime delegation targets codec/ 8 files — wire format encoding/decoding index/ 13 files — Roaring bitmap index lifecycle state/ 6 files — checkpoint/state serialization sync/ 5 files — multi-writer sync protocol dag/ 4 files — commit DAG algorithms provenance/ 3 files — Paper III provenance tracking query/ 5 files — traversal + query engine strand/ 2 files — branch-and-compare audit/ 2 files — trust verification 25 shared kernel files remain in services/ root. No behavioral changes. All 5,150 tests pass.
All 10 CC_extract-services-* items from up-next/ are done — decomposition landed in the previous commit.
|
Important Review skippedToo many files! This PR contains 205 files, which is 55 over the limit of 150. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (205)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ 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 |
…int cleanup
H1: Fix PatchController JSDoc import('../services/JoinReducer.js')
→ import('../JoinReducer.js') (2 occurrences)
H2: Fix dag/ JSDoc import('../BitmapIndexReader.js')
→ import('../index/BitmapIndexReader.js') (5 occurrences)
M1: Update 48 stale @module tags in moved files to include subdirectory
M2: Remove completed backlog items from graveyard (graveyard is for
rejected work per METHOD.md, not completed work)
L1: Remove duplicate eslint.config.js entries (StateReaderV5,
SyncAuthService, GitGraphAdapter, ascii/path)
L2: Remove phantom WarpServeService.js eslint entry (file doesn't exist)
- query/Observer.js, query/QueryBuilder.js, query/LogicalTraversal.js, strand/StrandService.js, strand/ConflictAnalyzerService.js, sync/HttpSyncServer.js: ../WarpRuntime.js → ../../WarpRuntime.js - state/StateReaderV5.js, query/Observer.js, controllers/ComparisonController.js: ../../../index.js → ../../../../index.js - visualization/renderers/ascii/seek.js: services/StateDiff.js → services/state/StateDiff.js tsc --noEmit: 0 errors. All 5,150 tests pass.
WarpApp.observer(), Worldline.observer(), and Observer.seek() return values through the defineProperty delegation chain which ESLint cannot trace. Suppressed with justification — return types are declared in @returns JSDoc. These 5 errors were already failing type-firewall on main.
Release Preflight
If you tag this commit as |
markdownlint MD040 requires language specifiers on fenced code blocks. Added `text` language tag to all bare fences in analysis.md and witness.md.
Release Preflight
If you tag this commit as |
Summary
domain/services/directory via import graph analysisservices/root (JoinReducer, KeyCodec, PatchBuilderV2, etc.)New structure
controllers/codec/index/state/sync/dag/provenance/query/strand/audit/No behavioral changes. All 5,150 tests pass.
Test plan
npm run test:local— 313 files, 5,150 tests pass