packages/decision/src/index.ts — erAutoMatchShadow() + erAutoMatchShadowEnabled() (POST /decision/match, left=target, right=tied candidates, instructions "Which candidate is the same entity as the target?")
src/er/entity-resolution-service.ts — wire vid auto-match-punkten (score >= autoThreshold)
tests/p0/decision-er-shadow.test.ts — 8 nya tester: gate-off → ingen fetch; gate-on → rätt POST-body + DECIDED parsad; ABSTAINED → decided:false; HTTP-fel → null; fetch kastar → null; wire: hängande fetch bryter inte deterministiskt svar; gate-off wire → ingen fetch
Full suite: 1103 passed (endast pre-existing tests/repo/siax-doctor.test.ts-fel på main: siax.repo.json raderad i 63a837f men testet refererar den — orelaterat)
pnpm typecheck: grönt. pnpm lint: 0 ny funna problem (12 pre-existing errors på main, oförändrade)
## Jev-everywhere: ER auto-match shadow-eval
Beprövat shadow-mönstret (n0d#166, n0tify#103, fit0#45, z0ne#79, act0#184) på ER auto-match:
- **D0-authority förblir kod** — `auto_match_threshold`-logiken i `EntityResolutionService.comparePair` rörs inte; shadow är rent fire-and-forget (`void erAutoMatchShadow({...}).catch(() => null)`).
- **Env-gate OFF by default** — `0PT_DECISION_ER_SHADOW === "1"` krävs; gate-off → ingen fetch alls.
- **Fail-closed** — nätverksfel/timeout (AbortSignal 2s)/HTTP-fel → `null`; ABSTAINED → `decided:false`. Kastar aldrig.
- **AUD0 inbyggt** — decision-planen (server-decision-01:4600) loggar shadow-anropen; decisionId `0pt.er.auto_match`.
## Filer
- `packages/decision/src/index.ts` — `erAutoMatchShadow()` + `erAutoMatchShadowEnabled()` (POST /decision/match, left=target, right=tied candidates, instructions "Which candidate is the same entity as the target?")
- `src/er/entity-resolution-service.ts` — wire vid auto-match-punkten (score >= autoThreshold)
- `tests/p0/decision-er-shadow.test.ts` — 8 nya tester: gate-off → ingen fetch; gate-on → rätt POST-body + DECIDED parsad; ABSTAINED → decided:false; HTTP-fel → null; fetch kastar → null; wire: hängande fetch bryter inte deterministiskt svar; gate-off wire → ingen fetch
## Verifiering
- Targeted: 16/16 gröna (decision-er-shadow + entity-resolution)
- Full suite: 1103 passed (endast pre-existing `tests/repo/siax-doctor.test.ts`-fel på main: `siax.repo.json` raderad i 63a837f men testet refererar den — orelaterat)
- `pnpm typecheck`: grönt. `pnpm lint`: 0 ny funna problem (12 pre-existing errors på main, oförändrade)
Pre-existing main-breakage: FAS 36-drift-konsolideringen (64e63cd) tog bort
siax.repo.json men doctor och siax-doctor.test laest den fortfarande -> ENOENT i
quality-jobbet. Doctor laeser nu v3-manifestet (samma fackliga faltar);
operationalState korrigerad 'down' -> 'running' sa att den overensstammer med
evidence/operational-state.json (live-proba 2026-09-22). Doctor 0/55 failures.
Shadow-doktrinen verifierad: auto-match-threshold (D0) orord, env-gate off som default, fail-closed, 8 nya tester + full suite gron. Innehall ocksa pre-existing CI-fix (doctor -> v3-manifest).
Shadow-doktrinen verifierad: auto-match-threshold (D0) orord, env-gate off som default, fail-closed, 8 nya tester + full suite gron. Innehall ocksa pre-existing CI-fix (doctor -> v3-manifest).
admin
merged commit 404e3c5a6a into main2026-09-23 15:06:40 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Jev-everywhere: ER auto-match shadow-eval
Beprövat shadow-mönstret (n0d#166, n0tify#103, fit0#45, z0ne#79, act0#184) på ER auto-match:
auto_match_threshold-logiken iEntityResolutionService.comparePairrörs inte; shadow är rent fire-and-forget (void erAutoMatchShadow({...}).catch(() => null)).0PT_DECISION_ER_SHADOW === "1"krävs; gate-off → ingen fetch alls.null; ABSTAINED →decided:false. Kastar aldrig.0pt.er.auto_match.Filer
packages/decision/src/index.ts—erAutoMatchShadow()+erAutoMatchShadowEnabled()(POST /decision/match, left=target, right=tied candidates, instructions "Which candidate is the same entity as the target?")src/er/entity-resolution-service.ts— wire vid auto-match-punkten (score >= autoThreshold)tests/p0/decision-er-shadow.test.ts— 8 nya tester: gate-off → ingen fetch; gate-on → rätt POST-body + DECIDED parsad; ABSTAINED → decided:false; HTTP-fel → null; fetch kastar → null; wire: hängande fetch bryter inte deterministiskt svar; gate-off wire → ingen fetchVerifiering
tests/repo/siax-doctor.test.ts-fel på main:siax.repo.jsonraderad i63a837fmen testet refererar den — orelaterat)pnpm typecheck: grönt.pnpm lint: 0 ny funna problem (12 pre-existing errors på main, oförändrade)64e63cd) + operationalState running enligt live-evidensShadow-doktrinen verifierad: auto-match-threshold (D0) orord, env-gate off som default, fail-closed, 8 nya tester + full suite gron. Innehall ocksa pre-existing CI-fix (doctor -> v3-manifest).