refactor(engine): extract signals engine with re-export shim (#4884) - #5800
Conversation
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-14 18:10:17 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 3 non-blocking
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.
|
|
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 #5800 +/- ##
=======================================
Coverage 95.10% 95.10%
=======================================
Files 584 584
Lines 46440 46440
Branches 14849 14849
=======================================
Hits 44169 44169
Misses 1515 1515
Partials 756 756
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Summary
src/signals/engine.ts(largest, highest-fan-in file in the candidate set) into@loopover/engine.git mvrename recognition in coverage/diff tooling #4878 / Extractcontent-lane/*as one vertical slice #4880 / Extract the rest ofsignals/#4883.Change
packages/loopover-engine/src/signals/engine.ts— canonical home for the maintainer signal stack (collision detection, queue health, lane advice, preflight, bounty context, etc.).src/signals/engine.ts— thinexport *shim over the engine source path (same convention assrc/signals/check-summary.ts/ Extract the rest ofsignals/#4883).src/signals/reward-risk.ts— bindsRewardRiskEngineDepsagainst the engine package builders directly, avoiding a shim circular import after the move.packages/loopover-engine/tsconfig.json— excludessrc/signals/engine.tsfrom the published packagetscbuild (still host-bound via monorepo-relative imports; consumed through the shim, notdist/).scripts/check-engine-parity.ts+test/unit/check-engine-parity-script.test.ts— updateSHARES_MEANINGFUL_FILE_TWIN_PAIRhost path to the engine package location.packages/loopover-engine/src/reward-risk.tsandpackages/loopover-engine/src/signals/slop.tsto point at the new canonical path.Acceptance
src/signals/engine.tsCloses #4884
Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not touchsite/,CNAME, or**/lovable/**.Validation
git diff --checknpm run test:cinpm audit --audit-level=moderatenpm run typechecknpm run build --workspace @loopover/enginenpm run test:engine-paritynpm run test -- test/unit/signals.test.ts test/unit/signals-v2.test.ts test/unit/signals-coverage.test.ts test/unit/check-engine-parity-script.test.ts— 189 passinglocal-branch,contributor-issue-draft,feasibility-gate-branches,maintainer-slop-duplicate-trend,scenario-summary,reward-risk-freshness— 150 passingIf any required check was skipped, explain why:
npm run test:ci+npm audit --audit-level=moderategate locally before push (required for merge).Safety
UI Evidence
No visible UI change. This PR moves the signals engine behind a re-export shim. No screenshots required.
Notes
src/types,src/db/repositories,src/review/*, etc.) via monorepo-relative paths; it is excluded from the engine packagetscbuild so@loopover/engine's publisheddist/stays free of those host edges. A later extraction can cut those remaining host imports.git mvrename recognition in coverage/diff tooling #4878 (coverage-safe-file-moves.md): preserve consumer import paths via shim; do not combine with other refactors in this PR.content-lane/*as one vertical slice #4880 (content-lane leaves), Extract the rest ofsignals/#4883 (unlinked-issue candidates), Finish thesettings/slice extraction #4879 (settings leaves).