effectfence 0.1.0

Causal concurrency fence for multi-agent tool calls: an intent ledger, OCC read-sets, and lock-free domain reservation stop double-execution — same-instant races and late duplicate retries alike. Ships as a library and an MCP server.
Documentation
# Changelog

All notable changes to EffectFence.

## [Unreleased]
- Roadmap: crates.io publish · docs.rs reference · wrap-mode proxy (auto-fence any MCP server, zero code change) · distributed backend exploration

## [0.1.0] — 2026-08-04

First public release.

### Added
- **Intent ledger** — attempts sharing an intent are the same logical action:
  one executes, later duplicates replay the recorded certificate; failed or
  unknown outcomes stay fenced until explicitly reconciled (`clear_intent`).
  Crashed holders lose their lease after a TTL.
- **Lock-free domain fencing** — same-instant races decided by a single
  `compare_exchange`; exactly one winner per expected sequence.
- **Content-addressed EffectCerts** — SHA-256-sealed records of every
  committed effect with causal `parent` chaining and per-agent vector clocks.
- **MCP stdio server**`fence_prepare` / `fence_commit` / `fence_abort`
  tools for MCP-compatible agents; schemas auto-generated from Rust types.
- **Storm demo** (`cargo run --release --example storm`) — 1,000-attempt
  attack proving exactly-one execution; also enforced in CI on every commit.
- 19 tests: unit + forced-race chaos + live JSON-RPC wire test. CI: test
  matrix, no-default-features build, clippy `-D warnings`, rustfmt, storm gate.

### Honest scope
In-memory, single-process, advisory (fences calls routed through it).
The distributed, unbypassable gateway is roadmap, not fine print.