{
  "markdown": "# gpp (git++)\n\n[![CI](https://github.com/mahabubul470/gpp/actions/workflows/ci.yml/badge.svg)](https://github.com/mahabubul470/gpp/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Rust 2024](https://img.shields.io/badge/rust-2024_edition-orange.svg)](rust-toolchain.toml)\n\nAI agents change code continuously, then lose the work that happened\nbetween commits — and the notes they keep about your codebase\n(`CLAUDE.md`, memory banks, knowledge files) go stale silently when the\ncode moves on. gpp is a version control system built for that reality: it\n**captures every change as it happens**, promotes curated changesets with\nintent and provenance, and hosts project knowledge **on the repo's own\nhistory** — so when a commit invalidates something you believed about the\ncode, gpp can name that commit.\n\n![gpp demo](site/assets/demo.gif)\n\n*(Recording is generated by [`scripts/demo.sh`](scripts/demo.sh) —\ndeterministic, reproducible, no mockups.)*\n\n## 30-second try\n\n```bash\ncargo install gpp-cli\n\ngpp init --graphex\necho \"fn main() {}\" > main.rs\ngpp timeline                     # captured already — no staging, no commit\ngpp promote -m \"first cut\" --intent feature\ngpp diff HEAD                    # semantic diff: renames/moves are one op\n```\n\nAnd the part no other VCS does — record what you believe about the code,\nand let history police it:\n\n```bash\ngpp belief add --claim \"token expiry is 24h\" --evidence src/auth.rs:7-7\n# ...weeks of commits later...\ngpp belief bisect \"token expiry is 24h\"\n# INVALIDATED  cs:fhcpef7c  \"raise token expiry to 7 days\"\n#  -     7 | pub const EXPIRY_HOURS: u64 = 24;\n#  +     7 | pub const EXPIRY_HOURS: u64 = 168;\n```\n\nDeterministic — diff intersection and blob hashes, zero LLM or network\ncalls. (For scale: asked to *judge* whether a stored memory has been\ninvalidated, the best frontier model manages 55.2% accuracy on the\n[STALE benchmark](https://arxiv.org/abs/2605.06527) — here it's a\nhistory query, not a judgment.) Validated on real history across five\nrepos in four languages — axum 0.6→0.7, flask 1.1→2.0, clap 3→4, zod\n3→4, go-redis 8→9 — where every invalidated belief bisects to a pinned,\ndocumented culprit commit and the control beliefs survive: see\n[`demos/belief-bisect/`](demos/belief-bisect/) for the full matrix.\n\n## What makes it different\n\n- **Continuous capture.** A high-frequency timeline records every file\n  change (SQLite WAL, debounced watcher); curated changesets are\n  *promoted* from it with an explicit intent, author kind (human/agent),\n  and cost record. Nothing is lost between commits.\n- **Graphex: versioned, encrypted project knowledge.** Architecture,\n  conventions, decisions, and *beliefs* live in an encrypted knowledge\n  graph inside the repo, tier-gated per agent trust level, audited on\n  every read — and staleness-checked against the history it rides on.\n- **Agent governance.** First-class agent identity with reputation\n  scoring, compliance-as-code policies enforced at capture/promote/sync,\n  anomaly detection, and per-changeset token/cost attribution.\n\nEverything else — P2P sync over Noise, replay, review/RBAC, a relay node,\na TUI — is the platform underneath: see\n[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).\n\n**Git is the substrate, not the competition.** The bridge\n(`gpp git-import` / `git-export` / `git-bridge`) round-trips real Git\ncommits, so GitHub and existing workflows keep working — gpp's knowledge,\nprovenance, and governance layers ride alongside. The axum demo above\nruns entirely on history imported through this bridge.\n\n## Connect Claude Code (or any MCP client)\n\ngpp ships an MCP server; agents query the knowledge graph (every belief\nwith a freshness envelope — anchor, commits since, and the changeset that\nstaled it), **write their own evidence-anchored beliefs** with\n`propose_belief` (human-approved, then policed by history), propose\nchangesets, and report costs. Drop this in `.mcp.json` at your repo root:\n\n```json\n{\n  \"mcpServers\": {\n    \"gpp\": { \"command\": \"gpp\", \"args\": [\"mcp-server\", \"--stdio\"] }\n  }\n}\n```\n\nFull client setup (Claude Desktop, generic stdio) and the exposed tool\nlist: [`docs/MCP.md`](docs/MCP.md).\n\n## Status\n\n**All 9 roadmap phases (0–8) implemented.** See\n[`docs/ROADMAP.md`](docs/ROADMAP.md) for per-phase deliverables and\ndocumented deviations, [`docs/TODO.md`](docs/TODO.md) for the prioritized\nbacklog, and [`docs/WORKLOG.md`](docs/WORKLOG.md) for the running\nengineering log.\n\nVerified 2026-08-23: **184 workspace tests pass**, `cargo clippy` and\n`cargo fmt` clean, full workspace builds. No stub crates remain — every\ncrate has a working implementation. Coverage is measured in CI\n(`cargo llvm-cov`; 65.7% line at baseline, being raised).\n\nTest depth is still **uneven**: foundational layers are well covered\n(`gpp-core`, `gpp-graphex`, `gpp-diff`, `gpp-tui` ≥ 80% line; the CLI has\nend-to-end suites for policy enforcement, cost reporting, reviewer\nassignment and belief bisect), while several integration crates remain at\nsmoke-level (`gpp-sdk`, `gpp-notify`, `gpp-rbac`, `gpp-replay`).\n\"Implemented\" here means *built and tested against its milestone*, not\n*exhaustively hardened* everywhere. Closing that gap is the top item in\n[`docs/TODO.md`](docs/TODO.md).\n\n## The full layer table\n\n| Layer | Crate | What's implemented |\n|---|---|---|\n| Storage | `gpp-core` | Content-addressed store (BLAKE3 + zstd), `Blob`/`Tree`, raw verified frame transfer |\n| Timeline | `gpp-timeline` | SQLite (WAL) capture, `.gppignore`, debounced watcher, pruning |\n| History | `gpp-history` | `Changeset`/`Intent`/`Author`, branch refs, promote, DAG walk |\n| Diff | `gpp-diff` | Line + **tree-sitter semantic** diff (Rust/Python/TS/Go), rename/move detection |\n| Git bridge | `gpp-git-bridge` | `git-import`/`git-export`/`git-bridge`, SQLite hash map |\n| Graphex | `gpp-graphex` | Encrypted (age + AES-GCM) knowledge graph, tier-gated projection, query, lifecycle, audit, **beliefs + staleness engine** |\n| SDK / MCP | `gpp-sdk` | `AgentSession`; `gpp mcp-server --stdio` (JSON-RPC MCP) |\n| Trust | `gpp-trust` | Reputation scoring, status transitions, overrides, events |\n| Policy | `gpp-policy` | `.policy` TOML rules, enforcement at promote (block) + timeline (warn) + sync (block), built-in templates |\n| Cost | `gpp-cost` | Per-changeset token/$ records, budgets, efficiency, agent self-reporting |\n| Anomaly | `gpp-anomaly` | Scope/burst/size detection, resolution workflow |\n| Sync | `gpp-sync` | Noise_XX P2P; objects/refs/policies/graphex; fork-preserve |\n| Replay | `gpp-replay` | Reproducible environment snapshots + drift diff |\n| Review/RBAC/Notify | `gpp-review` `gpp-rbac` `gpp-notify` | Review lifecycle, roles + branch protection, events/inbox/HMAC webhooks |\n| Remote | `gpp-remote` | GitHub/GitLab/Bitbucket PR creation, enriched bodies, CI/review import |\n| Relay | `gpp-relay` | Always-on sync hub binary + health endpoint + Dockerfile |\n| Clients | `gpp-cli` `gpp-tui` `gpp-deps` | Full CLI, ratatui TUI (`gpp ui`), dependency intel (`gpp deps` + OSV) |\n\nAlso: `extensions/{gh-gpp,vscode-gpp,neovim-gpp}`, GitHub Actions +\nGitLab CI templates, `deploy/` Docker images, `packaging/` Homebrew.\n\nDocumented follow-ups (recorded in the ROADMAP/TODO, not silently\nskipped): registry/license APIs for deps, native PyO3/napi bindings,\noutbound platform-review sync, apt/dpkg packages.\n\n## Install / build\n\n```bash\ncargo install gpp-cli                    # the `gpp` binary (crates.io)\ncargo install gpp-relay                  # relay node (optional)\n\n# or from a clone\ncargo build --release\ncargo test --workspace\ncargo bench -p gpp-core -p gpp-diff      # criterion perf suite\n```\n\nPrebuilt binaries for Linux, macOS (ARM + Intel), and Windows are\nattached to [each release](https://github.com/mahabubul470/gpp/releases);\n`cargo install --git https://github.com/mahabubul470/gpp gpp-cli` tracks\nunreleased development.\n\n## More to try\n\n```bash\n# Governance\ngpp policy template secrets-scan\ngpp trust show\ngpp audit --include-cost --include-graphex\n\n# Decentralized: sync two repos over Noise\ngpp sync serve 127.0.0.1:9473             # on peer A\ngpp sync add a 127.0.0.1:9473 && gpp sync # on peer B\n\n# GitHub-compatible\ngpp remote setup --platform github --repository acme/webapp\ngpp remote pr-create --base main\n```\n\nSee [`CLAUDE.md`](CLAUDE.md) for project context, [`docs/`](docs/) for the\nfull specification (architecture, data model, CLI, protocols, roadmap),\nand [`docs/book/`](docs/book/) for the user guide + tutorials.\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 8572,
  "sha": "3b96ed94d9d856a9b4ea1adfd948b3911f2ae6da3c59c3fbc62744e7ebe9ff18",
  "repo_slug": "mahabubul470/gpp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mahabubul470_gpp_e0154596/readme"
}