Skip to main content
Pharos

Changelog: April 2026

Latest releases and all monthly archives
  1. Week #17

    423 commits

    Harbor and canal metaphors redraw /chains and /liquidity, public /api/* goes keyed-only, and tracked coverage hits 215.

    • Visualization metaphorsdesign

      /chains becomes a nautical harbor chart with ships scaled by supply, /liquidity turns into a canal with mitre lock gates and chain basins, and the PSI hero gets a lighthouse mini-scene.

    • Alt-pegs world atlasdesign

      Alt-pegs hub gains a docked world map with country-fill colors driven by peg taxonomy, a celestial band for Gold/Silver/CPI, fullscreen inspection mode, and a non-USD market structure route.

    • Coverage and variants frameworkcoverage

      Tracked coverage grows from 191 to 215 across a flat RWA issuer batch, risk-wrapper assets, and a redemption-modeling pass; a new variants framework links wrappers to parents with inherited blacklist status.

    • /api/* keyed-onlysecurity

      Public /api/* lane is removed in favor of X-API-Key on every request; /_site-data/* is gated on Origin/Referer headers, with a tested 401 floor and a narrow exempt carve-out for feedback/og/health.

    • Pipeline correctness hardeninginfra

      Reserve/chart/yield-rankings cache validators, freshness sentinels, supply-history validation, malformed payload handling, abort-signal propagation, cron lane isolation, and onchain-only detail fallback.

    • Tier 1 refactor waveinfra

      Repo-wide dedup: shared isRecord/CircuitRecord/admin-gates, GradeBadge and DetailSectionTitle primitives, error boundaries, dead layouts, retired legacy stablecoin routes, and frontend module splits.

    Show commits
    • 458e143d fix(twitter): cap digest tweet at one cashtag
    • 66dbb08c docs(lighthouse): handoff for the next agent picking up the work
    • 0c75750c feat(lighthouse): wire phase 6 layers + relocate anchor; rebaseline
    • e21e46ca feat(lighthouse): boat aura wiring + resilience-tier structural variation
    • ce3ef672 feat(lighthouse): denser starfield + moonpath glitter
    • a1253933 feat(lighthouse): atmosphere — vignette, beam-on-water, horizon silhouettes
    • e391ab7c feat(lighthouse): fix off-screen harbours + 2x lighthouse + 2x boats
    • 92f85b35 docs(lighthouse): visual review + paletteRgba helper
    • e5c0f0cf chore(lighthouse): merge-gate fixups (CSR bailout, hotspot ratchet, doc paths)
    • 49cdf235 test(lighthouse): playwright visual regression under reduced-motion
    • 5b9b7f03 docs(lighthouse): retrospective + architecture deltas
    • ba4f065e feat(lighthouse): wire canvas 2d harbor scene end-to-end
    • 4d3ea245 feat(lighthouse): canvas 2d scene components (sky, water, lamps, sprites, layers)
    • f5cf3590 feat(lighthouse): replace legacy routes with new shell + canvas placeholder
    • 93341a87 feat(lighthouse): unified sr-only a11y ledger
    • bb84f745 chore(lighthouse): lint guard for hex literals outside palette
    • 1dbc07d8 fix(lighthouse): resolve type imports + use registry for boat-style flags
    • 345e8f36 feat(lighthouse): SceneData adapter (hooks-agnostic)
    • ea586829 docs(lighthouse): fix plan inconsistencies discovered during phase 1
    • be4977d8 feat(lighthouse): anchor 25-color palette + tint helpers

    … and 403 more

  2. Week #16

    680 commits

    Pricing pipeline v5.0 lands, 40+ new risk-coverage entries across backstops/blacklist/reserves, and /funding launches.

    • Every fetcher returns FetcherOutcome for breaker discipline, Curve/Chainlink staleness guards tighten, upstream-observed timestamps propagate from Bitstamp/Coinbase/Curve, and no-candidate circuit recovery generalizes.

    • Cross-asset contagion amplifier (clamped [1.0, 1.2]) joins the DEWS blend, a backtest harness validates detection rate + lead time on curated anchors, and /api/stress-signals surfaces amplifier breakdown.

    • LayerZero/CCIP/CCTP bridges tag as bridge_transfer, atomic roundtrips require 0.5% tolerance, USDC and EURC get CCTP detection, and the Bank Run Gauge reweights by canonical-chain mcap rather than global supply.

    • Adds the flat/RWA issuer batch (USDon, USDsui, BRLV, USDGLO, AUDM, Alloy aUSDT) on top of the prior route expansion, capacity clamping to supply, fee-score breakpoints, and documented fail-closed fallbacks for falcon/frxusd.

    • 14+ new coins (FIDD, FRXUSD, XUSD, JPYC, USDA/USAT/AEUR, EURCV, NUSD, TUSD, USDP, USDQ, AID, TGBP). Tron ledger mirror, EURC mirror-zero suppression fix, and a new per-coin detail block with stats, chart, and event feed.

    • 10+ new reserve adapters (lisusd-lista, ebusd, mim-abracadabra, usdh, usdat-saturn, buck, buidl-chainlink-nav); Liquidity v5.4 pool dedupe + direct-CEX orderbook depth; cron retuned (reserves 1h→4h, blacklist 1h→6h).

    • Digest on Opus 4.7 + Telegram /statusfeature

      Daily digest streams from Opus 4.7 with week-over-week deltas, Momentum Candidates, forward-look cue, and opening/tone guards. Telegram adds /status <ticker>, snooze inline keyboard, and worsening-delta depeg triggers.

    • Detail-page UX remediationdesign

      Detail hero consolidated with HeroSignalsRail (Safety/Peg/Liquidity/DEWS), full scrollspy nav coverage, shared Breadcrumb + expanded command palette, and home snapshot gets methodology tooltips + always-visible PSI deltas.

    Show commits
    • f1fe6aed docs: reconcile loop 3 audit findings
    • a979e0ae docs: reconcile loop 2 audit findings
    • f6a9f74f docs: reconcile loop 1 audit findings
    • 6824fa3a docs: resolve final verification drift
    • 2d277420 docs: deepen documentation source alignment
    • 5ded1e10 docs: reconcile project documentation with code
    • 42a2a8f1 fix(status): align freshness budgets with cron cadence
    • 7eafc7d9 fix(reserves): include pendingUsdc in OpenEden component-total validation
    • 059aedeb docs: audit and correct project documentation (#84)
    • 2f64fe58 docs(ops): document WAF rate-limiting rule for api.pharos.watch (#83)
    • 03c41ad8 docs: run second verification pass
    • d8fd0bc3 chore(worker): bump compatibility_date to 2026-04-18 (#82)
    • b6ec63b4 docs: keep methodology copy within hotspot budget
    • 601d5384 /agents/ cleanup
    • 9367d179 docs: update route contracts and agent map
    • 680a1fbf docs: refresh methodology and data model docs
    • 2614b046 docs: align api and operations references
    • 90381e15 review-followup(detail-blacklist): render empty-chart hint, fix skeleton height, expand test coverage
    • ec4db767 docs: document detail-page blacklist block and new summary fields
    • 62be8b38 feat(detail): add per-coin blacklist activity block with stats, chart, and feed

    … and 660 more

  3. Week #15

    268 commits

    Infrastructure axis launches and the PSI hero gains an arc gauge with an annotated crisis timeline.

    • Infrastructure axisfeature

      New filter dimension lets users browse stablecoins by underlying protocol: Liquity v1/v2 and M0 tagged across 25 coins, replacing the deprecated protocol-lineage fields.

    • PSI page ships an arc gauge hero with annotated crisis events from COVID Crash to BTC ATH, plus hardened non-USD depeg replay for BRZ, TRYB, and commodity pegs.

    • Safety Scores redesigndesign

      Grade-grouped card grid, a systemic risk headline ranked by dependent TVL, and entrance animations.

    • Exit liquidity replaces the blend with a best-path model and diversification premium (backstop methodology v3.7); Uniswap V2 and V4 pools split from the generic bucket.

    • Live reserve adapterscoverage

      Abracadabra adapter for MIM cauldron collateral, a Lista adapter, live configs for seven more coins, and USDT reserves upgraded to Q4 2025 attestation data, reaching 136 coins.

    • Broader coveragecoverage

      Seven new stablecoins (USDat, wM, USDnr, USDK, XO Cash, evaUSDC, evaUSDT) bring the dashboard to 194 tracked coins; RAI retired to the cemetery.

    • Navigation & pagesdesign

      Redesigned /telegram page, changelog week nav with scroll-spy, refined sidebar signals, and the treasury exposure page retired.

    • Pipeline hardeninginfra

      Telegram rate-limit handling and HTML fixes, 100+ audit remediation fixes across four merge streams, blacklist v3.7 enrichment, and mint-burn D1 query batching.

    Show commits
    • b2119d11 fix(changelog): replace retired treasuries page mention with /telegram redesign
    • 61290ede fix: admit eva stablecoins to runtime cache
    • 8653fa3e docs: bump tracked count to 194 after adding eva tokens
    • fb5f066d add evaUSDC and evaUSDT to tracked stablecoins
    • e4a47e3a fix dews freshness and price staleness
    • 53bd099e docs(status): document cron error transient-vs-sustained escalation
    • 5d4c4cbe test(status/cron-health): cover consecutive-error streak counter
    • ffefafdf fix(status): treat single critical cron error as degraded, not stale
    • 77d2580d fix(sync-stablecoins): retry DL response body parse failures before falling back
    • 35423ccc test(sync-stablecoins): failing test for DL parse retry path
    • 2526d2cc fix: report scrvUSD current yield
    • bfef7a26 fix: add m0 extension price inheritance
    • df63d994 test(status): cover freshness fallbacks
    • 05fcb802 fix(status): harden freshness diagnostics
    • 19c6cfec chore: bump next to 16.2.3
    • 6eac818d fix: harden supplemental solana stablecoin fallback
    • 8e78a75f fix(filter-bar): rebalance desktop grid so Infrastructure stays on one line
    • b4c713a2 fix(_redirects): move infrastructure redirects above auto-generated separator
    • 7ae62203 docs(homepage): fix stale infrastructure filter URL key reference
    • 612ef058 docs: refresh stablecoin addition process

    … and 248 more

  4. Week #14

    208 commits

    API key authentication goes live on protected endpoints as live reserve tracking reaches 126 coins.

    • API key authenticationsecurity

      Full auth gate on protected endpoints with key rotation, audit logging, dual-pepper hashing, and rate limiting

    • Size-aware scoring formulas use market cap to judge depth relative to supply, with component weights reset to 30/20/20/20/10

    • Live reserve expansioncoverage

      USDSC, satUSD, USDai, Anzen USDz, Liquity v1 LUSD, frxUSD, eUSD, feUSD, USSD, and Honey go live; DAI and USDS move to Block Analitica, bringing coverage to 126 coins

    • Richer risk surfacesfeature

      Non-USD market share charts, blacklist status distribution, and a treasury stable exposure view covering 18 issuer treasuries

    • Steeper peg multiplier and an active-depeg grade cap

    • Broader stablecoin coveragecoverage

      BUCK added, Base Dollar listed as upcoming, and USD.AI and sUSDai tracked separately, bringing tracking to 188 stablecoins

    • Pipeline reliabilityinfra

      Hardened pricing consensus, reserve sync, redemption backstops, depeg recovery, and cron orchestration

    • Status page upgradesinfra

      Public status history API with uptime bar and transition timeline, request-source attribution, D1 usage telemetry, and FX degradation isolated from overall status

    • Changelog and navigationdesign

      Weekly changelog page with timeline layout, collapsible sidebar groups, and a two-column API reference with scrollspy and method badges

    Show commits
    • 29013cc5 chore(pre-launch): weekly update for 10 tracked pre-launch stablecoins
    • dfe44f5c feat(reserves): update USDS and DAI config to Block Analitica source
    • c16d8521 feat(reserves): rewrite sky-makercore adapter to use Block Analitica module-level API
    • 9cf6f2b7 fix(status): distill, clarify, and rearrange the public status page
    • 97089cf4 fix(fx): tolerate 1 missed business-daily publish for market holidays
    • b67b563b fix(ui): clarify collateral usage heading with stablecoin ticker
    • 60fb9a36 fix(seo): add /status/ to sitemap
    • fb28db79 feat(status): add public status history API, uptime bar and transition timeline
    • bb6b607a feat(treasury): expand stablecoin issuer coverage to 18 treasuries
    • 96f6ee14 fix(status): polish public status page for menu-level traffic
    • ce2c29a3 fix(status): stop FX source-degraded from cascading to overall system status
    • 7101a12f docs: sync redemption-backstops.md version to v3.5
    • 80167254 Agents doc cleanup
    • 4311334d feat(nav): add Status page to info menu and about reference cards
    • bf1c2284 fix(scoring): relax freshness gate for adapters with capacity telemetry (v3.5)
    • b9479b1a feat(scoring): steeper peg multiplier + active depeg grade cap (v6.93)
    • 516a5565 refactor(worker): split route registration by domain
    • d229e3e3 ci: extract shared workspace setup action
    • 2dcff8ca refactor(worker): dedupe loaders and status helpers
    • 587ee0cf refactor(frontend): extract shared dashboard helpers

    … and 188 more