# Changelog

All notable changes to the Bitcoin Research Kit (BRK) project will be documented in this file.

> *This changelog was generated by Claude Code*

## [v0.1.0-alpha.1](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.1.0-alpha.1) - 2025-12-21

### New Features

#### `brk_binder`
- Implemented complete multi-language client generation system that produces typed API clients from the metric catalog and OpenAPI specification ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_binder/src/lib.rs))
- Added JavaScript client generator with full JSDoc type annotations for IDE autocomplete support across 20k+ metrics ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_binder/src/javascript.rs))
- Added Python client generator with type hints and httpx for HTTP requests ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_binder/src/python.rs))
- Added Rust client generator with strong typing using reqwest ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_binder/src/rust.rs))
- Implemented OpenAPI 3.1 integration using the `oas3` crate for parsing endpoint definitions ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_binder/src/openapi.rs))
- Created structural pattern detection system that identifies repeating tree structures for type reuse ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_binder/src/types/patterns.rs))
- Added generic pattern detection that groups type-parameterized structures to reduce generated code size
- Created `ClientMetadata` for extracting catalog structure, patterns, and index sets from `brk_query::Vecs` ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_binder/src/types/mod.rs))

#### `brk_types`
- Added `MetricLeaf` struct containing metric name, value type, and available indexes ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_types/src/treenode.rs))
- Added `MetricLeafWithSchema` that wraps `MetricLeaf` with a JSON Schema for client type generation
- Changed `TreeNode::Leaf` from `String` to `MetricLeafWithSchema` to carry full metadata through the tree
- Added `JsonSchema` derive to byte array types (`U8x2`, `U8x20`, `U8x32`) with custom implementations for `U8x33` and `U8x65`
- Added `JsonSchema` derive to OHLC types (`OHLCCents`, `OHLCDollars`, `OHLCSats`, `Open`, `High`, `Low`, `Close`)
- Added `JsonSchema` derive to all index types (date, week, month, quarter, semester, year, decade, halving epoch, difficulty epoch)
- Added `JsonSchema` derive to address index types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR, P2PK33, P2PK65, P2A, OP_RETURN, empty, unknown)
- Implemented index merging when collapsing tree nodes with the same metric name

#### `brk_traversable`
- Added `make_leaf` helper function that generates `MetricLeafWithSchema` nodes with schemars-based JSON Schema generation ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_traversable/src/lib.rs))
- Updated all `Traversable` implementations to require `JsonSchema` bound and generate full leaf metadata

#### `brk_computer`
- Added `neg_realized_loss` metric (realized_loss * -1) for charting convenience ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_computer/src/stateful/metrics/realized.rs))
- Added `net_realized_pnl` metric (realized_profit - realized_loss)
- Added `realized_value` metric (realized_profit + realized_loss)
- Added `total_realized_pnl` at both height and dateindex levels
- Added `realized_price` metric (realized_cap / supply)
- Added `realized_cap_30d_delta` for 30-day realized cap changes
- Added `sopr` (Spent Output Profit Ratio) with 7-day and 30-day EMA variants
- Added `adjusted_sopr` with EMA variants for coinbase-adjusted analysis
- Added `sell_side_risk_ratio` (realized_value / realized_cap) with 7-day and 30-day EMAs
- Added realized profit/loss ratios relative to realized cap
- Added `net_realized_pnl_cumulative_30d_delta` with ratios relative to realized cap and market cap
- Added `neg_unrealized_loss_rel_to_market_cap` and `net_unrealized_pnl_rel_to_market_cap` metrics ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_computer/src/stateful/metrics/relative.rs))
- Added `supply_in_profit/loss_rel_to_circulating_supply` metrics
- Added unrealized profit/loss relative to own market cap at both height and indexes levels
- Added full benchmark example with indexer, computer, and bencher integration ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_computer/examples/full_bench.rs))

#### `brk_grouper`
- Added public constants for age boundaries (`DAYS_1D`, `DAYS_1W`, `DAYS_1M`, etc.) for external use ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_grouper/src/by_age_range.rs))
- Added `get_mut_by_days_old()` method to `ByAgeRange` for O(1) direct bucket access by days
- Added `AmountBucket` type for O(1) amount range classification ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_grouper/src/by_amount_range.rs))
- Added `amounts_in_different_buckets()` helper for cheap bucket comparison
- Optimized `get()` and `get_mut()` in `ByAmountRange` using match on bucket index instead of if-else chain

#### `brk_server`
- Integrated automatic client generation on startup when `brk_binder/clients/` directory exists ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_server/src/lib.rs))
- Added panic catching for client generation to prevent server startup failures

#### `brk_cli`
- Enabled distribution via cargo-dist (`dist = true` in package metadata)
- Added performance benchmarks section to README with timing and resource usage data

#### `workspace`
- Added `rust-toolchain.toml` pinning toolchain to Rust 1.92.0
- Created comprehensive `scripts/publish.sh` for automated crate publishing in dependency order ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/scripts/publish.sh))
- Updated `scripts/update.sh` to also update rust-toolchain version

### Internal Changes

#### `brk_computer`
- Removed `FenwickTree` state module (O(log n) prefix sum data structure)
- Removed `PriceBuckets` state module (logarithmic price bucket distribution)
- Simplified cohort state management after removal of Fenwick-based percentile computation

#### `brk_indexer`
- Renamed `push_if_needed()` to `checked_push()` throughout for API consistency ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.1/crates/brk_indexer/src/processor.rs))
- Renamed `Indexes::push_if_needed()` to `Indexes::checked_push()`

#### `brk_cli`
- Updated `zip` dependency from 6.0.0 to 7.0.0

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.1.0-alpha.0...v0.1.0-alpha.1)

## [v0.1.0-alpha.0](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.1.0-alpha.0) - 2025-12-18

### Breaking Changes
#### `brk_structs` → `brk_types`
- Renamed `brk_structs` crate to `brk_types` with complete reorganization of all Bitcoin data types into 150+ dedicated modules ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_types/src/lib.rs))

#### `brk_parser` → `brk_reader`
- Renamed `brk_parser` crate to `brk_reader` with simplified scope focused exclusively on BLK file reading and XOR decryption ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_reader/src/lib.rs))
- Moved block iteration logic to new `brk_iterator` crate

#### `brk_interface`
- Removed `brk_interface` crate entirely, replacing it with the more comprehensive `brk_query` crate

#### `brk_store`
- Upgraded storage backend from fjall v2.11.2 to fjall v3.0.0-rc.6 with breaking API changes ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_store/Cargo.toml))

#### `brk_indexer`
- Replaced `brk_parser::Parser` with `brk_iterator::Blocks` for block iteration ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_indexer/src/lib.rs))
- Renamed `OutputIndex` and `InputIndex` to `TxOutIndex` and `TxInIndex` throughout the codebase for clarity
- Changed address indexing from `addressindex->txoutindex` to `addressindex->txindex` and `addressindex->outpoint` patterns for more flexible queries

#### `brk_computer`
- Replaced `brk_parser::Parser` with `brk_reader::Reader` for block file access
- Reorganized stateful computation architecture with new cohort-based grouping system
- Removed `states` module, integrating state management directly into `stateful` module

### New Features

#### `brk_mempool` (New Crate)
- Created comprehensive mempool monitoring crate with real-time transaction tracking and fee estimation ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_mempool/src/lib.rs))
- Implemented CPFP-aware block builder algorithm using dependency graph analysis and heap-based transaction selection ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_mempool/src/block_builder/mod.rs))
- Created `Selector` component that greedily selects highest fee-rate transactions while respecting ancestor dependencies
- Implemented `Partitioner` that groups selected transactions into projected blocks of ~1MB vsize each (8 blocks projected)
- Added `Package` abstraction for atomic transaction groups where children pay for parents (CPFP)
- Created `Graph` structure tracking transaction dependencies with ancestor fee/size aggregation
- Implemented `RecommendedFees` computation providing fee estimates for fastest, half-hour, hour, economy, and minimum confirmation targets ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_mempool/src/projected_blocks/fees.rs))
- Created `AddressTracker` for monitoring mempool transactions affecting specific addresses with add/remove tracking ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_mempool/src/addresses.rs))
- Implemented `EntryPool` with slot-based entry management using generation counters for efficient reuse
- Added `Snapshot` system capturing point-in-time mempool state with per-block statistics (tx count, vsize, fees, fee range) ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_mempool/src/projected_blocks/snapshot.rs))
- Created `TxStore` for mempool transaction storage with prefix-based lookups using TxidPrefix
- Implemented `MempoolInfo` tracking aggregate statistics: tx count, total vsize, total fees
- Added automatic synchronization loop with 1-second update interval and rate-limited rebuilds (minimum 1 second between rebuilds) ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_mempool/src/sync.rs))
- Created dirty flag mechanism for efficient change detection and rebuild triggering

#### `brk_query` (New Crate)
- Created unified query interface combining indexer, computer, reader, and mempool access into single `Query` struct ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_query/src/lib.rs))
- Implemented address query methods ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_query/src/impl/address.rs)):
  - `address()` - Returns `AddressStats` with chain stats (funded/spent txo counts and sums, tx count) and optional mempool stats
  - `address_txids()` - Returns paginated transaction IDs for an address with `after_txid` cursor support
  - `address_utxos()` - Returns all unspent outputs for an address with full status information
  - `address_mempool_txids()` - Returns up to 50 unconfirmed transaction IDs affecting an address
  - `resolve_address()` - Helper converting address string to output type and type_index
- Implemented block query methods ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_query/src/impl/block/)):
  - `block()` / `block_by_height()` - Returns `BlockInfo` with hash, height, timestamp, difficulty, size, weight, tx count
  - `blocks()` - Returns last 10 blocks, optionally starting from a specific height
  - `block_status()` - Returns `BlockStatus` with in_best_chain flag, height, and next_best hash
  - `block_timestamp()` - Returns `BlockTimestamp` for timestamp-based block lookup
  - `block_txids()` - Returns all transaction IDs in a block
  - `block_txs()` - Returns paginated full transactions (25 per page)
  - `block_txid_at_index()` - Returns single txid at specific index within block
  - `block_raw()` - Returns raw block bytes read directly from blk file with XOR decoding
  - `block_by_timestamp()` - Finds block closest to given UNIX timestamp using binary search
- Implemented transaction query methods ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_query/src/impl/transaction.rs)):
  - `transaction()` - Returns full `Transaction` with inputs (including prevout values), outputs, fee, status; checks mempool first for unconfirmed txs
  - `transaction_by_index()` - Internal method reading tx from blk file and reconstructing full transaction object
  - `transaction_status()` - Returns `TxStatus` with confirmed flag, block height/hash/time
  - `transaction_hex()` - Returns raw transaction as hex string
  - `outspend()` - Returns `TxOutspend` for single output with spending tx details if spent
  - `outspends()` - Returns spend status for all outputs in a transaction
  - `outspend_details()` - Helper computing spending txid, vin, and status from txinindex
- Implemented mempool query methods ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_query/src/impl/mempool.rs)):
  - `mempool_info()` - Returns `MempoolInfo` with aggregate statistics
  - `mempool_txids()` - Returns all transaction IDs currently in mempool
  - `recommended_fees()` - Returns `RecommendedFees` with fee rate targets
  - `mempool_blocks()` - Returns `Vec<MempoolBlock>` with projected block statistics
