← NEXUS Portfolio
Release Notes · Beta v2.1

What changed since v1.0.

The console first shipped as Beta v1.0. This page is the changelog for the work since v2.1, Beta v2.1 and Beta v2.0, newest first — each addition with the engineering and architectural reasoning behind it. For the full delivery record and the rollout gate, see the stage catalogue.

Updated 12 October 2026 · Beta v2.1 · CI-gated, 0 failures

Since v2.1 — 30 September to 12 October 2026

One console change and the platform work behind it, each through the same Spec → Plan → Subagent build → Whole-branch review cycle. The theme is the whole chain at once: every piece proven on its own now runs together as one governed, deterministic batch over a bank-scale synthetic estate of 9,889 entities. The batch runs internally; its public effect is the sanctions lane on the live console. The suite now stands at 5,554 tests, 0 failed, measured cold in CI.

✦
Console — the sanctions lane on queue rowsA sanctions-designated hit now routes to a sanctions lane that is visible but not worked in the transaction-monitoring queue, and the console's queue rows carry its badge. The lane is a tag, not a re-ranking, so every priority rank is unchanged. On the batch estate the effect is direct: the 85 analyst allocations moved from ranks 1–85, all designated parties, to ranks 241–325, all planted positives — analysts now reach the analytics-flagged work. The lane holds 240 open items, all breaching by day 3 by design. Open the console →
Built
✦
One governed batch, feeds to decisionsA batch runner takes a synthetic estate of 9,889 entities from daily feeds through ingestion, detection, manufacture and fusion to operations decisions, as phased, resumable work on a batch ledger that halts or continues by rule. The first full run: 7 of 7 phases, 1,500 products and 150 master cases — and a replay whose fingerprints equal the run's, so the whole chain is deterministic, not just each page.
Built
✦
Daily feeds and their ingestionA simulator writes a bank-shaped landing zone — 4 source systems, 11 feeds, 31 business days, with faults scheduled in — and states each day's expected outcome independently. An ingestion engine then applies file and row controls, quarantine, history and month-end reconciliation on a hash-chained ledger. All 31 ingested days equal the expected outcomes: the machinery a bank's data would arrive through, proven on a simulated landing zone.
Built
✦
The alert table at scaleOne alert-table build over 9,889 entities fell from 30.6 minutes to 6.1 seconds, with output byte-identical to the slow build — faster without a single answer changing.
Built
✦
Simulated decisions at volumeGoverned simulated analysts, an officer and a reviewer now act inside the batch, so the SAR lifecycle and QA oversight run under real volume rather than a handful of demonstration cases: 85 decisions, 85 SARs referred, 20 approved and submitted.
Built

Since v2.1 — 26 to 29 September 2026

Four additions that complete the operations layer, each through the same Spec → Plan → Subagent build → Whole-branch review cycle. The theme is one record: every case action, SAR step, SLA breach and QA review is an event on a single tamper-evident log, and every table and dashboard is derived from it. The supervisor surfaces are internal; their effect is live on the ops dashboard.

✦
The case event log — one system of recordEvery case-lifecycle fact is a row on an append-only, SHA-256-chained event log; the task list and its audit trail are derived from it, never edited by hand. Every write names its time explicitly — there is no hidden clock — and a broken chain, an illegal transition or time running backwards is refused without changing a byte. The chain makes tampering detectable, and a separate parity check covers what a chain cannot see.
Built
✦
SAR lifecycle managerA case's SAR decision now means referred to the nominated officer, not filed. The SAR then moves through its regime's stages — drafted, officer review, approved, submitted and acknowledged, or declined by the officer — with each regime's rules and deadlines held in governed configuration (UK POCA seeded) and a workflow engine that names no stage itself. Deadlines read met, breached, open or overdue; a decline or an acknowledgement cannot be recorded without its note, because the note is the record. The dashboard counts SARs referred for the same reason.
Built
✦
SLA orchestrationA sweep records every SLA breach as an event and routes it to the supervisor — the case itself is untouched; the supervisor acts. It then allocates waiting work in priority order to the least-loaded analyst under a cap of five, and what does not fit stays visibly unassigned. Thresholds, roster and allocation rule live in one governed policy file. The demonstration sweep recorded 42 breaches and 20 allocations, and left 16 low-priority cases as an honest capacity shortfall.
Built
✦
QA oversightA second line that reviews decisions after they are made — clears, SAR referrals, escalations and an officer's SAR declines. Mandatory classes (a decision that disagrees with the governed rule, a declined SAR, an escalation without an outcome) are always selected; the rest are sampled by a reproducible seeded draw, once per decision. A reviewer who acted on the case is refused at the point of writing, not flagged afterwards. A finding goes to the supervisor or the nominated officer without reopening the case. The dashboard's QA panel is now built from these reviews.
Built

