Conversation
* feat: add --reviewer and --label flags to ship command (#232, #238) - Add ship.default_reviewers and ship.default_labels config options - CLI flags --reviewer/-r and --label/-l (repeatable) - Request GitHub PR reviewers via API after PR creation - Add labels to PR via GitHub Issues API - CLI flags override config defaults when specified Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: cargo fmt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: stack navigation in PR body and stack submit (#234, #235) - Add stack navigation table to PR description showing parent/child relationships - Add `parsec stack --submit` to ship entire stack in topological order - Stack submit stops on first failure to prevent broken dependency chain Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: cargo fmt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* ci: add Windows and macOS to test matrix, Windows to build matrix (#257) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci: mark Windows tests as continue-on-error until UNC path fix Windows git worktree fails with \\?\ UNC paths from canonicalize(). Tests are informational until the path handling is fixed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci: keep required 'Test' check name, add cross-platform tests separately Branch protection requires check named "Test". Keep ubuntu-only Test job for required checks. Add separate test-cross-platform job for macOS and Windows (informational, continue-on-error). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…262) * fix: add missing reviewers/labels args to stack_submit ship call Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: cargo fmt --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
canonicalize() on Windows returns \\?\C:\... UNC paths that git cannot handle. Use dunce::canonicalize() which strips the prefix when safe, fixing worktree creation on Windows. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ference (#265) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
) Each parsec command now records an execution entry with a UUID, timestamps, duration, status, and optional step-level phases to `.parsec/execlog.jsonl`. Use `parsec log --export` to dump the raw JSONL for debugging or dashboarding. Ship command is instrumented with push and create_pr step tracking. Start and ship commands set the ticket context automatically. Closes #166 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: Bitbucket Cloud forge support (#240) Add BitbucketClient with PR creation, status, merge, find-by-branch, and Pipelines CI monitoring via Bitbucket Cloud REST API v2. Integrate into ship (GitHub > Bitbucket > GitLab fallback chain), pr-status, and merge commands. Add PARSEC_BITBUCKET_TOKEN env var. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve clippy and format warnings for Bitbucket module Add #[allow(dead_code)] for pipeline types and methods not yet wired into CI command. Fix cargo fmt formatting issues. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* test: add 11 integration tests for improved coverage Add tests for: quiet mode, --title flag, --base branch, stacked worktrees (--on), ship --dry-run, doctor command, log filtering, orphan cleanup, rename, start --branch, and JSON error format. Total coverage: 26 → 37 tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci: add release/** branches to CI workflow triggers Enable CI checks for PRs targeting release/* branches so that v1.0 milestone work gets the same CI validation as develop/main. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: fix cargo fmt formatting in tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* test: add 11 integration tests for improved coverage Add tests for: quiet mode, --title flag, --base branch, stacked worktrees (--on), ship --dry-run, doctor command, log filtering, orphan cleanup, rename, start --branch, and JSON error format. Total coverage: 26 → 37 tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style: fix cargo fmt formatting in tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Add `[worktree]` config section so `parsec start` can reuse build artifacts from the main repo instead of forcing a cold rebuild. [worktree] shared_cache = ["target", "node_modules", ".venv"] cache_strategy = "symlink" # "symlink" | "copy" For each entry, the source `<repo_root>/<entry>` is shared into the new worktree. Missing sources and pre-existing destinations are skipped. Sharing failures are logged but never fail the worktree itself. Default is an empty list, preserving prior behavior. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes the two gaps left after the Bitbucket Cloud forge work in #240: * `parsec ci` now dispatches on the origin remote — when it's Bitbucket, it resolves the PR's source branch and polls the Pipelines API (`/repositories/.../pipelines/`) instead of GitHub Checks. The result is shaped into the existing `CiStatus` struct so renderers, --watch, and exit-code logic stay forge-agnostic. * `parsec pr-status`'s Bitbucket branch no longer hardcodes "unknown" for ci_status / review_status. ci_status comes from the latest pipeline for the PR's source branch; review_status comes from the PR participants list. Both fall back to "unknown" on network error rather than failing the whole command. Vocabulary matches the GitHub path exactly: passing | failing | pending | no checks | unknown for CI; approved | changes_requested | pending | no reviews for review. New `BitbucketClient` helpers: `get_latest_pipeline_for_branch`, `get_pr_source_branch`, `get_pr_participants`. Pure mapping functions (`pipeline_to_ci_status`, `participants_to_review_status`) are unit tested directly. Adds `mockito` as a dev-dependency — the codebase had no HTTP mocking infra, and the new `tests/bitbucket_integration_tests.rs` needs it to verify the Bitbucket dispatch path end-to-end without hitting the real api.bitbucket.org. To make this testable, `BitbucketClient` honors a new `PARSEC_BITBUCKET_API_BASE` env var (also useful for future Bitbucket Server / Data Center support). Behaviour for GitHub repositories is unchanged. Test coverage: 20 unit tests for mappings + 5 integration tests (`pr-status` approved/changes_requested/no-pipeline cases, `ci` in-progress + failing-exit-code cases, plus an explicit "never call /repos/*" assertion to catch dispatch regressions). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Version bump and full documentation pass for the v0.4 milestone. Changes: - Cargo.toml: 0.3.3 → 0.4.0 (release workflow reads this to tag and publish). - CHANGELOG.md: convert [Unreleased] → [0.4.0] - 2026-05-04 with full Added/Changed/Fixed/CI sections covering all 16 commits in the milestone: Bitbucket Cloud forge (#240), Bitbucket Pipelines CI (#279), parsec compress (#236), ship --template (#233), ship --reviewer/--label and stack --submit (#261), stack navigation comments (#234), draft default (#238), [worktree] shared cache (#207), offline mode (#237), observability lite (#166), config JSON Schema (#239), Windows CI (#257) + UNC fix (#263), 11 integration tests (#278), release/** CI trigger (#277), and the docs cross-link update (#265). - README.md: features list refreshed; new sections for parsec compress, parsec config schema, log --export JSONL, [worktree], [observability] config, Bitbucket env vars (PARSEC_BITBUCKET_TOKEN, BITBUCKET_TOKEN, PARSEC_BITBUCKET_API_BASE), PARSEC_OFFLINE; comparison table updated to 1st-class Bitbucket forge support. - docs/index.html: 5 new feature cards (Bitbucket Cloud + Pipelines, Compress, Offline, Observability, Config Schema). Global options banner gains --offline. - docs/reference/index.html: new compress command block, --offline in global options, log --export documented with JSONL example, config schema subcommand documented with schemastore reference. - docs/guide/index.html: tracker.type values include bitbucket; new "What's New in v0.4" section walks through every v0.4 feature with end-to-end examples. Sidebar updated. The release workflow will snapshot docs/{index,guide,reference}.html into docs/v/0.4.0/ on merge — these updates ensure the v0.4.0 docs snapshot is complete. Cargo.lock is gitignored per repo convention; cargo build verified on the bumped version locally. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* docs: refactor README + landing page (heavy slim)
Critical review found four big problems:
- README.md was 1527 lines — same value-prop messaging repeated 4-5 times
(tagline → What is → Why → Problem → Solution), Use Cases section
duplicated, the entire 933-line Command Reference was a copy of
docs/reference/index.html.
- docs/index.html had 22 feature cards laid out flat — no priority,
scroll fatigue, mega-cap features (Bitbucket, Stacked PRs) shown at
the same visual weight as ship.draft defaults.
- AI agent messaging took ~30% of README, risking miscategorization as
an "AI tool" when most users are general developers.
- The "What's New in v0.4" section in the guide was version-specific —
same problem will recur for v0.5, v0.6.
Changes
-------
README.md (1527 → 204 lines)
- New tagline: "From ticket to PR. One command."
- Single demo block (no repeats), 60-second tour, Top 6 features,
comparison table, error code matrix, doc links.
- Removed: duplicated Use Cases section, full Command Reference (now
linked to docs/reference/), AI Token Efficiency / Before-After
expansion, redundant Why/Problem/Solution sections.
docs/index.html (22 cards → 6 featured cards + collapsible "More features")
- 6 consolidated cards: Ticket-driven worktrees · Stacked PRs · Multi-
forge & multi-CI · One-step ship + lifecycle · Built for agents ·
Build cache + ergonomics.
- Remaining 16 features compressed into a `<details>` block — visible
on demand, no scroll fatigue, all features still discoverable.
- AI agent messaging consolidated to one card ("Built for agents")
covering --json, JSONL, error codes, offline, headless, schemastore.
docs/guide/index.html — "What's New in v0.4" section renamed to
"Recipes & Examples" with a permanent home; future versions can keep
adding recipes here without further renames.
All HTML validated (depth balanced). README links to docs/{guide,reference}
verified. The release workflow's docs snapshot will pick this up on next
release.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* docs: SEO + AEO upgrades (llms.txt, structured data, social cards)
Extends the docs refactor with discovery layer improvements aimed at
both classic search engines and modern answer engines (Anthropic /
OpenAI / Perplexity / Google AI).
AEO (Answer Engine Optimization)
--------------------------------
- New `docs/llms.txt` (3.5 KB) — emerging standard for LLM crawlers.
Concise project summary with key facts (latest version, install,
auth, config, error codes, comparisons), structured for clean LLM
ingestion.
- New `docs/llms-full.txt` (13 KB) — comprehensive plain-text dump
covering all 27 commands, configuration, auth, error codes, stacked
PRs, multi-forge support, observability, FAQ. One-stop file for any
LLM/agent that needs the full picture.
- `docs/robots.txt` explicitly welcomes GPTBot, ChatGPT-User,
ClaudeBot, anthropic-ai, PerplexityBot, Google-Extended, CCBot.
- Added `<link rel="alternate" type="text/plain" href="/llms.txt">`
on every page so crawlers can discover the LLM-friendly variants.
Structured data (Schema.org JSON-LD)
------------------------------------
docs/index.html now emits 4 JSON-LD blocks:
1. SoftwareApplication — bumped to v0.4.0, datePublished 2026-05-04,
softwareRequirements, releaseNotes URL, screenshot URL,
applicationSubCategory, expanded keywords (Bitbucket, JSONL, etc.)
2. HowTo — 5-step "60-second tour" (start → switch → commit → ship →
ci/merge) so Google can render a HowTo carousel and AI engines
can answer "how do I use parsec".
3. BreadcrumbList — supports Google sitelinks.
4. FAQPage — expanded from 10 → 18 Q&As with v0.4-specific entries
(Bitbucket, offline, observability JSONL, compress, config schema,
forges/CI, build cache).
docs/guide/index.html — TechArticle + BreadcrumbList (replaces the
two stale duplicate JSON-LD blocks that existed lower in the file).
docs/reference/index.html — TechArticle + BreadcrumbList (same
cleanup of duplicate blocks).
Social / SEO meta polish
------------------------
- og:image + twitter:image (demo.gif as fallback) — previously absent;
social shares now show a preview.
- og:image:width / height / alt, og:locale, og:site_name on all pages.
- Page titles tightened with primary keywords:
- index: "From ticket to PR. One command. | Git worktree lifecycle…"
- guide: "Getting Started Guide — git-parsec | Install, configure,
ship in 5 minutes"
- reference: "Command Reference — git-parsec | All 27 commands…"
- Descriptions rewritten to surface v0.4 differentiators (Bitbucket,
stacked PRs, JSONL observability) while staying under 160 chars.
- robots meta with max-snippet/max-image-preview/max-video-preview
signals for richer SERP rendering.
Sitemap
-------
- All `lastmod` dates bumped from 2026-04-22 → 2026-05-04 to trigger
re-crawl.
- llms.txt and llms-full.txt added to sitemap with priority 0.7.
Validation
----------
- All 3 HTML pages parse with balanced depth.
- All 8 JSON-LD blocks (4 + 2 + 2) parse as valid JSON, types verified.
- Local server confirms files served with correct MIME types.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
4 tasks
chore: sync main into develop (resolves v0.4.0 release conflicts)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v0.4.0 release: develop → main.
What ships in v0.4.0
16 feature/fix commits + release prep + docs refactor + SEO/AEO upgrades since v0.3.3 (2026-04-22).
Major features
parsec compress— squash branch commits before ship (feat: parsec compress — squash branch commits #236)parsec ship --template— auto-fill PR description from PULL_REQUEST_TEMPLATE.md (feat: parsec ship --template — PR template auto-population #233)ship --reviewer/--label, stack--submit(v0.4 features: Windows CI, ship reviewers/labels, stack submit #261)ship.draftconfig +--draftflag (feat: draft PR default config (ship.draft) #238)[worktree].shared_cache— share build caches via symlink/copy (feat: selective build cache sharing between worktrees #207)--offlineflag +[workspace].offlineconfig (feat: offline mode toggle #237)log --exportJSONL (feat: Observability lite — execution ID, step status, JSONL log export #166)parsec config schema+ schemastore.org publication (feat: config JSON Schema → schemastore.org registration #239)duncecrate (ci: add Windows test coverage #257, 263: #263 #263)Documentation overhaul (this release)
docs/llms.txt+docs/llms-full.txt: emerging standard for LLM crawler ingestionVersioning
Cargo.toml: 0.3.3 → 0.4.0CHANGELOG.md: full[0.4.0]section with Added / Changed / Fixed / CIOn merge — automatic actions
The release workflow on push to
mainwill:cargo publish→ crates.io (one-way: yank-only, no unpublish)docs/v/0.4.0/from current docs and commit back to mainTest plan
cargo checkpasses locally[0.4.0]section complete and dated🤖 Generated with Claude Code