- Implemented mining query methods ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_query/src/impl/mining/)):
  - `mining_pools()` - Returns `PoolsSummary` with pool statistics for time period (24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y)
  - `all_pools()` - Returns `Vec<PoolInfo>` with all 166 known mining pools
  - `pool_detail()` - Returns `PoolDetail` with block counts/shares for all time, 24h, and 1 week
  - `hashrate()` - Returns `HashrateSummary` with network hashrate and difficulty data
  - `difficulty_adjustment()` - Returns current `DifficultyAdjustment` with epoch progress and retarget estimate
  - `difficulty_adjustments()` - Returns historical `Vec<DifficultyAdjustmentEntry>` (timestamp, height, difficulty, change%)
  - `block_fees()` - Returns `Vec<BlockFeesEntry>` with average fees per time period
  - `block_rewards()` - Returns `Vec<BlockRewardsEntry>` with average coinbase rewards
  - `block_sizes_weights()` - Returns `BlockSizesWeights` with average sizes and weights
  - `reward_stats()` - Returns `RewardStats` for last N blocks
- Implemented metrics query methods ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_query/src/impl/metrics.rs)):
  - `metric_count()` - Returns count of available metrics
  - `indexes()` - Returns all available index types with accepted aliases
  - `metrics()` - Returns paginated list of metrics with offset/limit support
  - `metrics_catalog()` - Returns hierarchical `TreeNode` of all metrics organized by category
  - `match_metric()` - Fuzzy search for metrics by name with configurable result limit
  - `metric_to_indexes()` - Returns supported indexes for a specific metric
  - `metric_data()` - Returns `MetricData` with values for metric/index combination and date range
- Added async query support via optional `tokio` feature for non-blocking database access

#### `brk_iterator` (New Crate)
- Created `Blocks` factory for iterating over Bitcoin blocks with smart source selection ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_iterator/src/lib.rs))
- Implemented three source modes:
  - `Smart` - Auto-selects RPC for ranges ≤10 blocks, Reader for larger ranges
  - `Rpc` - Always uses Bitcoin Core RPC for block retrieval
  - `Reader` - Always uses BLK file reader for block retrieval
- Created flexible range specifications:
  - `range(start, end)` - Iterate over specific block range (inclusive)
  - `start(height)` - Iterate from height to chain tip
  - `end(height)` - Iterate from genesis to height
  - `last(n)` - Iterate over last n blocks
  - `after(hash)` - Iterate after a specific block hash (for incremental syncing)
- Implemented `BlockIterator` with chain reorganization detection that stops iteration on prev_hash discontinuity
- Added `BlockRange` enum for type-safe range specification
- Created `State` struct managing iteration progress with RPC or Reader backend

#### `brk_rpc` (New Crate)
- Created Bitcoin Core RPC client wrapper with automatic retry logic and configurable timeouts ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_rpc/src/lib.rs))
- Implemented comprehensive RPC methods:
  - `get_blockchain_info()` - Chain state and sync status
  - `get_block()` / `get_block_count()` / `get_last_height()` - Block retrieval and chain height
  - `get_block_hash()` / `get_block_header()` / `get_block_info()` / `get_block_header_info()` - Block metadata
  - `get_transaction()` / `get_raw_transaction()` / `get_raw_transaction_hex()` - Transaction retrieval
  - `get_tx_out()` - UTXO lookup with optional mempool inclusion
  - `get_raw_mempool()` - Mempool transaction IDs
  - `get_raw_mempool_verbose()` - Returns `Vec<MempoolEntryInfo>` with fee/ancestor data for all mempool entries
  - `get_mempool_transaction()` - Returns `TxWithHex` with full transaction data including resolved prevouts
  - `is_in_main_chain()` - Check if block is in best chain
  - `get_closest_valid_height()` - Find closest valid ancestor for reorg recovery
  - `wait_for_synced_node()` - Block until node headers == blocks
- Created `ClientInner` with retry mechanism (default 1M retries, 1s delay) ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_rpc/src/inner.rs))
- Added default path resolution for macOS (`~/Library/Application Support/Bitcoin`) and Linux (`~/.bitcoin`)

#### `brk_types` (New Crate)
- Created comprehensive type library with 150+ Bitcoin-related types organized into dedicated modules ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_types/src/lib.rs))
- Added mempool types: `MempoolBlock` (tx_count, total_vsize, total_fee, fee_range), `MempoolEntryInfo`, `MempoolInfo`, `RecommendedFees` (fastest_fee, half_hour_fee, hour_fee, economy_fee, minimum_fee)
- Created API parameter types with serde deserialization: `AddressParam`, `AddressTxidsParam`, `BlockHashParam`, `BlockCountParam`, `HeightParam`, `TxidParam`, `TxidVout`, `LimitParam`, `TimePeriodParam`, `PoolSlugParam`, `TimestampParam`, `ValidateAddressParam`
- Added mining types: `Pool` (id, name, slug, addresses, tags, link), `PoolDetail`, `PoolDetailInfo`, `PoolInfo`, `PoolStats`, `PoolBlockCounts`, `PoolBlockShares`, `PoolsSummary`, `HashrateSummary`, `HashrateEntry`, `DifficultyAdjustment`, `DifficultyAdjustmentEntry`, `DifficultyEntry`, `DifficultyEpoch`, `RewardStats`
- Implemented metric types: `Metric`, `MetricCount`, `MetricData`, `MetricParam`, `Metrics`, `MetricSelection`, `MetricSelectionLegacy`, `MetricWithIndex`, `PaginatedMetrics`, `DataRange`, `DataRangeFormat`
- Added block types: `BlockInfo`, `BlockStatus`, `BlockTimestamp`, `BlockSizesWeights`, `BlockFeesEntry`, `BlockFeeRatesEntry`, `BlockRewardsEntry`, `BlockSizeEntry`, `BlockWeightEntry`
- Created transaction types: `Transaction`, `TxIn`, `TxOut`, `TxStatus`, `TxOutspend`, `TxWithHex`, `TxIndex`, `TxInIndex`, `TxOutIndex`
- Added address types: `Address`, `AddressBytes`, `AddressHash`, `AddressChainStats`, `AddressMempoolStats`, `AddressStats`, `AddressValidation`, `AnyAddressIndex`, `EmptyAddressIndex`, `LoadedAddressIndex`, with separate types for each output type (P2PKH, P2SH, P2WPKH, P2WSH, P2TR, P2PK33, P2PK65, P2A, P2MS, OpReturn, Unknown)
- Implemented index types: `Index` enum (Height, DateIndex, WeekIndex, MonthIndex, QuarterIndex, SemesterIndex, YearIndex, DecadeIndex, TxIndex, P2PKHIndex, etc.), `IndexInfo`
- Added stored numeric types: `StoredBool`, `StoredF32`, `StoredF64`, `StoredI16`, `StoredU8`, `StoredU16`, `StoredU32`, `StoredU64`, `StoredString`
- Created utility types: `Health`, `TreeNode`, `Unit`, `Pagination`, `PaginationIndex`, `Limit`, `OutPoint`, `Utxo`, `Vin`, `Vout`

#### `brk_grouper` (New Crate)
- Created cohort filtering and grouping infrastructure for UTXO and address analysis ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_grouper/src/lib.rs))
- Implemented filter modules:
  - `ByAddressType` - Filter by output type (P2PKH, P2SH, P2WPKH, etc.)
  - `ByAgeRange` - Filter by UTXO age in blocks
  - `ByAmountRange` - Filter by satoshi value range
  - `ByEpoch` - Filter by halving epoch
  - `ByTerm` - Filter by holder term classification (STH/LTH)
  - `ByYear` - Filter by creation year
  - `ByMinAge` / `ByMaxAge` - Filter by minimum/maximum UTXO age
  - `ByGeAmount` / `ByLtAmount` - Filter by amount thresholds
  - `BySpendableType` / `ByUnspendableType` - Filter by spendability
  - `ByAnyAddress` - Filter by specific address membership
  - `ByType` / `ByValue` - Generic type and value filters
- Created `AmountFilter` and `TimeFilter` base traits for composable filtering
- Implemented `CohortContext` for managing filter state during cohort analysis
- Added `Filtered` wrapper for filtered iterators with lazy evaluation
- Created `StateLevel` enum for controlling computation granularity
- Implemented `Term` type for STH (Short Term Holder) / LTH (Long Term Holder) classification
- Added `AddressCohort` and `UtxoCohort` traits for cohort membership testing

#### `brk_traversable` and `brk_traversable_derive` (New Crates)
- Created `Traversable` trait for vector tree navigation ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_traversable/src/lib.rs)):
  - `to_tree_node()` - Converts struct to hierarchical `TreeNode` representation
  - `iter_any_exportable()` - Returns iterator over all exportable vectors in the tree
- Implemented trait for all vecdb vector types: `BytesVec`, `ZeroCopyVec`, `PcoVec`, `LZ4Vec`, `ZstdVec`, `EagerVec`, `LazyVecFrom1/2/3`
- Added implementations for container types: `Box<T>`, `Option<T>`, `BTreeMap<K, V>`
- Created derive macro for automatic `Traversable` implementation on structs ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_traversable_derive/src/lib.rs))
- Added `TreeNode` type with `Leaf(String)` and `Branch(BTreeMap<String, TreeNode>)` variants

#### `brk_bencher` and `brk_bencher_visualizer` (New Crates)
- Created benchmarking infrastructure with multi-metric monitoring ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_bencher/src/lib.rs)):
  - `DiskMonitor` - Tracks directory size changes over time
  - `MemoryMonitor` - Tracks process RSS memory using system APIs
  - `IoMonitor` - Tracks read/write bytes using process I/O statistics
  - `ProgressionMonitor` - Tracks computation progress via log message pattern matching
- Implemented `Bencher` struct with:
  - Automatic benchmark directory creation under `workspace_root/benches/{crate_name}/{timestamp}/`
  - Background monitoring thread with 5-second sample interval
  - Logger hook registration for progress tracking
  - CSV output for all metrics with millisecond timestamps
- Created `brk_bencher_visualizer` for generating SVG charts from benchmark data ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_bencher_visualizer/src/lib.rs)):
  - `Chart` struct for SVG chart generation with configurable dimensions
  - `Data` module for CSV parsing and data transformation
  - `Format` module for human-readable byte/number formatting
  - Command-line tool for batch chart generation from benchmark directories

#### `brk_reader` (Renamed from brk_parser)
- Implemented thread-safe BLK file reader with parallel block decoding ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_reader/src/lib.rs))
- Created multi-stage pipeline:
  - Stage 1: Sequential BLK file reading with magic byte detection and XOR decoding
  - Stage 2: Parallel block parsing using dedicated rayon thread pool (half of available threads)
  - Stage 3: Block ordering with future block buffering for out-of-order handling
- Added binary search optimization for finding starting BLK file index when parsing from specific heights
- Created `read_raw_bytes()` method for reading arbitrary byte ranges from blk files with XOR decoding
- Implemented chain continuity verification that detects prev_hash discontinuities and logs errors
- Added `BlkIndexToBlkPath` mapping with automatic BLK file discovery and caching
- Created `XORBytes` and `XORIndex` types for efficient XOR decryption state management

