feat(decision): Jev ER auto-match shadow (0PT_DECISION_ER_SHADOW) #105

Merged
admin merged 2 commits from feat/decision-er-shadow into main 2026-09-23 15:06:40 +00:00
Owner

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)
## 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)
admin added 1 commit 2026-09-23 14:54:13 +00:00
feat(decision): Jev ER auto-match shadow (0PT_DECISION_ER_SHADOW)
CI (SIAX Cloud) / integration (push) Has been skipped
masterplan-lock / check (pull_request) Successful in 8s
CI (SIAX Cloud) / security (push) Successful in 24s
CI (SIAX Cloud) / security (pull_request) Successful in 40s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 1m0s
Security Scan (SIAX Cloud) / security (push) Successful in 1m34s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m30s
masterplan-lock / check (push) Successful in 10s
CI (SIAX Cloud) / quality (pull_request) Failing after 24s
CI (SIAX Cloud) / quality (push) Failing after 33s
dd4731aa3c
Shadow-eval av D0 auto-match: D0-tröskeln förblir auktoritet,
kvaliteten mäts fire-and-forget mot siax-decision (:4600,
decisionId 0pt.er.auto_match). Gate 0PT_DECISION_ER_SHADOW=1
(OFF by default). Fail-closed: gate-off/fel/ABSTAINED påverkar
aldrig det deterministiska svaret; decision-planen loggar inbyggt
(AUD0).

- packages/decision: erAutoMatchShadow + erAutoMatchShadowEnabled
- src/er/comparePair: void erAutoMatchShadow(...).catch(() => null)
- tests/p0/decision-er-shadow.test.ts: gate-off/on, POST-body,
  DECIDED/ABSTAINED, fetch-fel, fire-and-forget-wire (16 nya tester)
CODEOWNERS rules requested review from sax3l 2026-09-23 14:54:13 +00:00
admin added 1 commit 2026-09-23 15:01:10 +00:00
fix(doctor): point doctor + test at siax.repo.v3.json (legacy manifest raderades i 64e63cd) + operationalState running enligt live-evidens
CI (SIAX Cloud) / integration (push) Has been skipped
masterplan-lock / check (push) Successful in 11s
Security Scan (SIAX Cloud) / security (push) Successful in 22s
CI (SIAX Cloud) / security (pull_request) Successful in 27s
masterplan-lock / check (pull_request) Successful in 29s
CI (SIAX Cloud) / security (push) Successful in 32s
CI (SIAX Cloud) / quality (pull_request) Successful in 45s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 46s
CI (SIAX Cloud) / quality (push) Successful in 1m1s
CI (SIAX Cloud) / integration (pull_request) Successful in 1m16s
dc5c0eebf1
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.
siax-bot approved these changes 2026-09-23 15:06:38 +00:00
siax-bot left a comment
Collaborator

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 main 2026-09-23 15:06:40 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/0pt#105