Beta v2.1 — 17 August to 24 September 2026

Twelve additions since v2.0, each through the same Spec → Plan → Subagent build → Whole-branch review cycle. The theme is reach and trust: the copilot and the investigations reach the public site, and every published artefact became something a clean clone can reproduce and a gate can check. Items marked In build are live work, reported honestly.

✦
Copilot slice 2 — the EDD memoEnhanced-due-diligence memos assembled from KYC, ownership, screening and network exposure, section by section. Screening names what it rejected as well as what it matched, and a closing section states what is not known — so a gap reads as a gap, not as a clean result. Deterministic, with a pin that proves it. See the memos →
Built
✦
Copilot slice 3 — disposition supportA recommended, justified decision — close, escalate or file — against the governed case workflow. The rule was settled against the real 48 alerts rather than a fixture, and uses the platform's governed types, so the recommendation and the workflow can never disagree about what a state means. See the dispositions →
Built
✦
CI gate and a protected mainThe full suite runs cold on every push and gates main, which is protected server-side on every private repository — the rules bind the owner too. The baseline reached zero failures: a long-carried "29 failing" turned out to be two root causes, fixed at source.
Built
✦
The estate, committed wholeEvery product re-manufactured and each run committed in full — packet, graph, evidence and logs together — so any run the public site names can be rebuilt from a clean clone. A guard now refuses a run committed only in part.
Built
✦
Queue ↔ casework convergenceThe task queue and the manufactured case files became one workflow: each task shows its casework in four explicit states, and an escalated entity with no case gets a drafted manifest instead of silence.
Built
✦
Honest pipeline statusA step now reports whether its handler ran and what it concluded. A run whose own gate refused it reports BLOCKED and exits non-zero — where it used to say SUCCESS — while every evidence artefact is still kept.
Built
✦
Capital markets — the first productCM003 spoofing / layering manufactures as a governed product, delegating to the capital-markets toolkit's own analytic and naming it in its own words. Instruments are typed as instruments: a bond is not its issuer.
Built
✦
Foundation products and 57/57 doctrineThe five foundation capabilities — entity resolution, relationship discovery, beneficial ownership, network risk, investigation workflow — manufacture as FND001–FND005, and the ten network typologies became PAT001–PAT010, ending one prefix meaning two things. Doctrine is now authored for all 57 typologies.
Built
✦
Five investigations, published and governedFive fused investigation cases are public, each linking to the others through a strip rendered from the governed set, so adding a case updates every case. Each public surface now has a publisher and a gate that fails when the site falls behind its source, and the publisher refuses any page that references an internal surface.
Built
✦
Ordered-path graphsA third graph family: ownership chains and cycles are drawn as a walk in order, closed only when the walk actually closes — rather than as an unordered star. Guardrails now see three topology families and three renderers.
Built
✦
Geometry guards on what the site drawsA review that deliberately broke the shipping renderers found checks that stayed green over real defects — edges drawn backwards, a renderer with no layout guard at all. Each gap now has a guard that asserts the geometry itself, not the renderer's report of it, and each was seen to fail.
Built

Beta v2.0 — 15 to 16 August 2026

The console first shipped as Beta v1.0. This wave — built across 15–16 August — is Beta v2.0: twelve engineering and architectural additions, each its own governed sub-project through the same Spec → Plan → Subagent build → Whole-branch review cycle. All twelve are merged; the last two landed on 16–17 August.