#### `brk_server` - REST API
- Added comprehensive OpenAPI documentation using aide with Scalar UI at `/api` endpoint ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_server/src/api/openapi.rs))
- Created Address API endpoints ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_server/src/api/addresses/mod.rs)):
  - `GET /api/address/{address}` - Address information with chain and mempool stats
  - `GET /api/address/{address}/txs` - Paginated transaction IDs with `after_txid` and `limit` params
  - `GET /api/address/{address}/utxo` - Unspent transaction outputs
  - `GET /api/address/{address}/txs/mempool` - Unconfirmed transactions (max 50)
  - `GET /api/validate-address/{address}` - Address validation with type detection
- Created Block API endpoints ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_server/src/api/blocks/mod.rs)):
  - `GET /api/blocks` - Last 10 blocks
  - `GET /api/blocks/{height}` - 10 blocks backwards from height
  - `GET /api/block/{hash}` - Block information by hash
  - `GET /api/block/{hash}/status` - Block status (in_best_chain, next_best)
  - `GET /api/block/{hash}/txids` - All transaction IDs in block
  - `GET /api/block/{hash}/txs/{start_index}` - Paginated transactions (25 per page)
  - `GET /api/block/{hash}/txid/{index}` - Single txid at index
  - `GET /api/block/{hash}/raw` - Raw block bytes
  - `GET /api/block-height/{height}` - Block by height
  - `GET /api/v1/mining/blocks/timestamp/{timestamp}` - Block by timestamp
- Created Transaction API endpoints ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_server/src/api/transactions/mod.rs)):
  - `GET /api/tx/{txid}` - Full transaction data with inputs/outputs
  - `GET /api/tx/{txid}/status` - Confirmation status
  - `GET /api/tx/{txid}/hex` - Raw transaction hex
  - `GET /api/tx/{txid}/outspend/{vout}` - Single output spend status
  - `GET /api/tx/{txid}/outspends` - All output spend statuses
- Created Mempool API endpoints ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_server/src/api/mempool/mod.rs)):
  - `GET /api/mempool/info` - Mempool statistics (tx count, vsize, fees)
  - `GET /api/mempool/txids` - All mempool transaction IDs
  - `GET /api/v1/fees/recommended` - Recommended fee rates for confirmation targets
  - `GET /api/v1/fees/mempool-blocks` - Projected blocks with fee statistics
- Created Mining API endpoints ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_server/src/api/mining/mod.rs)):
  - `GET /api/v1/difficulty-adjustment` - Current difficulty adjustment info
  - `GET /api/v1/mining/pools` - List all known mining pools
  - `GET /api/v1/mining/pools/{time_period}` - Pool statistics for time period
  - `GET /api/v1/mining/pool/{slug}` - Detailed pool information
  - `GET /api/v1/mining/hashrate` / `GET /api/v1/mining/hashrate/{time_period}` - Network hashrate
  - `GET /api/v1/mining/difficulty-adjustments` / `GET /api/v1/mining/difficulty-adjustments/{time_period}` - Historical adjustments
  - `GET /api/v1/mining/blocks/fees/{time_period}` - Block fee statistics
  - `GET /api/v1/mining/blocks/rewards/{time_period}` - Block reward statistics
  - `GET /api/v1/mining/blocks/sizes-weights/{time_period}` - Block size/weight statistics
  - `GET /api/v1/mining/reward-stats/{block_count}` - Reward stats for last N blocks
- Created Metrics API endpoints ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_server/src/api/metrics/mod.rs)):
  - `GET /api/metrics/count` - Total metric count
  - `GET /api/metrics/indexes` - Available indexes with aliases
  - `GET /api/metrics/list` - Paginated metric list
  - `GET /api/metrics/catalog` - Hierarchical metric tree
  - `GET /api/metrics/search/{metric}` - Fuzzy metric search
  - `GET /api/metric/{metric}` - Supported indexes for metric
  - `GET /api/metric/{metric}/{index}` - Metric data with date range filtering
  - `GET /api/metrics/bulk` - Bulk metric query (max 650KB response weight)
  - `GET /api/vecs/{variant}` - Legacy variant endpoint (deprecated, sunset 2027-01-01)
  - `GET /api/vecs/query` - Legacy query endpoint (deprecated)
- Created Server API endpoints:
  - `GET /version` - API version
  - `GET /health` - Health check with timestamp
  - `GET /api.json` - OpenAPI specification
  - `GET /api` - Scalar API documentation UI
- Implemented `CacheStrategy` enum for response caching: `Static` (immutable), `Height` (ETag based on block height), `MaxAge(seconds)` (Cache-Control max-age)
- Added response transformations in `extended` module: `HeaderMapExtended`, `ResponseExtended`, `TransformResponseExtended`

#### `brk_computer`
- Achieved ~3x computation speed improvement through optimized vecdb iterators and major stateful processing optimizations
- Added `Traversable` derive macro support for automatic vector tree generation
- Implemented parallel import for indexes, fetched data, and blks vectors using 512MB stack-size threads ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_computer/src/lib.rs))
- Created new `blks` module with `txindex_to_position` and `txindex_to_len` vectors for transaction location tracking

#### `brk_indexer`
- Achieved ~4x indexing speed improvement (~12h → ~3h for full chain) through parallel TXID computation, parallel input/output processing, efficient same-block spend detection, fjall v3, and mimalloc
- Implemented parallel import for vecs and stores using scoped threads ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_indexer/src/lib.rs))
- Added `Readers` struct providing typed vector iterators for efficient batch data access
- Created `Processor` for block processing with address and transaction indexing
- Added automatic file handle limit increase at startup (minimum 10,000 via rlimit)

#### `brk_binder`
- Added Rust binding generator for type-safe metric access alongside existing JavaScript generator ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_binder/src/rust.rs))

### Internal Changes
#### `brk_indexer`
- Split indexer code into dedicated modules: `constants`, `indexes`, `processor`, `readers`, `stores`, `vecs`
- Moved address vector handling into nested `vecs/address.rs` module
- Separated block, transaction, txin, and txout vectors into dedicated submodules

#### `brk_computer`
- Major refactoring of stateful computation architecture with new module structure
- Split `cohorts` into `address.rs`, `address_cohorts.rs`, `traits.rs`, `utxo.rs`, and `utxo_cohorts/` (mod, receive, send, tick_tock)
- Created `compute` module with `aggregates`, `block_loop`, `context`, `readers`, `recover`, and `write` submodules
- Reorganized `metrics` into `activity`, `config`, `price_paid`, `realized`, `relative`, `supply`, and `unrealized` submodules
- Added `process` module with `address_updates`, `cache`, `inputs`, `lookup`, `outputs`, `range_map`, `received`, `sent`, `tx_counts`, `with_source`
- Created `states` module with `address_cohort`, `block`, `cohort`, `fenwick`, `price_buckets`, `price_to_amount`, `realized`, `supply`, `transacted`, `unrealized`, `utxo_cohort`
- Added `address` module in stateful with `address_count`, `any_address_indexes`, `data`, `height_type_vec`, `type_index_map`, `type_vec`
- Created `addresstype` module with `addresscount`, `height_to_addresscount`, `height_to_vec`, `indexes_to_addresscount`, `typeindex_tree`, `vec`

#### `brk_fetcher`
- Restructured fetcher into dedicated source modules: `binance.rs`, `brk.rs`, `kraken.rs`
- Added `retry.rs` module for fetch retry logic with exponential backoff
- Created `ohlc.rs` module for OHLC data aggregation and transformation
- Added `source.rs` module for abstracting data source selection

#### `brk_store`
- Simplified store implementation to use `brk_types` instead of `brk_structs`
- Added `rustc-hash` for faster FxHashMap operations

#### `brk_logger`
- Added hook registration system via `register_hook()` for external log message monitoring ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.1.0-alpha.0/crates/brk_logger/src/lib.rs))

### Documentation
#### Benchmarks
- Added benchmark data and visualizations for `brk_computer` and `brk_indexer` across multiple hardware configurations
- Created benchmark directories with disk, I/O, memory, and progress CSV/SVG files:
  - `benches/brk_computer/` - Computer benchmark visualizations
  - `benches/brk_indexer/mac_mini_m4_16gb_ext_ssd/` - Mac Mini M4 with external SSD
  - `benches/brk_indexer/mbp_m3_pro_36gb_int_ssd/` - MacBook Pro M3 Pro with internal SSD

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.111...v0.1.0-alpha.0)

## [v0.0.111](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.111) - 2025-10-03

### Breaking Changes
#### `brk_interface`
- Renamed `metric_count()` method to `distinct_metric_count()` and `vec_count()` to `total_metric_count()` for clearer API semantics distinguishing between unique metric names versus total metric-index combinations ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.111/crates/brk_interface/src/lib.rs))
- Consolidated indexes data structure from separate `indexes` vector and `accepted_indexes` map into single `indexes` BTreeMap containing index names as keys and their accepted variants as values
- Removed redundant `index_count()` method in favor of accessing `indexes.len()` directly

#### `brk_mcp`
- Removed `get_index_count()` tool from Model Context Protocol interface as index count can be derived from indexes map length ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.111/crates/brk_mcp/src/lib.rs))
- Removed `get_accepted_indexes()` tool, consolidating functionality into enhanced `get_indexes()` tool that returns complete mapping
- Updated `get_metric_count()` description to clarify it returns count of unique metrics
- Updated `get_vec_count()` description to explain it returns total metrics (distinct metrics multiplied by supported indexes)

### New Features
#### Website (`bitview`)
- Enhanced "Coins Destroyed" chart organization by separating "Sum" and "Cumulative" views into distinct sub-charts when comparing multiple cohorts, improving visual clarity and reducing chart clutter ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.111/websites/bitview/scripts/core/options/partial.js))
- Maintained backward compatibility with single-cohort view showing both sum and cumulative series in one chart

### Internal Changes
#### `brk_fetcher`
- Migrated JSON parsing from `sonic_rs::from_str()` to standard `serde_json` with updated response handling using `.as_str()` instead of `.json()` for improved compatibility and maintainability ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.111/crates/brk_fetcher/src/brk.rs))

#### `brk_interface`
- Switched from `sonic_rs` to `serde_json` for JSON value handling in metrics deserialization for consistent JSON processing across the codebase
- Streamlined internal data structures eliminating duplicate index tracking mechanisms

#### `brk_server`
- Updated metrics API endpoint `/api/metrics/indexes` to use consolidated `get_indexes()` method returning complete index-to-variants mapping ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.111/crates/brk_server/src/api/metrics/mod.rs))

#### Workspace
- Updated all crate versions from 0.0.110 to 0.0.111 across the workspace

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.110...v0.0.111)

## [v0.0.110](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.110) - 2025-10-02

### New Features
#### `brk_binder`
- Created new crate for generating language binding files to facilitate integration with other programming languages ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.110/crates/brk_binder/src/lib.rs))
- Implemented JavaScript binding generator with compressed metric-to-index mappings using base62 encoding for optimized frontend bundle sizes ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.110/crates/brk_binder/src/js.rs))
- Added automatic generation of TypeScript-compatible pool ID mappings with sorted pool names for improved developer experience
- Implemented word frequency analysis to create compressed metric names, reducing JavaScript bundle size and improving load times
- Added version file generation to track binding file compatibility with backend versions

