Major enhancements: - Added production-grade durability guarantees with fsync operations - Implemented BadgerDB WAL for crash recovery and persistence - Added comprehensive HTTP API (GET/POST /state, POST /command) - Exported ComputeStateHash for external use in genesis initialization - Enhanced snapshot system with atomic write-fsync-rename sequence - Added API integration documentation and durability guarantees docs New files: - api.go: HTTP server implementation with state and command endpoints - api_test.go: Comprehensive API test suite - badger_wal.go: BadgerDB-based write-ahead log - cmd/swoosh/main.go: CLI entry point with API server - API_INTEGRATION.md: API usage and integration guide - DURABILITY.md: Durability guarantees and recovery procedures - CHANGELOG.md: Version history and changes - RELEASE_NOTES.md: Release notes for v1.0.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
# SWOOSH Change Log
|
||
All notable changes to this project will be documented in this file.
|
||
|
||
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and adheres to [Semantic Versioning](https://semver.org/).
|
||
|
||
---
|
||
|
||
## [Unreleased]
|
||
|
||
### Planned
|
||
- Metrics endpoint (`/metrics`) for transition throughput, WAL size, snapshot count.
|
||
- GuardProvider extensions:
|
||
- Quorum validation
|
||
- License enforcement
|
||
- BACKBEAT cadence checks
|
||
- Integration with HMMM message envelopes (age-encrypted TransitionProposal transport).
|
||
- Catalog governance automation (generate YAML catalog from reducer.go).
|
||
|
||
---
|
||
|
||
## [1.0.0] – 2025-10-25
|
||
### Added
|
||
- **Deterministic core architecture** (reducer + executor + WAL + snapshot + replay).
|
||
- **HTTP adapter layer** for CHORUS compatibility:
|
||
- `/transition`, `/state`, `/health`
|
||
- WHOOSH compatibility stubs returning 501.
|
||
- **BadgerDB WAL store** with fsync per append; replay-safe ordering.
|
||
- **Atomic snapshot writer** using fsync + rename semantics.
|
||
- **Determinism tests** (`TestDeterministicReplay`, `TestQuarantineEnforced`).
|
||
- **Integration guide** (`API_INTEGRATION.md`) for CHORUS commit 17673c3.
|
||
- **Durability documentation** (`DURABILITY.md`) covering fsync points and crash recovery.
|
||
- **Production bootstrap** (`cmd/swoosh-server/main.go`) with recovery from WAL + snapshot.
|
||
|
||
### Changed
|
||
- Exported `ComputeStateHash()` from reducer for verification in replay and tests.
|
||
|
||
### Fixed
|
||
- N/A — initial stable release.
|
||
|
||
### Security
|
||
- Single-writer executor prevents race-condition state corruption.
|
||
- Atomic snapshot replacement eliminates partial-file risk on crash.
|
||
|
||
---
|
||
|
||
## [1.1.0] – *TBD*
|
||
### Added
|
||
- `/metrics` endpoint (JSON).
|
||
- Configurable snapshot cadence.
|
||
- GuardProvider: Quorum and License guards.
|
||
|
||
### Changed
|
||
- Internal logging unified under structured logger (no concurrency).
|
||
|
||
### Fixed
|
||
- WAL GC scheduling to avoid latency spikes.
|
||
|
||
---
|
||
|
||
## [1.2.0] – *TBD*
|
||
### Added
|
||
- BACKBEAT-synchronized transition windows.
|
||
- `BeatIndex`, `WindowID`, and `HLC` exposure via `/state`.
|
||
- Cluster gossip integration for replicated guard consensus.
|
||
|
||
### Deprecated
|
||
- Static snapshot interval (replaced by cadence-aware scheduler).
|
||
|
||
---
|
||
|
||
## [2.0.0] – *Future: Multi-Node Determinism*
|
||
### Added
|
||
- Multi-executor synchronization via signed HMMM envelopes.
|
||
- Deterministic cross-node commit proofs.
|
||
- Distributed replay validation tools.
|
||
|
||
### Breaking
|
||
- TransitionProposal schema extended with `OriginNodeID` and `Signature`.
|
||
- API layer moved to `/v2/` namespace.
|
||
|
||
---
|
||
|
||
## Legend
|
||
- ✅ Completed
|
||
- ⚙️ In Progress
|
||
- 🧭 Planned
|