mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-03 15:23:41 -07:00
changelog + website: fixes
This commit is contained in:
@@ -4,6 +4,86 @@ All notable changes to the Bitcoin Research Kit (BRK) project will be documented
|
||||
|
||||
> *This changelog was generated by Claude Code*
|
||||
|
||||
## [v0.2.3](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.2.3) - 2026-03-26
|
||||
|
||||
### New Features
|
||||
|
||||
#### `brk_computer`
|
||||
- Added new `investing` module with complete Dollar-Cost Averaging (DCA) and lump-sum investment analysis — computes DCA stack (cumulative sats purchased at $100/day), cost basis, returns, and CAGR by rolling period (1w, 1m, 3m, 6m, 1y through 10y); lump-sum stack and returns by rolling period; and DCA stack, cost basis, and returns by year class (2015 through 2026). Extracted from `market::dca` into a standalone top-level module with parallel import and compute ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/investing/mod.rs))
|
||||
- Added `RealizedEnvelope` indicator that computes the tightest percentile bounds across 10 pricing models (realized price, investor price, STH/LTH variants, cointime vaultedness/activity/true market mean/cointime price), producing 8 envelope price bands (0.5th through 99.5th percentile), a zone index (-4 to +4) based on spot price position relative to envelope bands, and a composite score (-40 to +40) summing band crossings across all models ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/indicators/realized_envelope.rs))
|
||||
- Expanded `RatioPerBlockPercentiles` from 6 to 8 percentile bands, adding 0.5th and 99.5th percentiles alongside the existing 1st/2nd/5th/95th/98th/99th — `ExpandingPercentiles` Fenwick tree computation also widened from 6-quantile to 8-quantile output ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/internal/per_block/ratio/percentiles.rs))
|
||||
- Consolidated timestamp data into a new `indexes::timestamp::Timestamps` struct — moved `timestamp_monotonic`, `date`, and per-resolution timestamp lookups from `blocks::time::Vecs` into the indexes module, making timestamp data accessible without depending on the blocks module ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/indexes/timestamp.rs))
|
||||
|
||||
#### `brk_indexer`
|
||||
- Added `take_all_pending_ingests()` to batch all KV store puts/deletes into closures that can be executed on a background thread, enabling the indexer to hand off fjall store commits to `run_bg()` instead of blocking the main indexing loop ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_indexer/src/stores.rs))
|
||||
- Extracted `stamped_write()` from `flush()` so vec stamping can happen on the main thread while compaction and store ingests run in the background ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_indexer/src/vecs/mod.rs))
|
||||
|
||||
#### `brk_store`
|
||||
- Added `take_pending_ingest()` method that drains buffered puts/deletes and returns a `Send` closure for background ingestion into the fjall keyspace ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_store/src/lib.rs))
|
||||
|
||||
#### `website`
|
||||
- Added range preset buttons (1w, 1m, 3m, 6m, 1y, 4y, 8y, YTD, all) to the chart that automatically select the appropriate sub-day resolution index (30min through 1w) and scroll the visible range to that time window ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/chart/index.js))
|
||||
- Added value-dependent coloring support (`colorFn`) for histogram and baseline chart series, enabling per-bar colors based on data values ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/chart/index.js))
|
||||
- Added "Realized Envelope" chart to market indicators showing 8-level percentile price bands as dashed lines, a color-coded zone index histogram, and a score baseline ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/options/market.js))
|
||||
- Added `percentileBands()` and `priceBands()` shared helpers for displaying 8-level percentile bands with dedicated colors per level, reusable across ratio and price chart types ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/options/shared.js))
|
||||
- Added subtle grid lines to charts using a new `offBorder` color variable ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/chart/index.js))
|
||||
|
||||
### Internal Changes
|
||||
|
||||
#### `brk_computer`
|
||||
- Switched all module `compute()` methods to use `db.run_bg()` for background compaction instead of synchronous `db.compact()`, and added `db.sync_bg_tasks()` at compute entry to await prior background work — applies to blocks, cointime, distribution, indicators, inputs, investing, market, mining, outputs, pools, positions, prices, scripts, supply, and transactions ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/blocks/compute.rs))
|
||||
- Removed `market::dca` sub-module — DCA types (`ByDcaClass`, `ByDcaPeriod`, `ByDcaCagr`) and computation logic moved to the new top-level `investing` module; `market::returns` now imports `ByDcaPeriod` from `investing` ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/market/mod.rs))
|
||||
- Removed `blocks::time` sub-module — `timestamp_monotonic` compute logic and per-resolution timestamp imports relocated to `indexes::timestamp::Timestamps` ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/blocks/mod.rs))
|
||||
- Changed `lookback::compute()` to take `&indexes::Vecs` instead of `&time::Vecs`, sourcing monotonic timestamps from the indexes module ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/blocks/lookback.rs))
|
||||
- Changed `market::compute()` parameter order: now takes `(prices, indexes, blocks)` instead of `(indexes, prices, blocks)` ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_computer/src/market/compute.rs))
|
||||
|
||||
#### `brk_indexer`
|
||||
- Moved indexer store ingest and fjall persist to background via `run_bg()`, running compaction, store commit, and fjall `SyncData` persist concurrently with the next indexing batch ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_indexer/src/lib.rs))
|
||||
|
||||
#### `brk_client`
|
||||
- Added `Pct0Pct1Pct2Pct5Pct95Pct98Pct99Pattern` replacing `Pct1Pct2Pct5Pct95Pct98Pct99Pattern` to include the new 0.5th and 99.5th percentile bands ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_client/src/lib.rs))
|
||||
- Added `SeriesTree_Investing` with full period/class sub-trees for DCA stack, cost basis, returns, CAGR, and lump-sum series ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_client/src/lib.rs))
|
||||
- Added `SeriesTree_Indicators_RealizedEnvelope` with percentile price bands, index, and score series ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_client/src/lib.rs))
|
||||
- Added `SeriesTree_Indexes_Timestamp` with monotonic and per-resolution timestamp series ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_client/src/lib.rs))
|
||||
- Removed `date` and `timestamp_monotonic` from `SeriesTree_Blocks_Time`, simplified to only expose `timestamp` as a per-resolution pattern ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_client/src/lib.rs))
|
||||
|
||||
#### `brk_query`
|
||||
- Updated all mining query endpoints (`day1_iter`, `difficulty`, `epochs`, `hashrate`) and series timestamp resolution to read from `indexes.timestamp` instead of `blocks.time.timestamp` ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/crates/brk_query/src/impl/series.rs))
|
||||
|
||||
#### `website`
|
||||
- Refactored investing chart options to use the new `investing` tree path instead of `market.dca` ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/options/investing.js))
|
||||
- Added dedicated percentile color palette (`_0_5` through `_99_5`) replacing the previous 6-color scheme with 8 distinct colors ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/utils/colors.js))
|
||||
- Added `createRatioChart()` and `groupedWindowsCumulative()` shared chart builders for reuse across ratio-based chart options ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/website/scripts/options/shared.js))
|
||||
|
||||
#### `docker`
|
||||
- Switched health check from `curl http://localhost:3110/health` to `pgrep -x brk`, replacing `curl` package dependency with `procps` and reducing start period from 60s to 10s ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/docker/docker-compose.yml))
|
||||
|
||||
#### `workspace`
|
||||
- Bumped Rust toolchain from 1.94.0 to 1.94.1 ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/rust-toolchain.toml))
|
||||
- Bumped `quickmatch-js` from 0.4.0 to 0.4.1 ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.3/modules/quickmatch-js/0.4.1/src/index.js))
|
||||
|
||||
[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.2.2...v0.2.3)
|
||||
|
||||
## [v0.2.2](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.2.2) - 2026-03-23
|
||||
|
||||
### New Features
|
||||
|
||||
#### `website`
|
||||
- Created a comprehensive LLM-readable API reference (`llms-full.txt`) documenting every endpoint with curl examples, response shapes, parameter descriptions, and series categories — enabling LLM agents to discover and use the BRK API via the [llms.txt standard](https://llmstxt.org/) ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.2/website/llms-full.txt))
|
||||
- Rewrote `llms.txt` from a minimal overview into a structured quick-start guide with live links to key endpoints (search, series data, blocks, transactions, addresses, fees, live price) and links to the full reference, OpenAPI specs, and interactive docs ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.2/website/llms.txt))
|
||||
- Added `llms-full.txt` to `robots.txt` as a sitemap entry so crawlers and LLM agents can discover it ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.2/website/robots.txt))
|
||||
|
||||
#### `brk_server`
|
||||
- Added Open Graph and Twitter Card meta tags to the Scalar API documentation page, providing proper title, description, and image for social media link previews ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.2/crates/brk_server/src/api/scalar.html))
|
||||
- Renamed the API docs page title from "BRK API" to "BRK API — Bitcoin Research Kit" with a richer meta description emphasizing the free, no-auth nature of the API ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.2/crates/brk_server/src/api/scalar.html))
|
||||
|
||||
### Internal Changes
|
||||
|
||||
#### `workspace`
|
||||
- Re-enabled `cargo build --workspace --release` in the release script (was previously commented out) ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.2.2/scripts/quick-release.sh))
|
||||
|
||||
[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.2.1...v0.2.2)
|
||||
|
||||
## [v0.2.1](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.2.1) - 2026-03-23
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
Reference in New Issue
Block a user