Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.axiomancer.io/llms.txt

Use this file to discover all available pages before exploring further.

Week of May 10–16, 2026
OverwatchLayerLocusCodex

This week at a glance

A focused week across the platform. Overwatch shipped reverse-COLREGS ghost-vessel inference that infers an unseen counterpart when a solo vessel makes an unprovoked starboard alter, surfaced course-alteration anomalies directly in the unified alerts inbox with a matching alert-rule template, and tightened COLREGS compliance scoring with port-context-aware safe-distance thresholds. Layer rolled out one-click OAuth for Slack, Notion, and Atlassian. Locus added two new Discover filter sets — pioneer-signal status with permit velocity, and rising/falling cell direction over a 7/30/90-day window. Codex strengthened civic intelligence ingestion with an LLM extractor for council and zoning decisions and a publish-ready events view.

New features

  • Overwatch: New Ghost Vessels layer on the alerts dashboard. When a solo AIS-broadcasting vessel makes an unprovoked starboard alter with no other vessel inside 6 NM, a reverse-COLREGS solver back-solves the implied counterpart’s position, course, and speed for each candidate encounter type (head-on, crossing, overtaking) and surfaces the result on the live map as a ”?”-labeled circle, color-coded by type and shaded by confidence. A companion Ghost Inferences panel lists each inference with the three candidate types inline so analysts can see why one type won. Useful for flagging dark-fleet rendezvous and AIS-off counterparts that wouldn’t otherwise show up in pairwise encounter extraction. The cron runs hourly; results are also exposed at GET /api/v1/ghost-inferences with type, since, and minimum-confidence filters.
  • Overwatch: Course-alteration anomalies now appear in the unified alerts inbox alongside dark events, spoofing alerts, and Locus signals. Each course_alteration event renders with severity bucketed by turn magnitude (≥90° critical, ≥60° warning, otherwise info) and a description that surfaces the signed turn and current speed (e.g. “+55° turn at 12.0 kt”). A matching Course alteration template lands in the Alert Rule Builder so you can subscribe a watchlist or the full fleet to the events with one click.
  • Layer: One-click admin-consent OAuth now ships for Slack, Notion, and Atlassian. Slack moves from a workspace-subdomain + bot-token paste form to a “Sign in with Slack” button — click Connect, sign in on slack.com, and grant the requested scopes. Existing manual-paste connections keep working unchanged; new installs land a fresh OAuth access token automatically. See Slack integration for the updated flow.
  • Locus: New Pioneer Signal and Permit Velocity filters on the /discover surface. Filter cells by their pioneer-signal status (none, emerging, active, advanced) and by per-metro permit-velocity percentile over the trailing 12 months. Both columns are appended to the CSV export when the filters are active. See the Pioneer Signal cascade for what each tier means.
  • Locus: New score direction and delta window filters on /discover. Toggle between rising and falling cells over a 7-, 30-, or 90-day window and sort by the signed delta. Result rows surface a Δ badge on the active window; cells without enough history render as insufficient history rather than zero. The CSV export appends the corresponding delta_{window} and latest_snapshot_date columns when the filter is active.
  • Codex: New civic intelligence LLM extractor populates richer fields on every council decision and zoning record — extracted entities, blockers, contingency dependencies, litigation-risk score, and a hostility index — alongside the existing rule, role, and decision text. Powers downstream Council Activity surfaces in Locus and the civic intelligence dataset on Codex.
  • Codex: New publish-ready axiom_events view filters internal-only sources from the public events stream so external consumers see only the curated, attributable feed.

Updates

  • Overwatch: COLREGS compliance scoring is now port-context-aware. Each pairwise encounter is tagged from its CPA midpoint as anchorage, approach, or open_sea based on the surrounding port-zones geometry, and the safe-distance threshold scales accordingly — 0.1 NM at berths and anchorages, 0.2 NM on port approaches, 0.5 NM in open sea. Encounters are no longer flagged as non-compliant simply for routine close-quarters port traffic; the open-sea threshold continues to apply by default when no port-zone match is found. The classifier runs hourly between encounter extraction and compliance scoring, and a one-time backfill has retagged all existing encounters.
  • Overwatch: Pairwise encounter extraction is more resilient on dense corridors — pages results in 1,000-row batches and accepts up to 250,000 candidate pairs per window before the safety cap kicks in, so 7-day backfills no longer abort mid-window on busy stretches. The default extraction window is also widened to 90 minutes so encounters straddling the hour boundary are captured end-to-end.
  • Codex: Council-meeting extraction across Granicus-hosted cities now uses a JavaScript-aware crawler, so meetings that previously came up empty (rendered client-side) are fully captured. Seattle joins the council ingestion roster.
  • Codex: New PDF extraction pipeline lifts text and structured layout out of scanned and image-heavy filings — zoning packets, council agendas, and ZBA decisions — that previously broke a plain-text parser.

Fixes

  • Overwatch: The axiom_events envelope trigger no longer references a non-existent column on inserts to event tables that don’t carry a metro slug, restoring writes on event types that briefly silently failed.
  • Overwatch: Ingestion logs from the fetch-imls and osm-cultural Edge Functions now always land a terminal log row, even when the fetch errors mid-flight.
  • Codex: USPS vacancy ingestion now surfaces a clean error when the upstream archive serves an HTML error page in place of an XLSX, and recovers from corrupt-zip responses without wedging the daily run.