Found during a 2026-07-08 miner-roadmap audit: packages/gittensory-engine/src/duplicate-winner.ts and packages/gittensory-engine/src/signals/duplicate-winner.ts are byte-identical copies of the same file, living inside the same package (not a src/-vs-engine extraction pair — both copies are already inside gittensory-engine).
The package's index.ts barrel exports from the top-level copy, but advisory/gate-advisory.ts (which predicted-gate.ts's whole verdict chain runs through) imports the signals/ copy instead. Low-risk today only because the two files happen to still be identical — exactly the kind of accidental fork that the engine-parity audit (see the sibling issue on src/ vs packages/gittensory-engine/src/ divergence) flags as a real risk pattern in this codebase.
Deliverables
References
packages/gittensory-engine/src/duplicate-winner.ts
packages/gittensory-engine/src/signals/duplicate-winner.ts
packages/gittensory-engine/src/advisory/gate-advisory.ts:13 (the importer using the wrong copy)
packages/gittensory-engine/src/index.ts (the barrel export using the other copy)
Found during a 2026-07-08 miner-roadmap audit:
packages/gittensory-engine/src/duplicate-winner.tsandpackages/gittensory-engine/src/signals/duplicate-winner.tsare byte-identical copies of the same file, living inside the same package (not a src/-vs-engine extraction pair — both copies are already insidegittensory-engine).The package's
index.tsbarrel exports from the top-level copy, butadvisory/gate-advisory.ts(whichpredicted-gate.ts's whole verdict chain runs through) imports thesignals/copy instead. Low-risk today only because the two files happen to still be identical — exactly the kind of accidental fork that the engine-parity audit (see the sibling issue onsrc/vspackages/gittensory-engine/src/divergence) flags as a real risk pattern in this codebase.Deliverables
packages/gittensory-engine/src/signals/duplicate-winner.tsa thinexport * from "../duplicate-winner.js"re-export, matching this package's existing shim patternadvisory/gate-advisory.tsand any other importer of thesignals/path still resolve correctlyReferences
packages/gittensory-engine/src/duplicate-winner.tspackages/gittensory-engine/src/signals/duplicate-winner.tspackages/gittensory-engine/src/advisory/gate-advisory.ts:13(the importer using the wrong copy)packages/gittensory-engine/src/index.ts(the barrel export using the other copy)