#### `brk_server`
- Implemented comprehensive address lookup API endpoint supporting all Bitcoin address types including P2PK, P2PKH, P2SH, P2WPKH, P2WSH, P2TR, and P2A ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.110/crates/brk_server/src/api/explorer/mod.rs))
- Added transaction lookup endpoint with raw transaction decoding from blk files including position-based seeking and XOR decryption
- Created address balance and statistics API providing UTXO counts, sent/received amounts, realized value, and average cost basis
- Implemented real-time USD balance calculation using latest price data for address endpoints
- Reorganized API structure into dedicated `metrics/` and `explorer/` modules for better code organization and maintainability ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.110/crates/brk_server/src/api/metrics/mod.rs))
- Added metrics count endpoint exposing both distinct and total metric counts for API discovery
- Created bulk metrics query endpoint for efficient batch data retrieval

#### `brk_interface`
- Implemented `MaybeMetrics` type for handling multiple metric queries with automatic sanitization and validation ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.110/crates/brk_interface/src/metrics.rs))
- Added support for both comma-separated string and array formats for metric parameters with configurable size limits (max 32 metrics, 2KB total)
- Implemented automatic metric name normalization converting hyphens to underscores and enforcing lowercase for consistent API usage
- Added metric-to-indexes mapping functionality for discovering available data dimensions per metric

#### `brk_bundler`
- Restructured bundler to use centralized `modules/` directory instead of website-specific packages for better code reuse ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.110/crates/brk_bundler/src/lib.rs))
- Implemented automatic module copying from `modules/` to website source directories before bundling
- Added inline constant optimization configuration for improved runtime performance through compile-time constant evaluation
- Enhanced HTML generation with dynamic script path injection based on bundled entry point hashes

#### Frontend Modules
- Created `brk-client` module providing type-safe BRK API client with metrics catalog, pool mappings, and idle callback utilities
- Implemented `brk-resources` module for managing shared resources and dependencies across frontend applications
- Added `brk-signals` module for reactive state management with SolidJS signals compatibility
- Centralized third-party dependencies including lightweight-charts 5.0.9, lean-qr 2.6.0, ufuzzy 1.0.19, and solidjs-signals 0.6.3

### Internal Changes
#### `brk_cli`
- Removed legacy bridge generation code in favor of new `brk_binder` crate for cleaner separation of concerns ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.110/crates/brk_cli/src/lib.rs))
- Integrated `brk_binder` for automated JavaScript binding file generation during CLI operations

#### `brk_computer`
- Removed unused profit/loss metrics from stateful computations to streamline calculation pipelines
- Cleaned up cohort analysis code removing obsolete breakeven metrics for better performance

#### `brk_interface`
- Removed legacy `MaybeIds` type in favor of `MaybeMetrics` for more accurate API parameter naming
- Enhanced deserialization logic with better error messages for invalid metric formats
- Restructured interface to expose metric catalog and index mappings for API documentation

#### `brk_mcp`
- Updated Model Context Protocol integration to use new metrics infrastructure with improved parameter handling

#### Workspace
- Reorganized project structure moving website packages to centralized `modules/` directory for better maintainability
- Removed historical asset files reducing repository size and focusing on active development
- Updated solidjs-signals from 0.4.1 to 0.6.3 with enhanced TypeScript definitions and reactive primitives

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.109...v0.0.110)

## [v0.0.109](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.109) - 2025-09-20

### New Features
#### `brk_parser`
- Implemented new typed block parsing architecture with `AnyBlock` enum supporting Raw, Decoded, and Skipped states ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.109/crates/brk_parser/src/any_block.rs))
- Added `ParsedBlock` wrapper that combines block data with position metadata and transaction metadata vectors
- Introduced binary search optimization for finding starting block indices when parsing from specific heights
- Added concurrent parsing pipeline with parallel block decoding using rayon for improved performance

#### `brk_structs`
- Added comprehensive `Block` and `ParsedBlock` data structures with proper height, hash, and metadata tracking ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.109/crates/brk_structs/src/structs/block.rs))
- Implemented `BlkPosition` and `BlkMetadata` types for precise block and transaction positioning within blk files
- Added `coinbase_tag()` method to Block for extracting coinbase transaction script signatures
- Migrated `Pool`, `PoolId`, and `Pools` structs from brk_computer for better code organization and reusability

#### `brk_computer`
- Created dedicated `blks.rs` module for tracking block positions and lengths with compressed vector storage ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.109/crates/brk_computer/src/blks.rs))
- Added `height_to_position`, `height_to_len`, `txindex_to_position`, and `txindex_to_len` compressed vectors for efficient block data access
- Implemented forced import functionality with automatic region retention for optimized storage management

#### `brk_server`
- Added scaffolding for new explorer API endpoints in dedicated `explorer.rs` module (implementation commented for future development)
- Renamed `interface.rs` to `vecs.rs` and restructured API module organization for better separation of concerns

### Internal Changes
#### `brk_parser`
- Removed complex `BlkIndexToBlkRecap` state tracking system and associated recap file management to simplify parsing logic
- Eliminated `BlkMetadata`, `BlkRecap`, `BlockState`, and error handling modules that were causing parsing complexity
- Streamlined XOR decryption handling with direct byte manipulation instead of state machine patterns
- Replaced tuple-based return types with structured `ParsedBlock` objects for better type safety

#### `brk_interface`
- Removed table formatting functionality and simplified output handling for cleaner API design
- Updated format and output modules to work with new parsing architecture

#### Workspace
- Updated all crate versions from 0.0.107 to 0.0.109 across the workspace
- Optimized development profile settings: reduced opt-level to 2, increased codegen-units to 16, and added split-debuginfo for faster builds
- Updated dependencies: serde (1.0.219 � 1.0.225), serde_json (1.0.143 � 1.0.145), vecdb (0.2.14 � 0.2.16)
- Added `sonic-rs` dependency for high-performance JSON processing
- Removed `allocative_derive` dependency that was no longer needed

### Documentation
#### All Crates
- Comprehensive rewrite of all crate README files with detailed API documentation, usage examples, and installation instructions
- Standardized README format across workspace with consistent structure: overview, features, installation, usage, API reference
- Added professional crates.io badges and proper technical documentation for each crate's purpose and capabilities
- Enhanced code examples with practical use cases and proper error handling patterns

#### Project Structure
- Reorganized documentation into dedicated `docs/` directory with `CHANGELOG.md`, `README.md`, `TODO.md`, and `LICENSE.md`
- Added comprehensive project-level documentation explaining the Bitcoin Research Kit architecture and component relationships
- Moved and updated scripts to `scripts/` directory for better project organization

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.107...v0.0.109)

## [v0.0.107](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.107) - 2025-09-13

### New Features
#### `brk_computer`
- Added comprehensive hash rate analytics with THS (TeraHash/Second) and PHS (PetaHash/Second) pricing models for mining profitability analysis ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/chain.rs))
- Implemented hash price and hash value calculations including minimum thresholds and rebound metrics for market analysis
- Added difficulty adjustment tracking with block and day countdown to next adjustment for network monitoring
- Implemented halving countdown functionality with blocks and days remaining until next halving event
- Added 24-hour rolling coinbase sum tracking in both BTC and USD for mining reward analysis
- Created comprehensive SOPR (Spent Output Profit Ratio) analytics with multi-timeframe standard deviation analysis
- Implemented inflation rate calculations and annualized volume metrics in BTC and USD
- Added transaction velocity, per-second transaction metrics, and input/output rate tracking for network activity analysis

#### `brk_structs`
- Enhanced OHLC (Open, High, Low, Close) data structures with StoredF64 conversion capabilities for improved financial data handling ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_structs/src/structs/ohlc.rs))
- Added CheckedSub implementation for Bitcoin struct to enable safe arithmetic operations between Bitcoin amounts
- Enhanced StoredF32 and StoredF64 types with additional mathematical utility methods

### Internal Changes
#### `brk_computer`
- Removed complex ComputedVecBuilder system and streamlined computation architecture for better maintainability
- Refactored lazy and eager vector builders to eliminate redundant computed builder patterns
- Reorganized stateful computation modules with improved address and UTXO cohort management
- Simplified chain computation logic by consolidating version handling and removing unused computation paths
- Enhanced market data processing with better price integration and SOPR calculation efficiency

#### Workspace
- Added new clippy development profile with optimized settings for faster linting during development

### Website Enhancements
#### Frontend
- Improved ratio-based chart options with cleaner naming conventions (removed "_in_usd" suffix for better readability)
- Enhanced SOPR visualization options with multi-timeframe standard deviation displays
- Added new data series configurations for hash rate analytics and mining profitability charts
- Updated chart legends and color schemes for better user experience and data clarity

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.106...v0.0.107)

## [v0.0.106](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.106) - 2025-09-09

### New Features
#### `brk_computer`
- Added mathematical constants `constant_38_2` and `constant_61_8` for precise financial ratio calculations ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_computer/src/constants.rs))
- Standardized percentile naming from `p10`, `p25`, `p75`, `p90` to `pct10`, `pct25`, `pct75`, `pct90` for improved code clarity ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_computer/src/grouped/builder_eager.rs))

#### `brk_structs`
- Enhanced Dollars struct with comprehensive OHLC (Open, High, Low, Close) conversion support for better financial data integration ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_structs/src/structs/dollars.rs))
- Added proper type conversions between OHLC price components and dollar amounts

### Internal Changes
#### Workspace
- Added explicit Rust toolchain specification pinned to version 1.89.0 for consistent compilation across development environments
- Improved statistical calculation accuracy with standardized percentile naming conventions

### Website Enhancements
#### Frontend
- Enhanced chart visualization capabilities with improved data presentation
- Updated statistical displays to use standardized percentile naming for better user understanding

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.105...v0.0.106)

## [v0.0.105](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.105) - 2025-09-08

### New Features
#### Distribution System
- Added cargo-dist configuration for automated cross-platform binary distribution with GitHub CI integration
- Enabled pre-built binary releases for aarch64-apple-darwin (macOS ARM64), aarch64-unknown-linux-gnu (Linux ARM64), and x86_64-unknown-linux-gnu (Linux x86_64)
- Configured automated release workflow with Rust toolchain version 1.89 for consistent builds

### Internal Changes
#### Workspace
- Integrated cargo-dist v0.30.0 for streamlined release management and binary distribution
- Added distribution metadata configuration to simplify installation process for end users

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.104...v0.0.105)

## [v0.0.104](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.104) - 2025-09-08

### Internal Changes
#### CI/CD Infrastructure
- Updated GitHub Actions release workflow to use cargo-dist v0.30.0 for improved release automation ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.104/.github/workflows/release.yml))
- Added foundational cargo-dist metadata configuration to prepare for automated binary distribution
- Enhanced release pipeline reliability with updated tooling and workflow improvements

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.103...v0.0.104)

## [v0.0.103](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.103) - 2025-09-08

### New Features
#### `brk_computer`
- Added comprehensive price volatility analytics with 1-week, 1-month, and 1-year standard deviation calculations for returns analysis ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/crates/brk_computer/src/market.rs))
- Implemented advanced market risk metrics including rolling volatility indicators for better risk assessment
- Enhanced standard deviation calculations with optional z-score support and configurable statistical analysis ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/crates/brk_computer/src/grouped/sd_from_dateindex.rs))
- Refactored statistical computation modules to make calculations optional for improved performance and flexibility

