feat(engine): extract content-lane's pure leaf modules to loopover-engine - #5775
Conversation
…gine Move the two dependency-free leaf modules of the content-lane subtree — content-repo-spec.ts (the curated-list registry spec) and flag.ts (the content-lane enablement flag) — into packages/loopover-engine, leaving thin re-export shims at their old src/ paths so every consumer and test resolves unchanged. Follows the established engine-extraction convention exactly (see src/signals/check-summary.ts): the shim re-exports the engine implementation via a relative source path, not the published package. These two files are pure (no imports, no Env/D1 dependency) and already at 100% coverage, so the move is coverage-safe. This validates the shim pattern on the cleanest boundary before extracting the interdependent and Env-bound files. Closes JSONbored#4880
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5775 +/- ##
=======================================
Coverage 95.07% 95.07%
=======================================
Files 582 582
Lines 46216 46216
Branches 14820 14820
=======================================
Hits 43940 43940
Misses 1516 1516
Partials 760 760
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-14 14:23:14 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 5 non-blocking
Linked issue satisfactionPartially addressed Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Summary
Extracts the two dependency-free leaf modules of the
content-lanesubtree into@loopover/engine, validating the shim pattern on the cleanest possible boundary (the pilot the issue explicitly calls for) before the interdependent and Env-bound files:content-repo-spec.ts— the curated-list content-repository spec (a pure interface + a defaultconst, no imports).flag.ts— the content-lane enablement flag (a pure interface + a pure function, no imports).Each is moved into
packages/loopover-engine/src/review/content-lane/, with a thin re-export shim left at its oldsrc/path, following the established convention exactly (seesrc/signals/check-summary.ts, PR #4256): the shim doesexport * from "<relative source path into the engine tree>", so every consumer and test keeps its existing import unchanged.Why this is scoped to the two leaf files
Investigating the subtree surfaced hard constraints that make a single "move the entire subtree" PR neither clean nor safe:
security-scan.ts(depends onsrc/review/secret-patterns.ts, not yet in the engine), andspec-resolver.ts/content-lane-wire.ts(WorkerEnv/ D1 / GitHub I/O — correctly the host adapter the issue says should "remain insrc/").safe-url.tsis coupled to a guarded path: converting it to a shim would break the hard-codedSAFE_URL_TWIN_PAIRmarker check inscripts/check-engine-parity.ts— andscripts/**is a guardrail path, which would hold the PR for manual review.Env/D1), already at 100% coverage, and byte-identicalgit mvs, so the move is coverage-safe and consumer-transparent — the ideal boundary to validate the shim mechanics first. Follow-ups can extract the interdependent files (scope/duplicates/source-evidence/registry-logic/netuid/orchestrator) and handlesafe-url's parity bookkeeping separately.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.content-lane/*as one vertical slice #4880.Validation
git diff --checknpm run typecheck(root +@loopover/enginebuild both clean)npm run test:coverage— the two moved engine files and both shims are at 100% line + branch coverage (verified via the v8 JSON report); all 253 content-lane unit tests pass unchanged, resolving through the shims (no test import changed).npm run command-reference:check(unaffected).22 hand-duplicated pairs agree); these two leaf files are not twin pairs, so no parity bookkeeping changes.If any required check was skipped, explain why:
actionlint,test:workers,ui:*,npm auditwere not run — this change adds no workflow, worker, UI, or dependency surface. The fullnpm run test:ciruns them on CI.Safety
Auth/CORS/session, API/OpenAPI/MCP, and UI safety boxes are not applicable — this PR changes none of those surfaces.