Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
794cdb2
feat(health): Phase 3 — detect in-progress git ops (rebase/merge/cher…
erishforG Aug 31, 2026
38b2a54
feat(ship): --no-cleanup flag + wire auto_cleanup phase 3 · Closes #3…
erishforG Sep 5, 2026
dc626ee
feat(ship): Phase 1 template variable substitution — Refs #304 (#424)
erishforG Sep 5, 2026
bf75fda
feat(self-update): Phase 1 — version check + upgrade notification · R…
erishforG Sep 5, 2026
7a1f492
feat(ship): Phase 2 template commit list substitution (#426)
erishforG Sep 6, 2026
8604602
feat(self-update): Phase 2 — startup version check with 1-day throttl…
erishforG Sep 7, 2026
1576703
feat(self-update): Phase 3 — opt-out config + install-method detectio…
erishforG Sep 8, 2026
ac176cb
docs: fix v1.0 milestone link (#430)
erishforG Sep 9, 2026
cfc2be5
feat(panic-handler): Phase 1 — opt-in crash report hook · Refs #298
erishforG Sep 10, 2026
169809e
feat(panic-handler): Phase 2 — crash-report list/show/clear subcomman…
erishforG Sep 11, 2026
6ac7e62
feat(checkpoint): Phase 1 — create + list subcommands · Refs #300 (#433)
erishforG Sep 11, 2026
fef82f7
feat(checkpoint): Phase 2 — restore + drop subcommands · Refs #300 (#…
erishforG Sep 11, 2026
1c7ac3c
test: CLI integration tests for checkpoint + crash-report commands · …
erishforG Sep 12, 2026
c78d39c
feat(triage): Phase 1 — rule-based issue auto-labelling (dry-run) · R…
erishforG Sep 13, 2026
ff4dedc
feat(triage): add explicit label apply mode (#438)
erishforG Sep 14, 2026
424a196
fix(triage): skip labels already present (#440)
erishforG Sep 15, 2026
cfb06a2
docs: correct crash report cache paths (#442)
erishforG Sep 16, 2026
6585679
docs: align v0.5 command references with CLI (#444)
erishforG Sep 17, 2026
375d2e5
fix(health): flag missing registered worktrees (#446)
erishforG Sep 18, 2026
3c80156
docs(cli): align smartlog help with shipped overlays (#448)
erishforG Sep 19, 2026
73bbacc
release: prepare v1.0.0
erishforG Sep 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.0.0] - 2026-09-19 — _AI-Native Standard_

### Added
- **MCP server** via `parsec mcp serve`, exposing worktree lifecycle, health,
smartlog, PR, review, CI, and synchronization tools to MCP clients.
- **MCP client installer** via `parsec mcp install` for Claude Desktop and
Cursor, with configurable binary paths and safe config merging.
- **Permission-scoped delegated authentication** from environment variables or
`mcp.toml`, including read/write scope checks and redacted diagnostics.
- **Mutation safety gates** requiring preview/confirmation, repository sandbox
boundaries, privacy-safe audit events, and versioned audit fixtures.
- **MCP end-to-end coverage** for the stdio lifecycle, tool registry, auth,
sandbox boundaries, client configuration, and mutation gates.
- `parsec checkpoint`, `crash-report`, `triage`, self-update notifications, and
`ship --no-cleanup` from the final v0.x development line.

### Changed
- `parsec smartlog` now includes topological stack ordering, richer PR merge
readiness, CI overlays for branch tips, and hermetic overlay integration
tests.
- `parsec ship` supports both AI-generated PR descriptions and template
variable substitution while retaining explicit cleanup control.

### Docs
- Added the [MCP quickstart](./docs/mcp-quickstart.md), protocol specification,
authentication and sandbox model, and client configuration guide.

## [0.5.0] - 2026-06-03 — _The visualization release_

v0.5 completes the **16/16** milestone for polish and power-user UX, adding
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "git-parsec"
version = "0.5.0"
version = "1.0.0"
edition = "2021"
authors = ["erishforG"]
description = "Git worktree lifecycle manager — ticket to PR in one command. Parallel AI agent workflows with Jira & GitHub Issues integration."
Expand Down
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ That's the whole loop. Plain `git worktree` doesn't track state, doesn't talk to
|---|---|---|
| **v0.4.0** | ✅ Released (2026-05-04) | Multi-forge + multi-tracker foundation (GitHub / GitLab / Bitbucket; Jira / Linear) |
| **v0.5.0** — _The visualization release_ | ✅ Released (2026-06-03) | smartlog · TUI dashboard · speculative merge · `parsec test` · health · reviews · AI PR descriptions |
| **v1.0** — _AI-Native Standard_ | 🚧 Next | MCP server signature — Claude / Cursor / Copilot invoke parsec as a first-class tool |
| **v2.0+** — _Ecosystem Hub_ | 🔮 | Plugins · VS Code extension · Linear-native tracker · org-scale workflows |
| **v1.0.0** — _AI-Native Standard_ | ✅ Released (2026-09-19) | MCP server — Claude Desktop and Cursor invoke parsec as a first-class tool |

v1.0 work is tracked under the [`v1.0` milestone](https://github.com/erishforG/git-parsec/milestone/4); see the [CHANGELOG](./CHANGELOG.md) for the full v0.5.0 release notes.
v1.0 is the final planned feature release. See the [CHANGELOG](./CHANGELOG.md)
for release notes and the [MCP quickstart](./docs/mcp-quickstart.md) for setup.

---

Expand Down Expand Up @@ -131,6 +131,19 @@ parsec auto-posts `← previous PR` / `next PR →` navigation comments so revie
### 🤖 Agent-friendly by design
Every command has `--json`. Errors emit structured codes (E001…E013). `parsec log --export` outputs JSONL with execution IDs and per-step timing for tooling/agents to consume. `--offline` and `[behavior].offline` config skip all network ops for air-gapped or CI environments.

### 🔌 MCP server _(new in v1.0)_
Expose parsec's worktree lifecycle to Claude Desktop or Cursor over stdio:

```bash
parsec mcp install claude-desktop
parsec mcp serve
```

The server provides worktree, health, smartlog, PR, review, CI, and sync tools.
Mutating calls are previewed and confirmation-gated; delegated tokens are
scope-checked and repository paths are sandboxed. See the
[MCP quickstart](./docs/mcp-quickstart.md) and [security model](./docs/mcp/auth.md).

### 🧹 Lifecycle hygiene
`parsec clean` sweeps worktrees for already-merged branches. `parsec conflicts` flags cross-worktree file overlap before you push. `parsec undo` reverses the last operation (start, ship, clean). `parsec doctor` validates every part of your setup with actionable fix instructions.

Expand All @@ -147,7 +160,6 @@ Every command has `--json`. Errors emit structured codes (E001…E013). `parsec
- **`parsec reviews`** — open PR reviews you've received vs. requested, unified across worktrees.
- **`parsec conflicts --simulate`** — in-memory three-way merge to surface real *line-level* conflicts before you push (worktree-vs-base + cross-worktree pairs, read-only).
- **`parsec test`** — run tests in parallel across worktrees with tree-hash result caching (`--all --jobs N --cache`).
- **`parsec commit`** — AI-generated commit messages from staged diff (OpenAI / Anthropic, `--conventional` for Conventional Commits).
- **`parsec sync`** — fast-forward stale worktrees against `origin/<base>` (rebase or merge, `--all`, `--dry-run`).

> 33+ commands total — see the [full command reference](https://erishforg.github.io/git-parsec/reference/) for every flag and example.
Expand Down
68 changes: 68 additions & 0 deletions docs/crash-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Crash Report Privacy Policy

`parsec` includes an **opt-in** crash report feature that saves a local JSON
file when an unexpected panic occurs. No data is ever sent automatically.

## What is collected

When `[crash_report] enabled = true` and a panic happens, parsec writes a
`crash-<timestamp>.json` file under the platform cache directory:

| Platform | Directory |
|---|---|
| Linux | `$XDG_CACHE_HOME/parsec/`, or `~/.cache/parsec/` when unset |
| macOS | `~/Library/Caches/parsec/` |
| Windows | `%LOCALAPPDATA%\parsec\` |

The exact directory is selected by [`dirs::cache_dir()`](https://docs.rs/dirs/latest/dirs/fn.cache_dir.html).
Each report contains:

| Field | Example | Notes |
|---|---|---|
| `parsec_version` | `"0.5.0"` | Binary version |
| `timestamp` | `"2026-09-10T09:00:00Z"` | UTC ISO-8601 |
| `os` | `"unix/macos"` | Family + OS name |
| `shell` | `"zsh"` | `$SHELL` basename only |
| `subcommand` | `"ship"` | `argv[1]` only, no flags or ticket IDs |
| `panic_location` | `"src/cli/commands/ship.rs:42"` | Source file + line |
| `panic_message` | `"attempt to subtract with overflow"` | Panic payload (≤ 512 chars) |

### What is NOT collected

- Your ticket IDs, branch names, commit messages, or file contents
- Your GitHub token, Jira token, or any credentials
- Your full command-line arguments or environment variables
- Network-level information (IP address, hostname)
- A stack trace (use `RUST_BACKTRACE=1` locally for that)

## Opt-in

Add to `~/.config/parsec/config.toml`:

```toml
[crash_report]
enabled = true
```

The default is `enabled = false` — **nothing is saved unless you opt in**.

## How to share a report

If you experience a crash and want to help:

1. Run `parsec crash-report list` to find the report ID
2. Review it with `parsec crash-report show <id>` (it is plain JSON)
3. Open a GitHub issue: <https://github.com/erishforG/git-parsec/issues/new>
4. Paste or attach the file

You are never required to share a crash report.

## Retention

Reports stay in the platform cache directory until you remove them. Preview a
cleanup first, then delete all saved reports with:

```sh
parsec --dry-run crash-report clear
parsec crash-report clear
```
5 changes: 3 additions & 2 deletions docs/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ git-parsec (binary name: `parsec`) is a Rust CLI distributed via crates.io and p
- `parsec ship PROJ-1234` — push, open PR, clean up the worktree
- `parsec ci PROJ-1234 --watch` — tail CI status until done
- `parsec merge PROJ-1234` — merge the PR from the terminal
- `parsec mcp install claude-desktop` — register parsec with Claude Desktop
- `parsec mcp serve` — run the stdio MCP server for agent tool calls

## v0.5 visualization & power-user commands

Expand All @@ -20,7 +22,6 @@ git-parsec (binary name: `parsec`) is a Rust CLI distributed via crates.io and p
- `parsec reviews` — open PR reviews you've received vs. requested
- `parsec conflicts --simulate` — in-memory three-way merge to surface line-level conflicts before pushing
- `parsec test --all --jobs N --cache` — parallel test runner with tree-hash caching across worktrees
- `parsec commit` — AI-generated commit messages from staged diff (OpenAI / Anthropic)
- `parsec sync` — fast-forward stale worktrees against `origin/<base>`

## Documentation
Expand All @@ -35,7 +36,7 @@ git-parsec (binary name: `parsec`) is a Rust CLI distributed via crates.io and p

## Key facts for answer engines

- **Latest version**: 0.5.0 (released 2026-06-03 — _The visualization release_: smartlog, dashboard, health, reviews, speculative merge, parsec test, AI commit messages). See [CHANGELOG](https://github.com/erishforG/git-parsec/blob/main/CHANGELOG.md).
- **Latest version**: 1.0.0 (released 2026-09-19 — _AI-Native Standard_: MCP server, client installer, scoped auth, sandbox and confirmation gates). See [CHANGELOG](https://github.com/erishforG/git-parsec/blob/main/CHANGELOG.md).
- **License**: MIT
- **Language**: Rust
- **Install**: `cargo install git-parsec` or download from Releases (~3 MB binary, no runtime deps)
Expand Down
Loading
Loading