Skip to content
PatchArc

PatchArc 0.2.0: what shipped, what is a stub, and what is next

The first public release, described the way we would want a vendor to describe theirs: every command and cloud route that works end to end, every one that prints a message and exits, and the order we plan to close the gaps.

PatchArc3 min read

This is the first release of PatchArc that you can install, run, and share from. It is also a release with visible seams, and we would rather list them than let you find them. Here is what 0.2.0 does end to end, what it only pretends to do, and what comes next.

What works end to end

Local loop

  • init: config, Ed25519 signing key (0600), SQLite session store, .gitignore entries.
  • start --detach: a background observer that records commits and touched files from Git plumbing on a 1.5-second poll, across branches and worktrees, with no hooks.
  • note, decision, risk, checkpoint, status.
  • stop: computes the deterministic six-section review and seals a .parc (canonical-JSON manifest, Ed25519 signature, per-file SHA-256, per-commit patches, scope index).
  • verify and inspect: seven offline checks; exit 1 on failure.
  • scopes and scopes:graph: ten workspace detectors or explicit config.
  • doctor: four environment checks.

Cloud

  • login: device flow with GitHub or Google approval; credentials at ~/.patcharc/credentials.json (0600); refresh tokens hashed at rest and rotated on use.
  • share: hash-checked upload, server-side re-verification of the signature and every file hash inside a per-capsule Durable Object, publish, and an ArcLink with a random 96-bit slug and 30-day default expiry.
  • Share revoke (410), rotate, and expiry updates through the API; audit events for each.
  • BYOK connections: provider keys envelope-encrypted in a key-broker worker with no public route.
  • Queue consumers for notifications, audit export, and indexing, each with a dead-letter queue; per-identity rate limits.

What prints a message and exits

These commands exist so their names are stable, and do nothing else in 0.2.0: ai:add, ai:list, ai:use, ai:test, ai:usage, account, update, scopes:configure, preview, redact, revoke (prints the API endpoint), and open (prints the capsule path). serve exposes the verified review JSON on localhost but has no viewer page yet.

What exists but is not wired

  • Redaction. The engine with 13 detectors, env-file rules, entropy scanning, forbidden paths, and custom regexes ships with tests, but stop does not call it. Capsules record your configured rules and redaction_applied: false.
  • Test parsing. No parser exists; the Verification section is zero.
  • Agent adapters. The directories are placeholders; commits are captured, transcripts are not.
  • The cloud review. The pipeline tracks 15 steps, but only validation, verification, publish, and notify do work; the published record is a short stub, and the ArcLink page shows it rather than the full review, which lives in the capsule.
  • Private and team links. Accepted by the API, no browser viewer; use public or capability.
  • AI summaries. Wallet, ledger, routes, and the key broker exist; the orchestrator is a stub and produces nothing that reaches a link.
  • Billing. Stripe is switched off; checkout returns a mock.

Two things we got wrong in our own docs

Earlier drafts of the website said the redaction engine ran at seal and that the product recorded test runs. Neither was true of the code. The site now says what the code does. If you find another gap, email hello@patcharc.dev and we will fix the page before we fix the feature.

Next

  1. Wire the redaction engine into stop, with the report populated and redaction_applied: true.
  2. Extract the full review from the capsule in the cloud pipeline and render it on the ArcLink page.
  3. Test-output parsing (JUnit first), so Verification stops reading zero.
  4. A non-interactive token for CI sharing.
  5. A viewer for private links, then teams.

Install from the docs; the CLI reference marks every print-only command.

releases0.2.0roadmap