#### `brk_bundler`
- Updated bundler configuration for optimized JavaScript asset compilation and improved frontend performance

### Internal Changes
#### `brk_computer`
- Converted fixed standard deviation bands to optional calculations, reducing computational overhead when specific metrics aren't needed
- Streamlined market analysis architecture with better separation between volatility calculations and price analysis
- Enhanced statistical accuracy in ratio and standard deviation computations

### Website Enhancements
#### Frontend
- Added support for new volatility and risk metrics in chart configurations
- Enhanced data visualization capabilities for displaying standard deviation bands and volatility indicators
- Improved chart options to accommodate advanced market analysis features

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.101...v0.0.103)

## [v0.0.101](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.101) - 2025-09-07

### New Features
#### `brk_structs`
- Added Sum trait implementation for StoredF64 to enable collection aggregation and improved mathematical operations ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_structs/src/structs/stored_f64.rs))
- Implemented division by Dollars for StoredF64 to support ratio calculations in financial analysis

#### `brk_computer`
- Upgraded SOPR (Spent Output Profit Ratio) calculations from StoredF32 to StoredF64 for enhanced precision in profit/loss analysis ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_computer/src/stateful/common.rs))
- Enhanced SOPR-related metrics including 7-day and 30-day exponential moving averages with double precision
- Improved adjusted SOPR calculations for more accurate short-term holder analysis

### Internal Changes
#### `brk_computer`
- Removed unused imports and streamlined module dependencies for improved compilation efficiency
- Updated SOPR computation version handling to ensure proper recalculation with enhanced precision

#### `brk_interface`
- Simplified interface ID handling and reduced code complexity for better maintainability

### Website Enhancements
#### Frontend
- Improved chart titles and interface labels for better user clarity, particularly for mining dominance displays
- Enhanced user experience with more descriptive chart naming conventions

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.100...v0.0.101)

## [v0.0.100](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.100) - 2025-09-07

### New Features
#### `brk_computer`
- Created comprehensive mining pool analytics system with dedicated pools tracking module ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/src/pools/vecs.rs))
- Implemented mining pool dominance analysis with 1-day, 1-week, 1-month, and 1-year timeframes
- Added mining pool subsidy, fee, and coinbase reward tracking for economic analysis
- Created days-since-block mining for pool activity monitoring and mining frequency analysis

#### `brk_structs`
- Enhanced mathematical operations across all stored numeric types with comprehensive arithmetic support ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_structs/src/structs/stored_f32.rs))
- Added StoredU32 to StoredF32 conversions and cross-type division operations for better data interoperability
- Implemented utility methods including `is_zero()` checks and mathematical constants for improved API consistency
- Added allocative trait derivations across all data structures for detailed memory usage tracking and performance optimization

#### `brk_cli`
- Expanded bridge system with automated pools data export for website integration ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_cli/src/bridge.rs))
- Enhanced website generation workflow with comprehensive data bridge file creation
- Improved CLI configuration and data export capabilities for better development workflow

### Internal Changes
#### `brk_computer`
- Restructured pools module architecture with dedicated vector storage and computation systems
- Enhanced pool identification and tracking systems with improved data organization
- Streamlined computation workflows with better separation of mining pool analytics

#### `brk_indexer`
- Simplified indexer architecture and reduced code complexity for better maintainability
- Enhanced data processing efficiency with streamlined storage operations

#### Multiple Crates
- Added comprehensive allocative memory tracking across all major data structures for performance monitoring
- Standardized arithmetic operations and type conversions across the entire numeric type system
- Enhanced error handling and validation in mathematical operations

### Website Enhancements
#### Frontend
- Major improvements to mining pool visualization with enhanced chart displays and dominance tracking
- Expanded table functionality with better data presentation and user interaction
- Enhanced chart options with comprehensive mining pool analytics integration
- Improved performance and user experience with updated data visualization libraries

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.98...v0.0.100)

## [v0.0.98](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.98) - 2025-09-05

### New Features
#### `brk_computer`
- Created foundational mining pools system with comprehensive database of 166 predefined mining pools including identification by coinbase tags and addresses ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/pools/pools.rs))
- Implemented target block count analytics for all time intervals including daily, weekly, monthly, quarterly, semester, yearly, and decade targets ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/chain.rs))
- Added mining pool identification system using coinbase transaction analysis and known pool addresses
- Created pools example demonstrating mining pool analysis capabilities

#### `brk_interface`
- Implemented robust MaybeIds system for handling multiple ID parameter formats with comprehensive validation and sanitization ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_interface/src/ids.rs))
- Enhanced API parameter handling with support for both string and array formats
- Added input validation with configurable limits for string size and array length

### Internal Changes
#### `brk_computer`
- Enhanced stateful computation organization with improved efficiency for complex analytics
- Restructured chain computation constants with better mathematical precision for target calculations
- Streamlined pools module architecture for better data organization and access patterns

#### `brk_store`
- Optimized store operations with reduced complexity and improved data access efficiency
- Removed unused functionality and streamlined storage interfaces

#### `brk_fetcher`
- Minor improvements to BRK API integration for better data fetching reliability

### Website Enhancements
#### Frontend
- Added foundational support for mining pool visualization in chart configurations
- Enhanced website structure with mining pool data integration capabilities
- Improved chart options to accommodate future mining pool analytics displays

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.96...v0.0.98)

## [v0.0.96](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.96) - 2025-09-03

### New Features
#### `brk_structs`
- Created comprehensive StoredString data type with ByteView integration for efficient string storage and serialization ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_structs/src/structs/stored_string.rs))
- Enhanced FeeRate calculations with improved mathematical operations and precision handling
- Added utility methods to Date and Timestamp structs for better temporal data manipulation
- Expanded StoredF64 with additional mathematical operations and conversion capabilities

#### `brk_computer`
- Major module restructuring: consolidated blocks and mining functionality into unified chain module for better Bitcoin blockchain analysis organization ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/lib.rs))
- Renamed `transactions.rs` to `chain.rs` to better reflect comprehensive blockchain transaction and block analysis
- Enhanced market analysis with improved price calculations and volatility metrics
- Streamlined stateful computations with better organization of address and UTXO cohort analysis

#### `brk_interface`
- Enhanced API interfaces with improved data access patterns and better error handling
- Added support for new data types and expanded parameter handling capabilities
- Improved index management with more robust validation and processing

### Internal Changes
#### `brk_computer`
- Consolidated blockchain analysis modules for better code organization and reduced complexity
- Enhanced computation efficiency across market, price, and stateful analysis modules
- Improved memory management and data flow in complex analytical operations

#### `brk_indexer`
- Streamlined indexing operations with better data processing efficiency
- Enhanced vector storage and retrieval operations for improved performance
- Improved indexer examples with clearer demonstration of functionality

#### `brk_parser`
- Enhanced block parsing capabilities with better error handling and validation
- Improved parser examples demonstrating advanced blockchain data extraction techniques

#### `brk_server`
- Enhanced API module organization with improved interface handling
- Better integration with updated interface and data access patterns

### Website Enhancements
#### Typography and Design
- Updated to modern GeistMono and Lilex font families for improved readability and professional appearance
- Enhanced asset management with optimized font loading and better file organization
- Improved service worker functionality for better offline capabilities

#### Chart and Visualization
- Major improvements to chart rendering capabilities with enhanced interactivity and data visualization
- Expanded chart options with new data series types and better configuration flexibility
- Enhanced table functionality with improved data presentation and user interaction
- Added support for new data types including hash rate (H/s) and address data visualization

#### Development Environment
- Added Zed editor configuration for improved development workflow
- Enhanced development tooling and editor integration

### Documentation
#### Multiple Crates
- Comprehensive README updates across brk, brk_indexer, brk_mcp, brk_parser, and brk_server crates
- Improved documentation clarity with better examples and usage instructions
- Enhanced project-level documentation with updated architecture descriptions

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.95...v0.0.96)

## [v0.0.95](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.95) - 2025-08-28

### New Features
#### `brk_computer`
- Added comprehensive unrealized profit and loss analytics with advanced relative metrics calculations ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.95/crates/brk_computer/src/stateful/common.rs))
- Implemented unrealized profit plus loss aggregation metrics for comprehensive holder analysis
- Created relative profitability metrics including ratios to own market cap and own unrealized profit plus loss
- Added multi-dimensional profit/loss analysis with separate positive and negative unrealized loss tracking
- Enhanced holder profitability analysis with extensive cross-referencing between different calculation methods

### Website Enhancements
#### Chart and Visualization
- Added new unit types for advanced profit/loss visualization: `%cmcap` (relative to own market cap) and `%cp+l` (relative to own unrealized profit plus loss)
- Enhanced price line functionality with configurable colors and line styles for improved chart customization
- Improved chart options with better visual distinction between different profitability metrics
- Added support for displaying complex relative profitability calculations with proper unit labeling

#### User Interface
- Enhanced chart configuration with more flexible price line customization options
- Improved data visualization clarity for sophisticated profit/loss analytics
- Better integration of advanced metrics into existing chart framework

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.94...v0.0.95)

## [v0.0.94](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.94) - 2025-08-28

### New Features
#### `brk_computer`
- Added comprehensive SOPR (Spent Output Profit Ratio) analytics with 7-day and 30-day exponential moving averages ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/stateful/common.rs))
- Implemented adjusted SOPR calculations with exponential moving averages for enhanced transaction profitability analysis
- Created sell-side risk ratio metrics with 7-day and 30-day exponential moving averages for advanced market risk assessment
- Enhanced unrealized profit/loss analytics with relative calculations to market cap for comprehensive holder analysis
- Added extended configuration options for stateful computations with improved flexibility and performance

### Website Transformation
#### Major Rebranding
- Complete rebrand from "default" to "bitview" with new domain reference (bitview.space) and professional identity
- Updated README and documentation to reflect new branding and simplified domain structure
- Reorganized website assets and structure for better organization and scalability

#### Progressive Web App (PWA) Implementation
- Added comprehensive PWA support with complete Apple touch icon and splash screen sets for all device sizes
- Implemented web app manifest with proper configuration for native app-like installation experience
- Created device-specific splash screens for optimal mobile user experience across iPhone and iPad variants
- Added proper PWA metadata and configuration for improved mobile usability

#### Asset and Structure Organization
- Moved website from `websites/default` to `websites/bitview` for better project organization
- Added modern font assets (GeistMono and Lilex) for improved typography and readability
- Reorganized packages and dependencies with better structure and maintainability
- Simplified TypeScript configuration and reduced development complexity

### Internal Changes
#### `brk_computer`
- Enhanced UTXO cohort analysis with improved parameter handling and configuration flexibility
- Streamlined stateful computation architecture with better organization of advanced metrics
- Improved computational efficiency for complex profit/loss and risk calculations

#### Development Workflow
- Simplified frontend development approach with reduced TypeScript complexity
- Improved asset management and build processes for better development experience
- Enhanced website configuration and deployment processes

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.93...v0.0.94)

## [v0.0.93](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.93) - 2025-08-26

### New Features
#### Website Screenshot Capabilities
- Added comprehensive screenshot functionality using modern-screenshot package for high-quality chart and data visualization capture ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/packages/modern-screenshot/wrapper.js))
- Implemented 2x scale rendering for crisp, professional-quality screenshot output
- Added automatic screenshot opening in new tabs with proper URL cleanup for optimal user experience

