# Changelog
All notable changes to `ic-query` will be documented in this file.
The format follows [Keep a Changelog](https://keepachangelog.com/), and this
crate follows [Semantic Versioning](https://semver.org/).
Root entries are concise release summaries. Detailed patch breakdowns live in
`docs/changelog/<major>.<minor>.md` and are linked from each minor line when
present.
## Unreleased
## [0.2.x] - 2026-06-16 - SNS proposal detail expansion
Detailed patch breakdown: [docs/changelog/0.2.md](docs/changelog/0.2.md)
- `0.2.2` adds `icq sns proposals --topic <topic>` to filter bounded live SNS
governance proposal listings by SNS topic, reports the selected filter, and
tightens request-mapping coverage for unfiltered versus concrete topic
selectors.
```sh
icq sns proposals 1 --topic any
icq sns proposals 1 --topic governance
icq sns proposals 1 --topic treasury-asset-management --format json
```
- `0.2.1` centralizes cached NNS leaf cache errors and JSON cache helpers,
removes duplicated cache-error macro plumbing, and tightens command/test
module hygiene.
```sh
icq nns node list
icq nns node-provider refresh
icq sns neurons 1 --owner 2vxsx-fae --sort api
```
- `0.2.0` adds direct SNS proposal ballot table output with compact neuron IDs
by default and full IDs under `--verbose`.
```sh
icq sns proposal 1 387 --ballots
icq sns proposal 1 387 --ballots --verbose
```
## [0.1.x] - 2026-06-13 - Snapshot cache and SNS query growth
Detailed patch breakdown: [docs/changelog/0.1.md](docs/changelog/0.1.md)
- `0.1.49` simplifies topology read command runners and option tests, and
splits NNS macro plumbing into focused modules.
- `0.1.48` centralizes CLI help/version argument collection, NNS/SNS clap
usage-error mapping, cached NNS leaf runtime setup, and SNS neuron cache
command setup.
- `0.1.47` centralizes compact-vs-verbose text/JSON writing for NNS list
commands, passthrough subcommand-argument extraction for clap dispatch, and
NNS node/subnet runtime cache-request setup.
- `0.1.46` centralizes SNS lookup-command runtime fields for info, token,
params, proposal, proposals, neurons, and neuron refresh commands, plus
shared CLI, SNS, and NNS command args/help/version handling.
- `0.1.45` removes remaining production wildcard imports and centralizes
clap parse-to-usage, help/version handling, and NNS project-root usage-error
handling for command dispatch and option parsers.
- `0.1.44` replaces wildcard module re-exports across SNS, cached NNS report
roots, subnet catalog reports, and topology fixtures with explicit export
lists.
- `0.1.43` adds a shared NNS leaf refresh-cache writer and migrates node,
node-provider, node-operator, data-center, and topology cache-request
adapters onto shared NNS leaf cache helpers.
- `0.1.42` extracts shared locked, paged snapshot refresh and
attempt-lifecycle orchestration, centralizes SNS neuron attempt writers, and
migrates SNS neuron complete-refresh paging onto the generic runners.
- `0.1.41` extracts shared snapshot JSON loading/writing, header validation,
refresh-attempt, and full-collection path scanning helpers and migrates SNS
neuron cache reads, writes, and attempts onto them.
- `0.1.40` extracts shared snapshot-cache key, path, envelope, completeness,
and paged-collection state helpers and migrates SNS neuron complete snapshots
onto them without changing cache JSON shape.
- `0.1.39` splits SNS report source, lookup, live fetch, text helpers, neuron
models, neuron cache collection, and live proposal conversion helpers into
focused modules.
- `0.1.38` splits NNS component text rendering plus topology text, relation,
refresh, gap, and derived report helpers into focused modules.
- `0.1.37` splits NNS registry, node, and cached component report roots into
focused build, source, model, text, and refresh modules.
- `0.1.36` splits shared NNS leaf command/option/runtime helpers plus NNS
component command, runtime, spec, and report-adapter wiring into focused
modules.
- `0.1.35` splits SNS params text, SNS neuron command plumbing, and NNS
topology provider/command/option plumbing into focused modules.
- `0.1.34` splits live SNS Candid wire types and proposal text rendering into
focused modules.
- `0.1.33` splits SNS text/build orchestration and NNS topology build/read
orchestration into focused modules.
- `0.1.32` splits SNS neuron-cache storage, refresh, report, attempt, and
collection handling into focused modules.
- `0.1.31` splits shared cache-file JSON, refresh-lock, and write helpers into
focused modules.
- `0.1.30` splits subnet catalog list text rendering, classification model
enums, and root catalog helpers into focused modules.
- `0.1.29` splits subnet catalog resolver and report model definitions into
focused modules.
- `0.1.28` splits IC registry live-source, relation-inventory fetch
orchestration, and public registry models into focused modules.
- `0.1.27` splits IC registry transport helpers, relation helpers, and
relation inventory tests into focused modules.
- `0.1.26` splits IC registry protobuf wire types and registry domain
projection mappers into focused modules.
- `0.1.25` continues NNS cleanup by splitting cached leaf report model roots
plus topology runtime and request wiring into focused modules.
- `0.1.24` continues module cleanup by splitting subnet catalog tests, models,
and text rendering plus NNS topology clap command construction into focused
modules.
- `0.1.23` decomposes NNS topology report models, provider/summary assembly,
and shared topology fixtures into focused modules.
- `0.1.22` splits cached NNS leaf report roots and subnet catalog host/report
support while preserving existing cache and report behavior.
- `0.1.21` splits major NNS, SNS, registry, subnet catalog, and neuron-cache
test and orchestration modules into focused files.
- `0.1.20` splits SNS report assembly, report-root orchestration, and SNS
report tests by command family and cache behavior.
- `0.1.19` splits live SNS fetch, conversion, and report model wiring for
deployed SNSes, tokens, governance parameters, proposals, and neurons.
- `0.1.18` splits the custom NNS node command and SNS command runtime, clap,
and parser modules without changing command behavior.
- `0.1.17` deduplicates standard cached NNS leaf report adapters and reuses a
shared mainnet-only network guard.
- `0.1.16` centralizes cached NNS leaf cache paths, refresh-lock paths, JSON
cache error mapping, refresh text rendering, and shared JSON cache reports.
- `0.1.15` hardens cache writes, refresh locks, SNS neuron cache paths,
command-output helpers, and panic-prone timestamp/subnet internals.
- `0.1.14` splits live SNS, NNS topology/subnet CLI, SNS command specs,
cache-file support, subnet catalog request/report, and neuron-cache modules.
- `0.1.13` tightens shared NNS leaf helpers, JSON cache providers, topology
dispatch, and SNS lookup result types.
- `0.1.12` splits IC registry relation inventory fetching and async
live-source querying out of broader registry modules.
- `0.1.11` decomposes IC registry adapters, wire types, transport helpers,
relation inventory helpers, domain projections, and annotations.
- `0.1.10` splits NNS component report text/model modules and NNS topology
helper/rendering modules.
- `0.1.9` splits SNS command, report, cache, and live source modules and
renames the live SNS source to match its broader role.
- `0.1.8` splits SNS neuron cache model/path helpers and live SNS Candid plus
conversion helpers.
- `0.1.7` corrects release target boundaries, tightens package/publish
requirements, and splits NNS topology aggregation modules.
- `0.1.6` hardens SNS neuron snapshot cache coverage, splits cache mechanics,
deduplicates request construction, and normalizes Rust module layout.
- `0.1.5` splits SNS command dispatch and text rendering, deduplicates live SNS
Candid queries, and reuses shared command helpers.
- `0.1.4` adds bounded SNS governance proposal listings and direct proposal
detail lookup commands.
- `0.1.3` adds local SNS neuron snapshot cache inspection commands and fixes
cache-backed neuron sorts to avoid unnecessary live fetches.
- `0.1.2` deduplicates SNS lookup plumbing, moves duration formatting into a
helper, splits SNS report internals, and preserves failed refresh metadata.
- `0.1.1` adds SNS nervous system parameter lookup and shared token/e8s amount
rendering.
- `0.1.0` introduces complete SNS neuron snapshots, cache-backed neuron sorts,
refresh progress output, and Canic-style release helper commands.
## [0.0.x] - 2026-06-13 - Initial IC query extraction
Detailed patch breakdown: [docs/changelog/0.0.md](docs/changelog/0.0.md)
- `0.0.9` adds bounded SNS neuron listings, 0.1 snapshot-cache design docs,
and stricter SNS lookup validation.
- `0.0.8` adds SNS token metadata lookup, stable SNS-W numeric ids, logo
payload hiding, and long-value table fixes.
- `0.0.7` deduplicates cached NNS leaf command plumbing and topology read
request construction.
- `0.0.6` deduplicates cached NNS leaf dispatch and splits topology read
parsing plus report request/model code.
- `0.0.5` lets clap render top-level help and uses clap range validation for
subnet list limits.
- `0.0.4` adds release helpers, SNS metadata fallback visibility, SNS list
sorting, CLI smoke tests, cache-write hardening, and NNS/SNS query cleanup.
- `0.0.3` adds SNS list/info lookups, groups NNS commands under `src/nns/`,
renames the local cache directory to `.icq/`, and updates README positioning.
- `0.0.1` creates the `icq` executable, extracts the former Canic NNS query
surface, and adds read-only text/JSON metadata reports.