Sanctions Desk

Sanctions Desk gathers and checks the evidence for every sanctions-screening alert and recommends an outcome; a person with the right entitlement approves it. One alert, start to finish · The problem it works on

Sanctions Desk / Receipt log

Receipt log

Meterless Nightshift routes each model call the desk makes: Nemotron 3.5 Lightning answers on the analyst's laptop and Nemotron 3 Ultra in the cloud. Every answer Nightshift serves is signed, and the desk pins the key it must be signed with.

In the 32 exported runs the desk made 2,788 model calls. 2,532 were Nightshift answers, each with a signed receipt verified against the pinned key. Another 51 came from the local Ollama backup, which has no receipt by design. The other 205 failed and returned no answer. The small studies add 879 more signed receipts, all verified.

Every model call in the 32 committed run exports: the step, the mode the desk asked Nightshift for, the Nemotron model that served it, and its signed receipt. 2,532 receipts verified when these pages were built, across 2,788 model calls; a call without a receipt is either an answer from the Ollama backup or a call that failed before any answer.

Each signature is Ed25519 over the receipt body in receipts.jsonl.gz, checked with the same code as npm run evidence:verify. The receipt key of the Nightshift runtime is pinned in config/default.json: a receipt counts only if it is signed by that key, so it shows both that the receipt was not changed and that this runtime signed it. The build stops if a receipt is signed by another key, if a receipt is missing, does not verify, or names a different model from the trace.

The committed runs
RunModel callsReceipts verifiedLightning, laptop (receipt)Ultra, cloud (receipt)Ollama backup (no receipt)Failed calls (no answer)
heldout-routed-20261023T121140Z16214232110020
routed-20261023T133311Z31126073187546
single-20261023T161731Z1581327062323
no_memory-20261023T173107Z5142113127
heldout2-sys2-routed-20261023T180732Z141811962060
heldout2-sys2b-routed-20261023T193436Z10298425604
sys2b-routed-20261023T195504Z31530510919664
heldout-sys2b-routed-20261023T214515Z136135577801
heldout2-sys2bnoscreen-routed-20261023T222222Z104102218111
heldout3-sys3-routed-20261023T231901Z6967254211
heldout3-sys3-single-20261023T234224Z3836251111
heldout4-sys4-routed-20261024T024523Z5656243200
heldout4-sys4-single-20261024T025629Z3636241200
sys5-routed-20261025T074505Z44343125517693
text70-nemotron_alone-20261025T093017Z114923854715
notext70-nemotron_alone-20261025T104135Z96772057613
sys6-routed-20261025T115200Z456440251189106

Baselines without a model (rules, name matching, escalate everything): no model calls, so no receipts — 15 runs.