2026-09-13
NewImprovementFixThe product no longer treats every vendor's word as equal, and no longer assumes a case record is finished. Every case is screened by default, what a vendor says is graded before it can become evidence and a case transfer says out loud whether it is complete. The exposure view, where several vendors' answers land, was rewritten to hold more than one of them.
- NewCase transfers report their readiness — a transfer attached to a case now carries an explicit status, pending, enriching, ready or failed, exposed on the API's case transfer type. A pinned transfer no longer looks finished while it is still being researched, and ready with no figure is a meaningful state: the price was sought and is unavailable.
- NewCited transfers are screened — pinning a transfer onto a case now screens its addresses as part of enrichment, rather than only if a later unrelated edit happened to trigger an investigation run.
- NewUnpriceable assets are recorded — when a price is sought and there is no data, that negative result is now a recorded source on the case rather than surviving only in operational logs.
- NewEvery case screened by default — a platform-supplied screening provider now screens every case, at no cost to your organisation. An integration can hold platform-supplied credentials rather than your own, and a case can hold several vendors' answers about the same address without one silently overwriting another.
- NewSeveral vendors on one address — a case holds one attribution per vendor per address, and map nodes compose per field rather than taking one vendor's row wholesale: risk is the maximum across vendors; the label and the entity type travel together so the name and the icon agree; and a sanctions designation outranks vendor priority for the label.
- NewScreen and Re-screen per vendor — the map's node sheet carries a deliberate per-vendor Screen or Re-screen action, and each disclosure is audited. Automatic screening on ingest uses the platform-supplied vendor or nobody; it never falls back to a vendor you are paying for, because that path fires on transfer volume rather than on a compliance decision. A re-run investigation reuses a prior successful screen of any age, since staleness is now the explicit Re-screen action rather than a timer.
- NewSources graded as lead or evidence — every source now carries a grade, and a lead cannot reach the agent's disposition. The platform-supplied provider's attribution is proprietary, partly crowd-sourced and not from a regulated data provider, so an MLRO must not sign a SAR that rests on it. It is graded a lead by default and withheld from the prompt the agent builds its findings from, so it cannot become a finding or be cited as the evidence behind a recommended disposition. The officer still sees it on the map and in the node sheet; the agent does not reason from it.
- NewGrades are your organisation's call — the grade is a per-organisation setting with three states: follow the catalogue default, or set lead or evidence explicitly. It is your regulator and your risk appetite, so the stance travels as a default rather than a lock, and every change to the setting is audit-logged. Rows that no vendor answered are graded evidence, because a screening gap is something the brief must still show. A reused prior screen takes the stricter of the vendor's current policy and the grade stamped on the earlier record, so re-grading never retroactively promotes data gathered under an older policy.
- NewLive address activity through the API — a new root query returns an address's on-chain transfers across eleven chains, filtered and paged, with nothing persisted. This is API only: there is no interface for it yet, and pinning a transfer onto a case remains the existing officer action, unchanged. Where the provider cannot supply an exact amount the value is returned as null rather than a rounded figure, because a compliance record must not carry a fabricated amount.
- NewDetail sheets on every row — tapping any transfer or alert row opens a detail sheet with the full copyable hash, addresses and identifiers, from and to, amounts, block time and deep links out to the explorer or the vendor. Rows are keyboard accessible.
- NewDecision history inside the decision form — a case summary's decision history is now a collapsible list, colour-coded by decision kind with each rationale rendered, and it sits inside the decision form above the decision field rather than elsewhere on the page.
- ImprovedRequests time out — server-side and client-side requests now time out instead of hanging the interface on a stalled API, and the failure is mapped to a named error that sends you to a retry rather than to re-authentication.
- ImprovedA real not-found page — an invalid case identifier renders a not-found page with the correct status instead of a bare line of text in the page. A genuine outage still degrades rather than reporting the case as missing.
- ImprovedNavigation streams a page shell — moving between pages shows a shell instead of holding the previous screen, with loading states for settings, audit, usage, chat and the case summary tab.
- ImprovedCase AI rail holds its width — the rail's loading skeleton and the loaded rail share one width, the width you saved, so the rail no longer jumps sideways when moving between cases.
- ImprovedTransfers, with direction — terminology is standardised on Transfers throughout, and every transfer row carries an explicit direction, received or sent.
- FixedExposure is no longer double counted — when two vendors screened the same address, each reported the same money in its own vocabulary and the page concatenated them, so the total, the summary bar, the flow diagram and the row count all counted the same money twice. Every exposure view now scopes to one vendor, selectable beside the Transfers and Exposure tabs.
- FixedSanctioned counterparties survive aggregation — risk was computed per entity and then discarded at the aggregate nodes, so a sanctioned counterparty ranking below the fold disappeared into a grey Other bucket. Risk now survives aggregation and a sanctions hit stays visible in the exposure view.
- FixedExposure summary bar and flow diagram — the summary bar had never rendered its colour ramp, with every cell repainting in the previous cell's colour; colours now resolve correctly. The flow diagram reads left to right, money in on the left, the subject in the middle and money out on the right.
- FixedVendor capture times in UTC — a vendor's capture time is shown in UTC alongside the chain times it sits beside, so a node sheet no longer shows one card in two time frames. A capture time answers how old that vendor's answer is, which you check against the vendor's own portal, and every vendor prints UTC.
- FixedUntriaged alerts link to their case — alerts are grouped into a case at ingest, so every untriaged row already had one, but the row action read Create case and would have minted a duplicate. It now reads View case and links to the existing case, and untriaged rows carry the case identifier chip.
- FixedBoard cards keep their shape — cards no longer collapse and clip their own title and detail in a height-constrained column.
- FixedCase AI rail reachable at every width — the rail no longer disappears with no way to bring it back on a narrow window.
- FixedWhat's new keeps loading — closing the help menu before its request finished cached an empty result, and the panel then never loaded again for the rest of the session. It now loads regardless.
- FixedReadable warnings and restored dividers — warning alert descriptions are readable in dark mode, having been near-white on a bright background, and row dividers are back on the alerts, cases and today lists.
- FixedUsage totals by unit — the usage view no longer adds token counts and page counts into one total; each unit is now totalled separately.