✦
Typology pattern-walks — Shadow Fleet & SpoofingGrounded SAN002 (shadow fleet) and CM003 (spoofing/layering) walks join the Circular-Funds-Flow U-turn — each a real data-driven pattern over the two-tier graph, dispatched by scored typology with no typology branch in the renderer (guardrail 3 held).
Built
✦
Estate entity integrity & governed screeningCodename→canonical rename across every table; a governed SCREENING_MATCH_MIN = 85 threshold applied to all sanctions/PEP derivations; a PEP director resolved onto a customer; and a new pep_connection score that ranks any ownership-network link to a PEP into the alert table.
Built
✦
Knowledge Centre — typology doctrine hubAll 50 typologies across the five crime families curated from their toolkit descriptors into a governed doctrine library + hub + per-typology pages — provenance-cited to the source file, coverage-gated, no fabrication.
Built
✦
Doctrine seam — “Typology Library” in the workspaceThe workspace typology deep-links to its authored doctrine page via a gold Typology Library button. The typology→page resolution is computed server-side and gated on authored coverage — the renderer holds no typology branch, only “link if a URL was baked in.”
Built
✦
Operations layer — supervisor dashboard + navA supervisor read-model over the same case/task spine (queue funnel, band/state, analyst workload, honest SLA, QA sample) as a second surface, reached from an Operations button in the console header. Analyst’s desk and manager’s desk, one substrate.
Built
✦
MI Explorer — the analyst’s pivot tabA Tableau-style second tab on the ops dashboard: aging · jurisdiction · typology overlay views behind one shared filter bar + a CSV extract, over an enriched per-task row-model with a real seeded aging history so the SLA and age profiles are live.
Built
◆
Vessel Lens — the vessel as a first-class nodeThe vessel becomes a graph node (namespaced from the vessels table) with OWNS_VESSEL / SHIPPED_ON / STS_WITH edges and a fourth maritime lens. A shared hull is now a findable path between two otherwise-unconnected customers, and a sanctioned vessel propagates risk along the edge — structural fusion, not a shipping side-console.
Built
◆
Maritime data integrity & TBML011The shipping-data upgrade: deterministic vessel identity-integrity checks (the “zombie-ship” IMO-reuse problem — caught before a clean sanctions screen is trusted), a unit-price fix that makes over-invoicing computable (and retro-strengthens TBML001), and a new typology TBML011 — freight-cost inflation (value displaced into freight/insurance + price-cap circumvention). Pure arithmetic over pillar tables — no AIS feed, no model, no new dependency.
Built
✦
Two-score triage — governed weights, dedupe, and calibration MIThe macro triage score got a breakdown card that shows every contributing signal on the front screen, its weights moved into a governed macro_scoring_config, and a real defect fixed: jurisdiction deviation was double-counting the same corridor. Behind it, a calibration layer (signal_calibration + model_performance_mi) reports firing rate, escalation funnel, false-positive rate and SAR conversion per config version — honestly volume-gated, so it reports no rate on a thin sample. The decision record (ADR-002) states plainly that the 100 cap is a triage flattener, not a limit, and that the weights are uncalibrated v1 pending run history.
Built
✦
AI Copilot — opt-in LLM SAR refinementThe deterministic SAR drafter gained a refinement seam: an opt-in LLM pass that improves narrative prose while the facts stay locked to the provenance-linked draft. Fail-safe by construction — no API key means it is a no-op and the deterministic draft ships unchanged. The governed artefact is never the model's output; the model only rewrites language it is not allowed to invent.
Built
◆
Vessel detail panel — the hull's whole storyClicking a vessel now answers "what physical asset carried this, and who else used it?" in one surface: every shipper on the hull (each row click-navigable, so a shared hull becomes an investigation step), the identity timeline with a contested-vs-churn integrity flag, and dark activity — AIS gaps and ship-to-ship transfers, with a Dark STS chip when a hull goes dark and transfers at the same location. Shown, deliberately not scored: concealment is surfaced as evidence before it is priced into a number.
Built
◆
Brand ignition & console identityThe demo now opens through a governed ignition sequence — the NEXUS shield charging, flashing and releasing a shockwave before the console resolves — and the console header carries the approved metallic shield-and-wordmark lockup as an embedded asset rather than ad-hoc inline markup. One brand definition, reused, not redrawn per surface.
Built
NEXUS · Beta v2.1 & v2.0 release notes · updated 2026-10-12 — stage catalogue → · roadmap →