wavepeek 0.4.0

Command-line tool for RTL waveform inspection with deterministic machine-friendly output.
Documentation
# Roadmap

This document captures planned milestone scope and expected feature delivery.
It is intentionally forward-looking and may change as priorities evolve.

For factual release outcomes (what actually shipped), use `CHANGELOG.md`.

### Project Setup (→ v0.1.0)

- Rust project init (Cargo.toml, dependencies per §5.4, module structure per §5.3)
- Stub module layout with `todo!()` placeholders
- CLI entry point via `clap` with subcommand skeleton and `--help` only
- Makefile targets: `make format`, `make format-check`, `make lint`, `make test`, `make check`
- Pre-commit hooks for rustfmt, clippy, cargo check, and cargo test
- GitHub Actions CI pipeline for format check, clippy, test, and build
- Tag-triggered release pipeline for binary builds and GitHub Releases

### Core CLI (→ v0.2.0)

- `info` command (§3.2.1)
- `scope` command (§3.2.2)
- `signal` command (§3.2.3)
- VCD + FST format support
- Human-readable default output for all commands with explicit `--json` contract mode
- `tree` and `modules` command surfaces replaced by `scope` (no aliases)
- `schema` command for canonical JSON Schema export
- Canonical schema artifact at `schema/wavepeek.json` with `make update-schema`
- JSON envelope metadata migrated from `schema_version` to versioned `$schema` URLs
- Structured error handling: `WavepeekError`, exit codes, stderr format (§5.6)
- Handcrafted VCD test fixtures
- Integration tests with `assert_cmd`

### Value Extraction (→ v0.3.0)

- `value` command (§3.2.4)
- `change` command — unified `--on` trigger model (default `*`, edge/signal expressions) (§3.2.5)
- Time parsing with mandatory units (`--from`, `--to`, `--at`)
- Expanded container-provisioned fixtures for value extraction scenarios
- CLI agent skill for Wavepeek workflows
- Performance benchmark suite

### Query Engine (→ v0.4.0)

- Standalone typed expression engine foundation with strict parser, typed
  binder, deterministic diagnostics, and standalone event/logical eval APIs.
- Standalone rich-type surface closure for `real`, `string`, enum-label
  references, operand-type casts, raw-event `triggered()`, and full logical
  `iff` support in standalone evaluation.
- Shared typed command runtime for `change` and `property`, including the public
  `property` runtime (§3.2.6) and schema/output parity on top of the same
  expression engine.

### Query Engine Enhancements (→ v0.5.0)

- Post-integration hardening after typed command convergence: keep `change`
  and `property` on the shared typed runtime, maintain the shipped `property`
  JSON/human contracts, and extend parity/benchmark guardrails for follow-on
  optimization work.

### MCP Server (→ v0.6.0)

- MCP server for agent integration

### Unmapped

- Proprietary dump formats (FSDB, VPD, WLF)
- Signed comparisons in the expression engine