#### Chart Enhancement and Branding
- Added domain watermarking to charts for proper attribution and source identification ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/scripts/chart.js))
- Enhanced chart presentation with integrated branding for professional appearance
- Improved chart layout and visual organization for better data presentation

### Website Enhancements
#### User Interface Improvements
- Enhanced website styling with dedicated screenshot mode support for clean capture
- Improved visual presentation with better element spacing and layout optimization
- Added screenshot button integration with conditional display logic for better user experience

#### Package and Dependency Updates
- Updated ufuzzy dependency from v1.0.18 to v1.0.19 for improved search functionality
- Added modern-screenshot v4.6.6 package for advanced screenshot capabilities
- Enhanced package management with better organization and dependency handling

### Internal Changes
#### Development Workflow
- Streamlined TODO list by removing completed tasks and outdated development items
- Simplified project roadmap focus with cleaner task organization
- Improved development priorities and task tracking

#### Website Structure
- Enhanced HTML structure with better CSS organization for screenshot functionality
- Improved element styling and layout for optimal visual presentation
- Better integration of new features with existing website architecture

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.91...v0.0.93)

## [v0.0.91](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.91) - 2025-08-26

### New Features
#### `brk_computer`
- Added comprehensive Exponential Moving Average (EMA) calculations for all major timeframes matching SMA counterparts ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/market.rs))
- Implemented EMA support for 1w, 8d, 13d, 21d, 1m, 34d, 55d, 89d, 144d, 200d, 1y, 2y, 200w, and 4y periods
- Enhanced technical analysis capabilities with both Simple Moving Averages (SMA) and Exponential Moving Averages (EMA) for sophisticated trend analysis
- Added mathematical constants 144 and 600 for Bitcoin-specific calculations (blocks per day and standard analysis periods) ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/constants.rs))
- Simplified constants computation with loop-based implementation for better maintainability and performance

#### `brk_structs`
- Enhanced OHLC (Open, High, Low, Close) data structures with improved mathematical operations for better financial analysis
- Improved Sats and StoredF32 types with additional utility methods for enhanced precision in calculations

### Website Enhancements
#### Typography and Design
- Added Lilex font family for improved code readability and professional data presentation
- Enhanced typography with dedicated monospace font for better numeric data display and code visibility

#### Chart Configuration and Customization
- Enhanced price line creation with customizable naming capabilities for better chart personalization
- Improved average series configuration with optional title customization for clearer data presentation
- Better chart options organization with more intuitive naming conventions (e.g., "100K+ btc" instead of "100K btc+")
- Enhanced chart configuration flexibility with improved parameter handling

### Internal Changes
#### `brk_computer`
- Streamlined constants computation architecture with more efficient loop-based calculations
- Enhanced market analysis module with comprehensive EMA implementation alongside existing SMA calculations
- Improved ratio computations with better organization and performance optimizations

#### `brk_indexer`
- Enhanced indexer functionality with improved data processing capabilities
- Better integration with new constants and mathematical operations

#### Development Workflow
- Simplified TODO management with better task organization and priority tracking
- Enhanced development workflow with improved mathematical operations and constants handling

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.90...v0.0.91)

## [v0.0.90](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.90) - 2025-08-24

### Documentation
#### Release Management
- Converted "Unreleased" changelog section to properly formatted v0.0.89 release with comprehensive source code links
- Enhanced changelog structure with professional formatting and detailed feature documentation
- Added direct links to source code for all major features and architectural changes
- Improved documentation organization with better categorization and technical details

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.89...v0.0.90)

## [v0.0.89](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.89) - 2025-08-24

### Documentation
#### Comprehensive README Overhaul
- Enhanced comprehensive rewrite of all crate README files for improved clarity and developer experience across all workspace crates ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk/README.md))
- Updated main project README with better structure and comprehensive architecture documentation ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/README.md))
- Standardized README format across all workspace crates with consistent styling and improved developer experience
- Added more detailed descriptions for each crate's purpose and functionality with examples

### New Features
#### `brk_computer` - Major Refactoring
- Refactored ComputedFrom pattern to LazyFrom pattern for improved performance and memory efficiency ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/grouped/builder_lazy.rs))
- Added new LazyVecBuilder implementation for on-demand computation with support for first, average, sum, max, min, last, and cumulative operations
- Restructured Computer module stateful operations with improved organization and rollback functionality ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/stateful/mod.rs))
- Enhanced address type organization into dedicated module structure ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/stateful/addresstype/))
- Improved stateful rollback functionality for better error recovery and blockchain reorganization handling

#### `brk_structs`
- Added new StoredI16 data type for efficient 16-bit signed integer storage with compression support ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_structs/src/structs/stored_i16.rs))
- Enhanced StoredF32 with additional utility methods for mathematical operations ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_structs/src/structs/stored_f32.rs))

### Website Frontend
#### Package Management Overhaul
- Updated solid-signals from v0.3.2 to solidjs-signals v0.4.1 for improved reactivity and performance ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/websites/default/packages/solidjs-signals/))
- Enhanced frontend package management and dependency organization
- Improved chart rendering performance with updated signal library
- Reorganized package structure with better organization and maintainability

### Internal Changes
#### Build System
- Updated all crate versions from 0.0.88 to 0.0.89 across the workspace
- Enhanced Cargo.toml dependency management and version consistency ([source](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/Cargo.toml))
- Added comprehensive CHANGELOG.md with professional formatting and detailed documentation

#### Development Infrastructure
- Improved development workflow with better package management
- Enhanced project organization with standardized documentation structure
- Better integration between frontend and backend components

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.88...v0.0.89)

## [v0.0.88](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.88) - 2025-08-10

### Build System
#### Rust Environment Standardization
- Added explicit Rust version specification (1.89) to workspace configuration for consistent compilation across development environments
- Enhanced build reliability with standardized toolchain requirements
- Improved development environment consistency and reduced compilation variance

### Website Enhancements
#### SOPR Visualization Improvements
- Enhanced SOPR (Spent Output Profit Ratio) chart configuration with improved key handling and better code organization
- Added conditional display logic for adjusted SOPR (aSOPR) charts when data is available
- Improved chart organization with cleaner key generation and more robust data handling
- Better separation between standard SOPR and adjusted SOPR visualization options

### Internal Changes
#### Version Management
- Updated all crate versions from 0.0.87 to 0.0.88 across the workspace for consistent release management
- Enhanced workspace version coordination and dependency consistency

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.87...v0.0.88)


## [v0.0.87](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.87) - 2025-08-10

### Breaking Changes
- **Vector Storage Architecture Refactor**: Replaced internal `brk_vecs` crate with externalized `vecdb` crate, moving vector storage functionality to a separate project while maintaining the same core functionality ([Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.toml))

### Architecture Improvements
- **Crate Externalization**: Migrated vector storage implementation from internal `brk_vecs` and `brk_vecs_macros` to external `vecdb` and `vecdb_derive` crates, enabling independent development and versioning of the vector storage system
- **Sequential Database Foundation**: Added `seqdb` as the underlying sequential data storage engine powering the vector database functionality
- **Workspace Simplification**: Removed `brk_vecs` and `brk_vecs_macros` from the workspace, reducing codebase complexity and focusing on Bitcoin-specific functionality ([crates/brk/Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk/Cargo.toml))

### API Changes
- **Vector Interface Consistency**: Updated all vector references from `brk_vecs` to `vecdb` while maintaining identical API surface for seamless transition ([crates/brk/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk/src/lib.rs))
- **Documentation Updates**: Updated README and project documentation to reflect the new external vector database dependency ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/README.md))

### Development Experience
- **Modular Development**: Enables independent development of vector storage functionality separate from Bitcoin analysis logic
- **Local Development Support**: Added commented local path configuration for easier development workflow when working on both projects simultaneously

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.85...v0.0.87)

## [v0.0.85](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.85) - 2025-08-07

### Bug Fixes
- **Logging Filter Correction**: Fixed typo in logger filter configuration, changing `rmcp=off` to `brk_rmcp=off` to properly suppress unwanted logs from the RMCP protocol module ([crates/brk_logger/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/crates/brk_logger/src/lib.rs))

### Configuration Changes
- **MCP Server Configuration**: Removed stateful mode setting from MCP server configuration, enabling more flexible protocol handling and improved compatibility with different client implementations ([crates/brk_mcp/src/route.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/crates/brk_mcp/src/route.rs))

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.84...v0.0.85)

## [v0.0.84](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.84) - 2025-08-07

### Breaking Changes
- **Major Architecture Restructuring**: Complete reorganization of the codebase with extraction of core functionality into dedicated crates (`brk_structs`, `brk_error`) and comprehensive modularization of all components for better maintainability and reusability
- **Struct System Overhaul**: Moved all Bitcoin-related structures from `brk_core` to new `brk_structs` crate with enhanced grouping capabilities, comprehensive address types, and improved serialization support ([crates/brk_structs/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/lib.rs))

### New Features
- **Centralized Error Handling**: Introduced `brk_error` crate providing unified error handling across all BRK components with comprehensive error types for different subsystems ([crates/brk_error/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_error/src/lib.rs))
- **Advanced Address Analytics**: Enhanced address grouping system with comprehensive filtering capabilities including by address type, amount ranges, age ranges, epochs, terms, and spendable/unspendable classifications ([crates/brk_structs/src/groups/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/groups/mod.rs))
- **Vector Macro System**: Added `brk_vecs_macros` crate providing procedural macros for automated vector trait implementations and boilerplate reduction ([crates/brk_vecs_macros/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs_macros/src/lib.rs))
- **Enhanced Data Types**: Comprehensive Bitcoin data type system including transaction IDs, block hashes, raw locktime, version numbers, and specialized index types for all Bitcoin primitives ([crates/brk_structs/src/structs/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/structs/mod.rs))

### Architecture Improvements
- **Modular Design**: Complete separation of concerns with dedicated crates for different functionality areas, enabling better code organization and independent versioning
- **Build System Enhancement**: Added comprehensive build scripts across all crates with `cargo-dist` integration for automated release management and distribution ([.github/workflows/release.yml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/.github/workflows/release.yml))
- **Price Analysis**: New dedicated price analysis module with enhanced market data processing and price-to-amount state tracking ([crates/brk_computer/src/price.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_computer/src/price.rs))

### Developer Experience
- **Comprehensive Documentation**: Added README files and examples for all major crates, providing clear usage instructions and API documentation
- **Enhanced Examples**: Expanded example collection demonstrating various BRK components and usage patterns across all crates
- **Development Tools**: Improved development workflow with better build scripts, dependency management, and testing infrastructure

### Performance Improvements
- **Vector System**: Enhanced vector system with improved compression, better memory management, and optimized I/O operations through the redesigned `brk_vecs` architecture
- **State Management**: Improved state tracking with dedicated modules for block states, realized/unrealized values, supply tracking, and transaction analysis

### Infrastructure
- **CI/CD Enhancement**: Updated GitHub Actions workflow with improved Ubuntu runner (22.04) and enhanced release automation
- **Docker Improvements**: Enhanced Docker configuration with better environment handling and deployment options

