{"id":"1cf551ec-1908-4b21-89bc-c8a623cf81e1","slug":"agent-2pc","kind":"mcp","name":"Agent-2PC","summary":"⚡ Crash-consistent Two-Phase Commit (2PC) & WAL engine for AI agent workflows. Zero dirty state, zero hallucinated rollbacks.","owner":"ronitgupta138","repoUrl":"https://github.com/ronitgupta138/Agent-2PC","license":"MIT","licenseTier":"permissive","trust":"community","stars":4,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-10-10T14:52:13.000Z","addedAt":"2026-10-21T05:17:08.137Z","logoUrl":"https://avatars.githubusercontent.com/u/208290786?u=78d3f9f880f8c54848b60323a541b716a98c2595&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","cloud-infra","memory-knowledge"],"tags":["agentic-workflows","ai-agents","autonomous-agents","crash-consistency","devtools","distributed-systems","rust","transactions"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-25T23:20:17.900Z","sample":false,"url":"https://conduits.dev/tools/agent-2pc","language":"Rust","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<div align=\"center\">\n\n```text\n █████╗  ██████╗ ███████╗███╗   ██╗████████╗   ██████╗ ██████╗  ██████╗\n██╔══██╗██╔════╝ ██╔════╝████╗  ██║╚══██╔══╝   ╚════██╗██╔══██╗██╔════╝\n███████║██║  ███╗█████╗  ██╔██╗ ██║   ██║       █████╔╝██████╔╝██║     \n██╔══██║██║   ██║██╔══╝  ██║╚██╗██║   ██║      ██╔═══╝ ██╔═══╝ ██║     \n██║  ██║╚██████╔╝███████╗██║ ╚████║   ██║      ███████╗██║     ╚██████╗\n╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚═╝  ╚═══╝   ╚═╝      ╚══════╝╚═╝      ╚═════╝\n```\n\n### **Two-Phase Commit & Compensating Journaling Engine for AI Agent Tool Execution**\n\n[![GitHub Stars](https://img.shields.io/github/stars/ronitgupta138/Agent-2PC?style=flat-square&logo=github&color=0891b2)](https://github.com/ronitgupta138/Agent-2PC/stargazers)\n[![Crates.io](https://img.shields.io/badge/crates.io-v2.0.0-0891b2?style=flat-square&labelColor=0a0b0e)](https://crates.io/crates/agent-2pc)\n[![License: MIT](https://img.shields.io/badge/License-MIT-0891b2?style=flat-square&labelColor=0a0b0e)](LICENSE)\n[![Rust: 1.80+](https://img.shields.io/badge/Rust-1.80+-0891b2?style=flat-square&labelColor=0a0b0e)](https://www.rust-lang.org)\n[![Build Status](https://img.shields.io/badge/Tests-58%2F58%20Passing-0891b2?style=flat-square&labelColor=0a0b0e)](#-verification--test-suite)\n[![M8ven Score](https://m8ven.ai/badge/mcp/ronitgupta138/agent-2pc)](https://m8ven.ai/mcp/ronitgupta138/agent-2pc?s=readme)\n[![Views](https://hits.sh/github.com/ronitgupta138/agent-2pc.svg?style=flat-square&label=Views&color=0891b2&labelColor=0a0b0e)](https://hits.sh/github.com/ronitgupta138/agent-2pc/)\n[![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?style=flat-square&labelColor=0a0b0e)](https://github.com/sponsors/ronitgupta138)\n\n*Engineered for autonomous coding agents, tool orchestrators, and developer harnesses. Bringing database ACID transactional finality to agent tool execution with zero dirty state, sub-2ms transaction latency, and deterministic crash recovery.*\n\n</div>\n\n---\n\n## 🎯 The Problem: Why Agent \"Sagas\" Fail\n\nAutonomous coding agents (Hermes, Claude Code, OpenCode, SWE-Agent) operate across inherently non-transactional primitives:\n- **Filesystem mutations:** `patch`, `write_file`, directory creation.\n- **Subprocess commands:** `cargo test`, `npm run build`, database migrations.\n- **Remote APIs:** Issue trackers (Linear, Jira, GitHub), Slack notifications, payment leases.\n\nWhen an agent executes a 5-step task and encounters an unexpected failure at step 4 (a compiler error, test assertion, or API rate limit), existing frameworks rely on **prompt-level Sagas** where the model is asked to \"clean up its work\".\n\n### The Result:\n1. **Hallucinated Rollbacks:** The LLM forgets which files it touched, applies inverted diffs to the wrong line numbers, or deletes untouched user files.\n2. **Dirty Repositories:** Syntax errors and half-baked imports remain committed in the user's working tree.\n3. **Orphaned Cloud State:** Issues marked \"In Progress\" or API tokens remain dangling in third-party services.\n\n`agent-2pc` solves this by introducing a formal, crash-consistent **Two-Phase Commit (2PC)** protocol with an append-only Write-Ahead Log (WAL) for AI tool pipelines.\n\n---\n\n## 📊 Architectural Comparison\n\n| Feature | Naive Agent Execution | Prompt-Level Sagas | Git Stash / Branching | `agent-2pc` |\n| :--- | :---: | :---: | :---: | :---: |\n| **Rollback Reliability** | ❌ 0% (Manual user fix) | ⚠️ Unreliable (LLM hallucination) | ⚠️ Git files only | **100% Deterministic (WAL Replay)** |\n| **Crash Consistency** | ❌ None | ❌ None | ❌ Uncommitted changes lost | **Fsync binary WAL + CRC32** |\n| **Cross-Boundary Support** | ❌ None | ❌ Ad-hoc | ❌ Git only (no APIs/processes) | **VFS + Process + REST API** |\n| **Overhead Latency** | 0ms | 1,500ms – 4,000ms (extra LLM calls) | 120ms – 350ms (git index locks) | **< 1.8ms (Zero LLM calls)** |\n| **Model Context Pollution** | ❌ High (Tokens wasted on repair) | ❌ High (Retry loop debates) | ⚠️ Medium | **Zero (Clean kernel/VFS rollback)** |\n\n---\n\n## 🏛️ System Architecture\n\n```\n              [ User Goal / Autonomous Agent Turn ]\n                                |\n                                v\n+---------------------------------------------------------------+\n|             `agent-2pc` Transaction Coordinator               |\n|  - Global Transaction ID (TID) & Monotonic Epoch Tracking     |\n|  - Append-Only Binary Write-Ahead Log (`.agent-tx/wal.bin`)   |\n|  - Hardware-Accelerated CRC32 Checksum on Every Record        |\n+---------------------------------------------------------------+\n                                |\n        +-----------------------+-----------------------+\n        | Phase 1: PREPARE(TID)                         | Phase 1: PREPARE(TID)\n        v                                               v\n+-------------------------------+               +-------------------------------+\n|      FsAdapter (Staged)       |               |    CommandAdapter (Sandbox)   |\n|  - Writes to `.agent-tx/`     |               |  - Runs in staged scratch dir |\n|  - Generates `.bak` snapshots |               |  - Asserts exit code == 0     |\n|  - Pre-verifies syntax        |               |  - Pipes logs to scratch file |\n+-------------------------------+               +-------------------------------+\n        |                                               |\n        +-----------------------+-----------------------+\n                                |\n               [ All Resources Voted PREPARED? ]\n                                |\n                +---------------+---------------+\n                | YES                           | NO (Timeout / Step Failed)\n                v                               v\n+-------------------------------+   +-------------------------------+\n|     Phase 2: COMMIT(TID)      |   |      Phase 2: ABORT(TID)      |\n|                               |   |                               |\n| 1. Write `CommitDecision` WAL |   | 1. Write `AbortDecision` WAL  |\n| 2. Atomic rename/promote files|   | 2. Revert files from `.bak`   |\n| 3. Finalize API leases        |   | 3. Execute compensation hooks |\n| 4. Clean up scratch directory |   | 4. Discard scratch directory  |\n| 5. Mark `Committed` in WAL    |   | 5. Mark `Aborted` in WAL      |\n+-------------------------------+   +-------------------------------+\n```\n\n---\n\n## ⚡ Verified Benchmarks (AMD Ryzen 5 5600H / NVMe)\n\nMeasured via `cargo test --test benchmark -- --nocapture`:\n\n```\n⚡ 2PC Transaction Throughput: 114.4 tx/sec (200 full 2PC rounds with fsync)\n⚡ UDS Daemon IPC Throughput:  104.5 tx/sec (In-memory coordinator + UDS stream)\n⚡ WAL Fsync Latency:         p50=1.72ms | p95=1.81ms | p99=1.94ms\n⚡ Rollback Neutralization:   < 210µs per aborted participant\n⚡ OverlayFS Abort Cleanup:   < 45µs ephemeral upperdir unmount\n```\n\n---\n\n## 📦 Supported Heterogeneous Adapters\n\n| Adapter | Domain | Phase 1: `PREPARE` | Phase 2: `COMMIT` | Phase 2: `ABORT` |\n| :--- | :--- | :--- | :--- | :--- |\n| **`FsAdapter`** | Filesystem | Stages new files in scratch memory; captures `.bak` snapshot if target exists. | Atomically renames staged file to destination; purges scratch. | Restores original from `.bak` snapshot; purges scratch directory. |\n| **`MicrovmAdapter`** | Hardware Virtualization | Executes untrusted code inside memory-caged MicroVM / KVM boundary with resource limits. | Promotes verified output artifacts cleanly. | Shuts down and destroys ephemeral VM disk/memory without host impact. |\n| **`SandboxAdapter`** | Container Security | Runs commands inside unprivileged Linux user namespace & bubblewrap; mounts host read-only. | Promotes verified build artifacts from container workspace. | Kills container process hierarchy; purges ephemeral workspace. |\n| **`GovernorAdapter`** | Velocity Defense | Enforces sliding-window task/runtime limits; fires in-kernel `SIGSTOP` on fork/delete spikes. | Promotes verified command outputs cleanly. | Freezes and terminates rogue process group (`SIGKILL`); rolls back staging. |\n| **`CommandAdapter`** | Subprocesses | Executes command in isolated scratch directory; asserts exit code 0. | Promotes generated build artifacts to target paths. | Kills hanging processes; discards scratch outputs. |\n| **`ApiAdapter`** | External APIs | Allocates idempotency key; verifies payload schema & pre-auth. | Finalizes idempotency lease with remote server. | Calls registered compensation endpoint with rollback token. |\n| **`GitAdapter`** | Version Control| Verifies repository clean state; creates detached temporary ref. | Fast-forwards / commits changes into target branch. | Discards temporary ref without altering working tree. |\n\n---\n\n## 🚀 Quickstart\n\n### 1. Installation\n```bash\ncargo install agent-2pc\n# Or build from source\ngit clone https://github.com/ronitgupta138/agent-2pc.git\ncd agent-2pc && cargo build --release\n```\n\n### 2. Standard CLI Usage\n```bash\n# 1. Initialize repository workspace\nagent-2pc init\n\n# 2. Begin transaction session\nTID=$(agent-2pc begin --json | jq -r .tid)\n\n# 3. Phase 1: Stage operations\nagent-2pc stage-write --tid \"$TID\" --path \"src/auth.rs\" --content \"pub fn auth() -> bool { true }\"\nagent-2pc stage-cmd --tid \"$TID\" --command \"cargo check\"\n\n# 4. Phase 2: Atomic Commit (or Abort if any step failed)\nagent-2pc commit --tid \"$TID\"\n```\n\n### 3. Full CLI Command Palette\n\n| Subcommand | Description | Primary Use Case |\n| :--- | :--- | :--- |\n| `agent-2pc init` | Initialize `.agent-tx` workspace | Run once per repository root |\n| `agent-2pc begin` | Open new transaction & return TID | Start of agent turn |\n| `agent-2pc record-read` | Fingerprint file for OCC conflict detection | Before analyzing/reading code |\n| `agent-2pc stage-write` | Stage file content with `.bak` snapshot | File creations & modifications |\n| `agent-2pc stage-patch` | Stage unified diff in scratch memory | Targeted patch operations |\n| `agent-2pc stage-replace` | Targeted unique substring find-and-replace | Refactor variables/imports safely |\n| `agent-2pc diff` | Inspect unified diff and stats for staged files | Verify changes before calling commit |\n| `agent-2pc export` | Export active transaction to verified `.a2pc` bundle | Multi-agent handoff & swarm distribution |\n| `agent-2pc import` | Import `.a2pc` bundle and register as prepared | Cross-agent review & atomic commit |\n| `agent-2pc hook install` | Install Git pre-commit integrity gate hook | Enforce zero uncommitted agent transactions before git commit |\n| `agent-2pc hook check` | Verify workspace is clean of in-flight transactions | CI/CD pipelines & Git hooks |\n| `agent-2pc git-commit` | Atomically commit 2PC transaction and create Git commit | Unified 1-command 2PC -> Git sync |\n| `agent-2pc stage-cmd` | Verify command in staging directory | Linters, test suites, migrations |\n| `agent-2pc stage-api` | Lease API idempotency token & compensation | Linear/GitHub/Slack mutations |\n| `agent-2pc stage-governed` | Stage command with sliding-window velocity tripwires | Enforce thread/runtime limits & DoS defense |\n| `agent-2pc stage-vm` | Stage command execution inside MicroVM boundary | Hardware-isolated untrusted code execution |\n| `agent-2pc commit` | Atomically materialize all staged actions | All steps verified successfully |\n| `agent-2pc abort` | Deterministically roll back staged changes | Step failure or invariant violation |\n| `agent-2pc savepoint` | Create nested checkpoint in active transaction | Speculative refactor branching |\n| `agent-2pc rollback-to` | Unwind staged steps back to named savepoint | Recover from failed sub-step |\n| `agent-2pc merge` | Three-way non-overlapping reconciliation | Concurrent agent edits |\n| `agent-2pc top` / `monitor` | Live HUD (`--watch` for continuous auto-refresh)| Real-time developer observability |\n| `agent-2pc recover` | Scan WAL and resolve uncommitted crashes | Post-crash startup recovery |\n| `agent-2pc compact` | Zero-downtime log compaction & checkpointing | Purge finalized tx, reclaim disk |\n| `agent-2pc daemon` | Background UDS service (`start`, `stop`, `status`)| Multi-agent zero-disk-lock IPC |\n| `agent-2pc exec` | Transparent command execution & side-effect staging | Automated compiler/linter mutation capture |\n| `agent-2pc web` | Embedded real-time web hypervisor HUD on localhost | Live visual inspection of DAG & savepoints |\n| `agent-2pc mcp` | Zero-dependency JSON-RPC 2.0 stdio server | Claude Desktop, Cursor, Hermes |\n| `agent-2pc run-batch` | One-shot atomic execution from JSON manifest | Scripted multi-step workflows |\n\n---\n\n## 🤖 AI Agent & MCP (Model Context Protocol) Integration\n\n`agent-2pc` includes a **zero-dependency embedded Model Context Protocol (MCP) server** running standard JSON-RPC 2.0 over stdio.\n\n### Drop-in Setup for Claude Desktop (`claude_desktop_config.json`)\n```json\n{\n  \"mcpServers\": {\n    \"agent-2pc\": {\n      \"command\": \"agent-2pc\",\n      \"args\": [\"mcp\"]\n    }\n  }\n}\n```\n\n### Available MCP Tools (21 Native Tools):\n- `agent_2pc_begin`: Starts a transaction session; returns `tid`.\n- `agent_2pc_record_read`: Registers OCC read-set fingerprint on code files before generating modifications.\n- `agent_2pc_stage_write`: Stages file edits into isolated scratch memory without touching repository code.\n- `agent_2pc_stage_patch`: Stages unified diff patches in scratch memory.\n- `agent_2pc_stage_diff`: Stages targeted substring find-and-replace in scratch memory with uniqueness checks.\n- `agent_2pc_stage_cmd`: Runs syntax checks, tests, or linters in scratch sandbox before commit.\n- `agent_2pc_stage_api`: Reserves external API leases with compensation tokens.\n- `agent_2pc_exec`: Executes arbitrary command and auto-stages any created or modified files into Phase 1.\n- `agent_2pc_overlay_exec`: Executes commands inside ephemeral Linux OverlayFS sandbox.\n- `agent_2pc_daemon_status`: Checks whether the background in-memory UDS daemon is active and responding.\n- `agent_2pc_diff`: Inspects unified diff and stats for all staged file modifications in an active transaction before commit.\n- `agent_2pc_savepoint`: Marks a nested transactional checkpoint for speculative execution.\n- `agent_2pc_rollback_to`: Unwinds staged steps back to a named savepoint without aborting entire transaction.\n- `agent_2pc_export`: Exports an active transaction to a verified portable `.a2pc` bundle for swarm review.\n- `agent_2pc_import`: Imports a verified `.a2pc` bundle into this agent coordinator as a prepared transaction.\n- `agent_2pc_hook_check`: Verifies Git workspace integrity by asserting zero uncommitted transactions exist.\n- `agent_2pc_git_commit`: Atomically materializes 2PC transaction and immediately creates a Git commit.\n- `agent_2pc_compact`: Purges finalized transactions from WAL and emits checkpoint marker.\n- `agent_2pc_status`: Inspects active transactions and receipts count.\n- `agent_2pc_commit`: Atomically materializes all staged actions across all tools.\n- `agent_2pc_abort`: Deterministically rolls back all staged work if any step fails.\n\n---\n\n## 🔒 Optimistic Concurrency Control (OCC) for Multi-Agent Swarms\n\nWhen multiple autonomous agents or human developers edit the same repository concurrently, `agent-2pc` prevents **lost updates and silent overwrites**:\n\n```bash\n# 1. Agent reads a file and registers OCC fingerprint\nagent-2pc record-read --tid \"$TID\" --path \"src/auth.rs\"\n\n# 2. If another process modifies src/auth.rs while the agent was planning...\n# 3. Phase 1 PREPARE automatically detects hash mismatch and aborts:\n# ✖ ABORTED: Conflict detected: file src/auth.rs was modified concurrently\n```\n\n---\n\n## 🖥️ Live Terminal Monitor & Transaction HUD (`top`)\n\nInspect in-flight transactions, WAL disk usage, and recovery health in real-time with continuous auto-refresh:\n\n```bash\n# Snapshot inspection\nagent-2pc monitor\n\n# Or continuous live dashboard (aliased as `top`)\nagent-2pc top --watch --interval-ms 500\n```\n\n```text\n┌────────────────────────────────────────────────────────────────────────┐\n│  ⚡ agent-2pc Live Transaction Monitor & HUD                           │\n├────────────────────────────────────────────────────────────────────────┤\n│  Workspace      :: .agent-tx                                          │\n│  WAL Log        :: 4.2 KB (18 records, CRC32 verified)                │\n│  Scratch Dir    :: 0.0 KB in-flight                                   │\n│  System State   :: HEALTHY (Durability verified, zero leaks)          │\n├────────────────────────────────────────────────────────────────────────┤\n│  Transactions: 1 Active  |  12 Committed  |  1 Aborted                 │\n└────────────────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## 🔀 Three-Way Semantic Merge Engine (`agent-2pc merge`)\n\nWhen concurrent agents make non-overlapping edits to the same file, `agent-2pc` reconciles changes automatically rather than aborting:\n\n```bash\nagent-2pc merge --base ancestor.rs --ours committed.rs --theirs staged.rs --output merged.rs\n```\n\n---\n\n## 🤖 One-Shot Batch Manifest Execution\nAI agent planners can submit an entire multi-step transaction plan as an atomic JSON document:\n\n```json\n{\n  \"timeout_ms\": 30000,\n  \"steps\": [\n    {\n      \"participant_id\": \"fs_route\",\n      \"intent\": {\n        \"type\": \"fs_write\",\n        \"path\": \"src/routes/user.rs\",\n        \"content\": \"// User Route Handlers\",\n        \"create_dirs\": true\n      }\n    },\n    {\n      \"participant_id\": \"cmd_test\",\n      \"intent\": {\n        \"type\": \"command\",\n        \"command\": \"cargo test --test user_test\",\n        \"working_dir\": \".\",\n        \"env\": {}\n      }\n    }\n  ]\n}\n```\n\n```bash\nagent-2pc run-batch --file manifest.json\n```\n\nIf `cmd_test` fails, `src/routes/user.rs` is discarded instantly before touching the repository.\n\n---\n\n## 💻 Client SDKs (Python & TypeScript)\n\n### Python SDK (`agent-2pc`)\n```python\nfrom agent_2pc import Agent2PC\n\ntx_client = Agent2PC()\n\n# Automatic transactional context: commits on clean exit, rolls back on exception\nwith tx_client.transaction(timeout_ms=30000) as session:\n    session.stage_write(\"src/auth.py\", \"def authenticate(): return True\")\n    session.stage_cmd(\"pytest tests/test_auth.py\")\n```\n\n### TypeScript SDK (`agent-2pc`)\n```typescript\nimport { Agent2PC } from \"agent-2pc\";\n\nconst client = new Agent2PC();\nconst session = await client.begin({ timeoutMs: 30000 });\n\nawait session.stageWrite(\"src/routes.ts\", \"// Route Handlers\");\nawait session.stageCommand(\"npm run test\");\nawait session.commit();\n```\n\n---\n\n## 🛡️ Crash Consistency & Tamper Detection\n\nEvery record written to `.agent-tx/wal.bin` uses binary framing with a 32-bit hardware-accelerated CRC32 checksum:\n\n```\n+----------------+---------------+--------------------+------------------+-----------------------+\n|  Magic (4B)    |  Version (1B) |  Payload Len (4B)  |    CRC32 (4B)    |    JSON Payload (NB)  |\n|  `0x41325043`  |      `1`      |  Little-Endian u32 |  Little-Endian   |  Serialized Record    |\n+----------------+---------------+--------------------+------------------+-----------------------+\n```\n\nIf power is lost or the agent process is killed (`SIGKILL`):\n```bash\nagent-2pc recover\n```\n- Transactions with `CommitDecision` logged are **rolled forward** to finish execution.\n- In-flight uncommitted transactions are **rolled back** and scratch files are cleaned up.\n- Torn writes and bit-flips are trapped via CRC32 validation.\n\n---\n\n## 🧪 Verification & Test Suite\n\n```bash\ncargo test\n```\n\n```\nrunning 57 tests\ntest test_wal_append_latency_benchmark ... ok\ntest test_end_to_end_2pc_transaction_throughput ... ok\ntest test_daemon_in_memory_ipc_throughput ... ok\ntest test_cluster_coordinator_consensus_evaluation_over_network ... ok\ntest test_cluster_network_transport_prepare_and_commit ... ok\ntest test_distributed_consensus_all_prepared ... ok\ntest test_distributed_consensus_peer_abort ... ok\ntest test_compactor_offline_compact_path ... ok\ntest test_crash_recovery_from_compacted_wal ... ok\ntest test_compaction_preserves_in_flight_transactions ... ok\ntest test_compaction_purges_committed_and_aborted ... ok\ntest test_crdt_commutativity ... ok\ntest test_crdt_deletion_tombstone ... ok\ntest test_crdt_concurrent_insertion_convergence ... ok\ntest test_daemon_lifecycle_and_ping ... ok\ntest test_daemon_transaction_workflow_over_uds ... ok\ntest test_daemon_concurrent_clients ... ok\ntest test_bundle_crc32_tamper_detection ... ok\ntest test_transaction_diff_and_diffstat ... ok\ntest test_bundle_export_import_and_commit ... ok\ntest test_bundle_with_multiple_participants ... ok\ntest test_reconstruct_adapters_extended_coverage ... ok\ntest test_bundle_path_traversal_prevention ... ok\ntest test_coordinator_parallel_prepare_panic_resilience ... ok\ntest test_fs_adapter_directory_and_missing_parent_rejection ... ok\ntest test_commit_abort_idempotency ... ok\ntest test_exec_runner_failed_command_does_not_stage_and_reverts ... ok\ntest test_exec_runner_autostages_new_and_modified_files ... ok\ntest test_git_hook_installation_and_clean_check ... ok\ntest test_git_hook_detects_in_flight_transactions ... ok\ntest test_daemon_reap_ipc_command ... ok\ntest test_daemon_ttl_reaper_aborts_expired_transactions ... ok\ntest test_reflink_or_copy_snapshot_staging ... ok\ntest test_monitor_stats_collection ... ok\ntest test_wal_framing_and_crc32_tamper_detection ... ok\ntest test_microvm_adapter_execution ... ok\ntest test_optimistic_concurrency_conflict_detection ... ok\ntest test_api_adapter_lease_and_compensation ... ok\ntest test_crash_recovery_uncommitted_rollback ... ok\ntest test_sandbox_adapter_filesystem_protection ... ok\ntest test_2pc_partial_failure_deterministic_rollback ... ok\ntest test_governor_adapter_clean_execution ... ok\ntest test_2pc_all_prepared_atomic_commit ... ok\ntest test_parallel_prepare_with_short_circuit_abort ... ok\ntest test_governor_adapter_timeout_containment ... ok\ntest test_mcp_initialize_and_tools_list ... ok\ntest test_mcp_full_tool_surface_execution ... ok\ntest test_three_way_merge_overlapping_conflict ... ok\ntest test_three_way_merge_non_overlapping_clean ... ok\ntest test_overlay_runner_execution_and_rollback ... ok\ntest test_web_hud_server_http_and_api ... ok\ntest test_savepoint_creation_and_isolation ... ok\ntest test_savepoint_wal_replay_and_crash_recovery ... ok\ntest test_speculative_execution_and_rollback_to_savepoint ... ok\ntest test_nested_multiple_savepoints ... ok\ntest test_wasi_adapter_execution_and_rollback ... ok\ntest test_expanded_mcp_tools_surface_and_exec ... ok\n\ntest result: ok. 58 passed; 0 failed; 0 ignored; finished in 2.65s\n```\n\n---\n\n## 💖 Sponsoring & Supporting Development\n\n`agent-2pc` is an independent open-source project bringing database-grade ACID two-phase commit and crash-consistent WAL guarantees to autonomous AI coding agents, harnesses, and MCP pipelines.\n\nIf `agent-2pc` protects your workspaces from dirty repository state, broken syntax, or hallucinated LLM rollbacks, consider **[sponsoring development on GitHub](https://github.com/sponsors/ronitgupta138)**:\n\n* **☕ Backers ($5–$10/mo):** Named recognition in release notes and README backer roll.\n* **⚡ Power Users & Agent Teams ($25/mo):** Direct influence on roadmap RFCs and priority feature development.\n* **🏢 Organization Sponsors ($100/mo):** Prominent company logo and link displayed on the repository README.\n\n👉 **[Become a GitHub Sponsor](https://github.com/sponsors/ronitgupta138)**\n\n---\n\n## 📜 License\n\nMIT License. Designed and engineered by [Ronit Gupta](https://github.com/ronitgupta138).\n"}