Skip to content

Changelog

All notable changes to the Sharpe API are documented here. Entries are auto-generated from conventional commits touching API code, docs, and infrastructure.


September 2026

fixserve

never answer one read model's request with another model's read on the same dataset

featureserve

health lists each dataset's freshness, Runtime Cache usage is counted, v1 usage is exact

  • /api/health reads a per-dataset freshness rollup from the snapshot index and
  • Every Runtime Cache read, hit and write is counted per key namespace and
  • /v1/usage reads the last 24 h through keyset pages on (created_at, id): past
improvementserve

serve the pump-dump and insider-selling boards through one read model

  • One signal read model behind the free and v1 routes of both boards: the
  • A fresh board is cached 600/1,200 s, a stale one 30/30; a failed read is 503
  • The stale bound is 1 hour everywhere: API, v1 freshness_sla_seconds (3600),
improvementserve

serve the /global overview through one read model

  • Both /global overview routes run on one model: the crypto snapshot while it
  • A fallback to an old snapshot is flagged stale and no longer cached (was
  • Registry prose, docs, the contract and OpenAPI describe the new fallback.
improvementserve

serve correlation, market-cap search, price prediction and coin compare through read models

  • Eight research read models behind the 11 routes; one CoinGecko client for all
  • Unknown correlation ids: partial success with `unresolved` on both routes
  • The coin picker's hour-cached CoinGecko list gets its own dataset
  • Outages answer 503 problem+json on the free routes (v1 502); contracts,
featuresignals

score crypto assets only, from each venue's primary contract, and give dropped coins no score

  • The pump-dump and insider-pressure scorers are engine metrics pump_dump.score
  • Their 72 h and daily funding inputs read each venue's primary crypto
  • A coin that stops scoring is written with score NULL and its sub-scores and
fixlistings

one freshness bound for listing events, and rollup reads that cannot lose buckets

  • The events payload marks the persisted rows partial once the newest completed
  • The hub's weekly and monthly rollup reads are ordered by their unique key and

Was this page helpful?