### Social Media
- **Platform Updates**: Updated social media links removing outdated platforms and focusing on active community channels ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/README.md))

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.83...v0.0.84)

## [v0.0.83](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.83) - 2025-07-26

### New Features
- **Cross-Platform Hole Punching**: Added Linux support for file hole punching operations using `fallocate` system call, expanding platform compatibility beyond macOS for efficient sparse file management ([crates/brk_vecs/src/file/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.83/crates/brk_vecs/src/file/mod.rs))

### Performance Improvements
- **Platform-Specific Optimization**: Implemented platform-specific hole punching strategies with optimized system calls for both macOS (`fcntl` with `F_PUNCHHOLE`) and Linux (`fallocate`), improving storage efficiency and I/O performance on different operating systems

### Internal Changes
- **Code Organization**: Refactored hole punching implementation with unified `punch_hole_impl()` method that dispatches to platform-specific implementations, improving code maintainability and reducing duplication
- **Error Handling**: Enhanced error handling for unsupported platforms with clear error messages for hole punching operations

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.82...v0.0.83)

## [v0.0.82](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.82) - 2025-07-26

### Breaking Changes
- **Vector System Refactoring**: Replaced `brk_vec` with new `brk_vecs` crate, introducing a completely redesigned vector storage system with improved file layouts, better compression, and enhanced performance characteristics ([crates/brk_vecs/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/lib.rs))

### New Features
- **Advanced Vector Architecture**: Introduced comprehensive vector system with multiple storage variants including `RawVec`, `CompressedVec`, `ComputedVec`, `EagerVec`, `LazyVec`, and `StampedVec` for different use cases and performance requirements ([crates/brk_vecs/src/variants/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/mod.rs))
- **File-Based Storage**: New file-based storage system with dedicated `File` and `Reader` implementations, featuring page-based architecture and memory mapping for efficient disk I/O ([crates/brk_vecs/src/file/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/mod.rs))
- **Stamped Vectors**: Added timestamped vector support with `StampedVec` and `Stamp` structures for versioned data management and temporal analysis ([crates/brk_vecs/src/variants/stamped/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/stamped/mod.rs))

### Architecture Improvements
- **Lazy Computation**: Enhanced lazy evaluation system with support for 1, 2, and 3-source computed vectors, enabling complex data transformations with minimal memory overhead ([crates/brk_vecs/src/variants/lazy/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/lazy/mod.rs))
- **Compression Optimization**: Redesigned compression system with page-based metadata management and improved compression ratios for large datasets ([crates/brk_vecs/src/variants/compressed/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/compressed/mod.rs))
- **Type System Enhancement**: Improved trait system with dedicated interfaces for different vector operations, providing better type safety and performance ([crates/brk_vecs/src/traits/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/traits/mod.rs))

### Performance Improvements
- **Build Optimization**: Updated build scripts to focus on release builds for better performance in production deployments ([update.sh](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/update.sh))
- **Memory Management**: Enhanced memory usage patterns with better file mapping strategies and reduced memory footprint for large-scale Bitcoin data processing

### Infrastructure
- **Comprehensive Examples**: Added extensive examples demonstrating various vector types and usage patterns for better developer onboarding ([crates/brk_vecs/examples/](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/examples/))
- **Documentation**: Enhanced documentation with detailed explanations of vector architectures and storage strategies

### Internal Changes
- **Address Handling**: Improved address byte hash management and height-based indexing for better address analytics performance
- **Group Processing**: Enhanced address and UTXO grouping capabilities with better filtering and processing mechanisms
- **Error Handling**: Refined error handling throughout the vector system for more robust data operations

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.81...v0.0.82)

## [v0.0.81](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.81) - 2025-07-17

### Breaking Changes
- **Computer Module Restructuring**: Major reorganization of the computer module from nested `vecs` structure to flat module layout, moving vector implementations directly into separate modules (`all`, `blocks`, `cointime`, `constants`, `fetched`, `grouped`, `indexes`, `market`, `mining`, `stateful`, `transactions`) for better maintainability ([crates/brk_computer/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/lib.rs))

### New Features
- **Docker Support**: Added comprehensive Docker setup with Dockerfile, docker-compose configuration, environment templates, and detailed documentation for containerized BRK deployment ([docker/README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/README.md))
- **Address Index System**: Implemented new address indexing architecture with `AnyAddressIndex`, `EmptyAddressIndex`, and `LoadedAddressIndex` structures for more efficient address data management ([crates/brk_core/src/structs/anyaddressindex.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/structs/anyaddressindex.rs))
- **Enhanced Address Grouping**: Added comprehensive address filtering and grouping capabilities with `by_address_type`, `by_any_address`, and flexible filter systems ([crates/brk_core/src/groups/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/groups/mod.rs))

### Architecture Improvements
- **Stateful Processing**: Enhanced stateful vector processing with dedicated traits and improved address data source handling ([crates/brk_computer/src/stateful/trait.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/stateful/trait.rs))
- **Address Analytics**: Added sophisticated address counting and analysis capabilities with support for different address types and cohort analysis
- **Module Organization**: Flattened module hierarchy eliminating nested structures for clearer code organization and easier navigation

### Infrastructure
- **Container Deployment**: Full Docker containerization support with multi-stage builds, environment configuration, and production-ready setup
- **Build Optimization**: Enhanced build scripts and profiling tools for better development workflow

### Documentation
- **Website Updates**: Added `brekit.org` as primary domain in README alongside existing mirrors ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/README.md))
- **Docker Guide**: Comprehensive Docker setup and deployment documentation with prerequisites, configuration, and usage instructions

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.80...v0.0.81)

## [v0.0.80](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.80) - 2025-07-13

### Performance Improvements
- **Vector Length Caching**: Added local length caching in raw vectors with `local_stored_len` field, reducing atomic operations and improving read performance by storing frequently accessed length values locally ([crates/brk_vec/src/variants/raw.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/raw.rs))

### API Enhancements
- **Length Management**: Introduced `set_stored_len()` method for direct length management, providing better control over vector metadata and synchronization between local and shared length values

### Documentation
- **README Cleanup**: Removed detailed AI example links from main README to streamline content and focus on core functionality, improving readability and reducing maintenance overhead ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/README.md))
- **MCP Documentation**: Added dedicated README for Model Context Protocol integration with comprehensive usage examples and setup instructions ([crates/brk_mcp/README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_mcp/README.md))

### Internal Changes
- **Vector Architecture**: Enhanced raw and compressed vector implementations with improved length tracking mechanisms for better performance and consistency

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.79...v0.0.80)

## [v0.0.79](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.79) - 2025-07-13

### Performance Improvements
- **File Handle Optimization**: Reduced minimum file handle limit from 250,000 to 10,000, significantly lowering system resource requirements while maintaining adequate file access for most Bitcoin datasets ([crates/brk_core/src/utils/rlimit.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_core/src/utils/rlimit.rs))

### Breaking Changes
- **Vector Memory Architecture**: Replaced `ArcSwap<Mmap>` with `Arc<AtomicUsize>` for stored length tracking in raw vectors, eliminating memory mapping overhead and improving concurrent access patterns while reducing memory usage ([crates/brk_vec/src/variants/raw.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_vec/src/variants/raw.rs))

### Internal Changes
- **Vector Storage Simplification**: Removed arc-swap dependency from vector variants, streamlining memory management and reducing complexity in concurrent scenarios
- **Store Integration**: Enhanced indexer store integration with better error handling and resource management
- **Header Management**: Improved vector header handling for more efficient metadata operations

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.78...v0.0.79)

## [v0.0.78](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.78) - 2025-07-13

### New Features
- **Semester Index Support**: Added `SemesterIndex` struct for 6-month interval datasets, enabling bi-annual analysis of Bitcoin metrics with proper serialization and mathematical operations ([crates/brk_core/src/structs/semesterindex.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/structs/semesterindex.rs))
- **Enhanced Vector Architecture**: Refactored vector computation infrastructure with improved `VecBuilderOptions` and `Source` handling for more flexible dataset generation ([crates/brk_computer/src/vecs/grouped/builder_computed.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/grouped/builder_computed.rs))

### Architecture Improvements
- **Vector Builder Refactoring**: Renamed `StorableVecGeneatorOptions` to `VecBuilderOptions` for better naming consistency and enhanced vector generation capabilities
- **Cointime Integration**: Enhanced cointime computation with better indexing support and computation parameter handling
- **Profiling Tools**: Added dedicated flamegraph and samply profiling scripts for the computer module to aid performance analysis

### Development Experience
- **Documentation Updates**: Expanded TODO list with additional feature requests including chopiness datasets, reused address analytics, z-score chart improvements, and HTTPS support
- **Profiling Support**: Added flamegraph.sh and samply.sh scripts to the computer module for better performance debugging capabilities

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.76...v0.0.78)

## [v0.0.76](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.76) - 2025-07-09

### Build System Updates
- **Rolldown Bundler**: Updated `brk_rolldown` from 0.1.0 to 0.1.1 with improvements across all bundler components including enhanced ECMAScript utilities, better plugin architecture, and improved string manipulation capabilities ([crates/brk_bundler/Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/crates/brk_bundler/Cargo.toml))

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.75...v0.0.76)

## [v0.0.75](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.75) - 2025-07-09

### Performance Improvements
- **Chunk Size Optimization**: Adjusted parallel processing chunk size from length/4 to length/3, increasing parallelization granularity for better performance on high-end storage systems while maintaining external drive protection ([crates/brk_computer/src/vecs/stateful/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.75/crates/brk_computer/src/vecs/stateful/mod.rs))

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.74...v0.0.75)

## [v0.0.74](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.74) - 2025-07-09

### Performance Improvements
- **Parallel Processing Optimization**: Refactored stateful vector computation to use chunked parallel processing with controlled chunk sizes (length/4) instead of unbounded parallelization, preventing external drive bottlenecks and improving performance on Thunderbolt 4 SSDs ([crates/brk_computer/src/vecs/stateful/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/vecs/stateful/mod.rs))
- **Thread Scope Elimination**: Replaced complex thread scope management with streamlined Either-based collection processing, reducing threading overhead and improving memory usage patterns during computation

### Bug Fixes
- **Memory Table Rotation Logging**: Fixed missing log message for memory table rotation operations, improving debugging and monitoring capabilities during store operations ([crates/brk_computer/src/stores.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/stores.rs))

### Internal Changes
- **Computation Architecture**: Unified UTXO and address vector processing using Either enum for type-safe handling of different vector types while maintaining performance through parallel iteration
- **Chunk-based Processing**: Implemented intelligent chunking strategy to prevent overwhelming external storage devices while maintaining parallelization benefits

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.73...v0.0.74)

## [v0.0.73](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.73) - 2025-07-09

### Breaking Changes
- **Architecture Restructuring**: Removed `brk_state` crate entirely, consolidating its functionality into `brk_computer` with direct store and serialization dependencies, simplifying the overall architecture and reducing module complexity
- **Build System Upgrade**: Updated `brk_rolldown` bundler from 0.0.1 to 0.1.0 with significant API changes including removal of deprecated loader utilities and addition of hot module replacement support

### New Features
- **Hot Module Replacement**: Added HMR plugin support for improved development experience with live code updates and faster iteration cycles during bundling operations
- **Advanced Hashing**: Integrated Blake3 hashing algorithm for improved performance in debug operations and file integrity verification

### Internal Changes
- **Computer Module Enhancement**: Added bincode serialization, zerocopy optimizations, and derive_deref functionality directly to the computer module for better performance
- **Store Integration**: Enhanced store module with logging capabilities for better debugging and monitoring
- **Plugin Architecture**: Expanded bundler plugin system with data URI support and improved ECMAScript utilities

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.71...v0.0.73)

## [v0.0.71](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.71) - 2025-06-25

### New Features
- **Enhanced Schema Documentation**: Added comprehensive descriptions to all Index enum variants and API parameters, providing clear explanations for date/day index, height/block index, transaction indexes, address types, and time periods for better API usability ([crates/brk_interface/src/index.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_interface/src/index.rs), [crates/brk_interface/src/params.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_interface/src/params.rs))

### API Changes
- **MCP Tool Modernization**: Upgraded Model Context Protocol implementation to use new `tool_router` and `Parameters` wrapper for better type safety and parameter handling, replacing legacy `tool_box` approach ([crates/brk_mcp/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_mcp/src/lib.rs))
- **Endpoint Renaming**: Renamed `get_variant_count` to `get_vec_count` for better consistency with API terminology

### Internal Changes
- **Development Flexibility**: Added commented local development path for `brk_rmcp` to facilitate easier testing and development workflows

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.70...v0.0.71)

## [v0.0.70](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.70) - 2025-06-24

### New Features
- **Model Context Protocol Default**: Enabled MCP (Model Context Protocol) by default for LLM integration, changing from opt-in to opt-out behavior to make AI-powered Bitcoin data analysis more accessible ([crates/brk_cli/src/config.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_cli/src/config.rs))

### API Changes
- **Simplified Endpoints**: Streamlined API endpoints by replacing complex query parameters with dedicated paths (`/height-to-ohlc` and `/dateindex-to-ohlc`) for cleaner and more intuitive data access ([crates/brk_fetcher/src/brk.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_fetcher/src/brk.rs))

### Internal Changes
- **Module Restructuring**: Flattened fetcher module structure by moving fetcher implementations directly into the main crate, eliminating nested module hierarchy for better maintainability
- **Documentation**: Updated API badge URL to reflect new vec-count endpoint and improved MCP tool description clarity ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/README.md))
- **Code Cleanup**: Removed commented debug code and unused file handle references from raw vector implementation

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.69...v0.0.70)

## [v0.0.69](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.69) - 2025-06-24

### Performance Improvements
- **Vector Initialization Optimization**: Removed thread-based parallel initialization of indexes and fetched vectors, replacing with sequential initialization to reduce overhead and improve memory usage patterns during startup ([crates/brk_computer/src/vecs/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_computer/src/vecs/mod.rs))
- **File Handle Management**: Refactored vector file handling architecture to use on-demand file opening instead of persistent file handles, reducing memory footprint and file descriptor usage ([crates/brk_vec/src/variants/raw.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/variants/raw.rs))

### Internal Changes
- **Resource Limit Adjustment**: Reverted file handle limit back to 210,000 from 420,000, optimizing for more conservative resource usage
- **Header Write Logic**: Simplified vector header writing by removing conditional logic and always performing write operations when needed, improving code clarity and reducing potential race conditions ([crates/brk_vec/src/structs/header.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/structs/header.rs))
- **Memory Map Updates**: Refactored memory map update logic to accept file references directly, eliminating need for persistent file handle storage and improving resource management
- **Code Cleanup**: Removed unused imports and simplified vector trait implementations for better maintainability

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.68...v0.0.69)

## [v0.0.68](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.68) - 2025-06-24

### New Features
- **CLI Version Information**: Added version command support to CLI configuration, enabling users to check the current version of BRK directly from the command line ([crates/brk_cli/src/config.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.68/crates/brk_cli/src/config.rs))

### Performance Improvements
- **File Handle Limits**: Doubled the minimum file handle limit from 210,000 to 420,000 to accommodate larger Bitcoin datasets and prevent resource exhaustion during intensive blockchain processing operations ([crates/brk_core/src/utils/rlimit.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.68/crates/brk_core/src/utils/rlimit.rs))

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.67...v0.0.68)

## [v0.0.67](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.67) - 2025-06-24

### New Features
- **Data Interface Layer**: Added `brk_interface` crate providing a comprehensive data interface layer with serialization, schema generation, and tabular formatting capabilities for exporting datasets in multiple formats (JSON, CSV, TSV, Markdown)
- **Model Context Protocol Support**: Introduced `brk_mcp` crate implementing Model Context Protocol (MCP) for seamless integration with Large Language Models, enabling AI-powered Bitcoin data analysis and querying
- **External MCP Integration**: Added `brk_rmcp` external dependency for robust MCP client/server communication capabilities

### Breaking Changes
- **Dependency Restructuring**: Removed direct `brk_query` dependency from CLI, replaced with modular `brk_interface` and `brk_mcp` architecture for better separation of concerns
- **Storage Simplification**: Removed `arc-swap` and `fjall` dependencies from `brk_state`, streamlining state management architecture

### Internal Changes
- **Build System**: Added auto-generated `vecid-to-indexes.js` file to gitignore to prevent version control conflicts
- **Documentation Updates**: Updated historical changelog entries to reflect correct repository URLs and asset paths, migrating from kibo-money references to bitcoinresearchkit organization
- **Dependency Updates**: Updated multiple core dependencies including `async-compression`, `autocfg`, `errno`, and `syn` to their latest versions for improved performance and compatibility

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.66...v0.0.67)

## [v0.0.66](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.66) - 2025-06-19

### New Features
- **Cointime Analysis**: Added comprehensive cointime economic metrics including coinblocks creation/storage tracking, liveliness and vaultedness calculations, activity ratios, and specialized price metrics (vaulted price, active price, true market mean, cointime price) with corresponding market cap calculations ([crates/brk_computer/src/vecs/cointime.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/cointime.rs))
- **Advanced Supply Analysis**: Implemented vaulted and active supply tracking with dollar value computations, enabling analysis of Bitcoin storage behavior and economic activity patterns

### Documentation
- **CLI Documentation**: Improved CLI README with better formatting, clearer installation instructions, enhanced usage examples, and restructured content with proper markdown syntax and information blocks ([crates/brk_cli/README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_cli/README.md))
- **Installation Guidance**: Added prominent installation notes for Ubuntu users and improved download section formatting with better link formatting and structure

### Internal Changes
- **Ratio Analysis Integration**: Connected cointime price metrics with ratio analysis system for comprehensive trend analysis across vaulted price, active price, true market mean, and cointime price ratios

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.65...v0.0.66)

## [v0.0.65](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.65) - 2025-06-17

### Bug Fixes
- **Chart Data Update Logic**: Simplified chart data update algorithm by removing complex comparison logic and replacing it with a streamlined approach that updates all data points at or after the last known time, significantly reducing complexity and potential update conflicts ([websites/default/packages/lightweight-charts/wrapper.js](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/websites/default/packages/lightweight-charts/wrapper.js))

### Internal Changes
- **Cohort Analysis Versioning**: Incremented version numbers for cumulative net realized profit/loss metrics from VERSION::TWO to VERSION::new(3), ensuring proper cache invalidation and data consistency for cohort analysis computations ([crates/brk_computer/src/vecs/stateful/cohort.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/crates/brk_computer/src/vecs/stateful/cohort.rs))

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.64...v0.0.65)

## [v0.0.64](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.64) - 2025-06-17

### New Features
- **4-Year Statistical Analysis**: Added comprehensive 4-year moving averages and standard deviation calculations for ratio analysis, enabling long-term trend analysis with `ratio_4y_sma`, `ratio_4y_sd`, and `ratio_4y_zscore` metrics ([crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs))
- **Z-Score Computation Optimization**: Refactored z-score calculations to use a dedicated `compute_zscore()` method, improving code maintainability and performance by centralizing statistical computations

### Internal Changes
- **Vector Naming Convention**: Renamed `ratio_standard_deviation` to `ratio_sd` for consistency with other abbreviated metric names
- **Statistical Method Extraction**: Extracted z-score computation logic into reusable methods, reducing code duplication and improving mathematical accuracy
- **Vector Builder Enhancement**: Added conditional naming logic in grouped vector builder for better handling of sum operations with optional suffixes

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.63...v0.0.64)

## [v0.0.63](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.63) - 2025-06-16

### New Features
- **Static File Caching**: Implemented intelligent HTTP caching strategy for static assets, setting immutable cache headers for long-term assets (images, fonts, JavaScript, map files) and must-revalidate headers for HTML and service worker files to ensure optimal performance and cache invalidation ([crates/brk_server/src/files/file.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.63/crates/brk_server/src/files/file.rs))
- **Progressive Web App Assets**: Added comprehensive PWA assets including Apple Touch icons, splash screens for all iOS device sizes and orientations, and maskable icons for Android, enabling native app-like experience across all mobile platforms

### Internal Changes
- **File Extension Detection**: Refactored file extension checking from string-based `ends_with()` pattern matching to more robust `Path::extension()` method for better accuracy and maintainability
- **Cache Logic Simplification**: Consolidated cache control logic by removing redundant file path checks and grouping related file types for cleaner code organization

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.62...v0.0.63)

## [v0.0.62](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.62) - 2025-06-16

### Bug Fixes
- **TypeScript Bridge Generation**: Fixed JavaScript/TypeScript bridge generation by properly handling optional return values when reading hashed main.js entry files, preventing crashes when entry files don't exist ([crates/brk_bundler/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/crates/brk_bundler/src/lib.rs))
- **TypeScript Type Generation**: Restructured TypeScript type definitions for VecIdToIndexes, moving typedef comments outside function declaration for proper type recognition ([crates/brk_server/src/api/query/bridge.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/crates/brk_server/src/api/query/bridge.rs))

### New Features
- **Chart Time Scale Optimization**: Improved time scale spacing for different chart time periods with more balanced bar spacing (quarters: 3→2, years: 12→6, decades: 120→60) for better visual density ([websites/default/packages/lightweight-charts/wrapper.js](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/websites/default/packages/lightweight-charts/wrapper.js))
- **Progressive Web App Support**: Added service worker scope configuration and improved PWA manifest handling for better standalone app experience

### Internal Changes
- **Chart Data Processing**: Refactored chart data handling to use object destructuring instead of arrays, improving code clarity and type safety in effect callbacks
- **HTML Standards**: Updated HTML5 DOCTYPE declaration and improved syntax consistency
- **Error Handling**: Added try-catch protection for localStorage operations to prevent crashes in restricted environments

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.61...v0.0.62)

## [v0.0.61](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.61) - 2025-06-15

### New Features
- **OHLC Price Continuity**: Added logic to maintain price continuity between days in OHLC data computation by setting today's opening price to the previous day's closing price, ensuring no gaps in price series when computing daily OHLC from fetched data ([crates/brk_computer/src/vecs/fetched.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.61/crates/brk_computer/src/vecs/fetched.rs))

### Internal Changes
- **Struct Mutability**: Added `DerefMut` trait to all OHLC struct variants (OhlcF64, OhlcBtc, OhlcSats, OhlcUsd) enabling mutable access to underlying values
- **Error Handling**: Improved file creation error handling in block recap export with more descriptive panic messages

[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.59...v0.0.61)
