Skip to content

Release 0.3.0#113

Merged
erishforG merged 24 commits intomainfrom
develop
Apr 16, 2026
Merged

Release 0.3.0#113
erishforG merged 24 commits intomainfrom
develop

Conversation

@erishforG
Copy link
Copy Markdown
Owner

Summary

Major release with host-aware GitHub token resolution, tracker integration improvements, and CLI UX enhancements.

New Features

Bug Fixes

Other

Test plan

  • All features tested via parsec workflow (start → ship → merge → clean)
  • Host-aware tokens verified with github.com and GHE
  • Per-repo tracker override verified
  • Remote branch cleanup confirmed after merge
  • Shell integration (parsec init) verified

🤖 Generated with Claude Code

erishforG and others added 24 commits April 16, 2026 00:43
* feat: add confirmation prompt before post_create hook execution

Hooks defined in config.toml [hooks] post_create now require user
confirmation before running. Set PARSEC_YES=1 to skip the prompt
in CI environments.

Closes #55

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>
Only JIRA_, PARSEC_, CONFLUENCE_, ATLASSIAN_ prefixed variables
are now loaded from .atlassian-env. Other variables are ignored
with a warning to prevent environment manipulation.

Closes #56

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Replace mutable tag references with full SHA hashes to prevent
supply chain attacks via tag manipulation.

- actions/checkout@v4 → @34e114876b...
- dtolnay/rust-toolchain@stable → @29eef336d9...
- Swatinem/rust-cache@v2 → @e18b497796...

Closes #58

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Adds a Security Audit job to CI that runs cargo audit on every
push and PR to catch known vulnerabilities in dependencies.

Closes #57

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Replace tabled grid with terminal-width-independent vertical sections
- Add project/board_id/assignee to JiraConfig for config.toml defaults
- Add --assignee and --all CLI flags with resolution chain (CLI > env > config)
- Enhance JSON output with sprint id, ticket status, url, total_count
- Centralize all env var definitions in src/env.rs module
- Add AI-Native CLI section, board docs, and badges to README

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
)

- Split ship into ship_push() and ship_cleanup() phases
- Only clean up worktree after successful PR creation
- Print "Shipped (partial)" in yellow when PR fails
- Return non-zero exit code on partial failure
- Preserve worktree with actionable retry message

Closes #63, closes #66

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Allows overriding the target base branch for PRs via CLI flag or config.
Resolution: --base CLI > config default_base > worktree base branch.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Fetches and displays ticket details (title, status, assignee, URL)
from the configured tracker. Auto-detects ticket from current worktree.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Adds [tracker.auto_transition] config section with on_start, on_ship,
and on_merge fields. When configured, parsec automatically transitions
Jira tickets to the specified status after each operation.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- adopt() auto-detects existing PRs and records synthetic oplog entry
- pr_status() falls back to branch-based PR lookup for active workspaces
- merge() improved error message mentioning token check

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…) (#87)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…fallback (#67) (#88)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Allow users to configure default base branch for worktree creation
via settings.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Display associated PR number and status when listing worktrees.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Detect and clean up worktrees whose tracking branches no longer exist
on the remote.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat(github): host-aware token resolution for multi-host support (#93)

Resolve GitHub tokens per-host so parsec works with both github.com and
GHE instances simultaneously. Token priority: config per-host → env vars.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(ship): use --force-with-lease for push to handle retries (#94)

When retrying parsec ship after a partial failure (push OK, PR failed),
amended commits cause non-fast-forward errors. Using --force-with-lease
safely handles this while preventing accidental overwrites.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* style: fix formatting for push_branch

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(ship): detect existing PR and skip creation on retry (#98)

Before creating a new PR, check if one already exists for the branch.
This prevents 422 errors when retrying parsec ship.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat(ticket): add --comment flag and comment_on_ship config (#71)

- Add `parsec ticket --comment <TEXT>` to post comments on Jira/GitHub Issues
- Add `comment_on_ship` config under [tracker] to auto-post PR link on ship
- Support both human and JSON output modes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(ship): move auto_cleanup from ship to merge (#96)

Ship no longer removes the worktree after PR creation, keeping it
available for review fixes. Merge now respects auto_cleanup setting
for worktree removal after PR is merged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
… (#100)

- Query Jira for assigned tickets via JQL
- Filter out tickets with active worktrees
- Display with priority color-coding
- Support --pick for interactive selection
- Support --json for agent integration

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
#101)

Add [repos."owner/repo".tracker] sections to override the global tracker
provider per repository. parsec extracts owner/repo from git remote URL
and applies matching overrides at config load time.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…104)

* fix(tracker): use host-aware token in GithubIssueTracker (#102)

GithubIssueTracker now uses per-host config tokens instead of only env
vars, enabling proper issue title/URL fetch for PR creation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(ship): use freshly fetched ticket title for PR creation (#102)

Prefer the live-fetched issue title over the stored one when creating
PRs, ensuring accurate PR titles even when the original start didn't
capture the title.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
All `let _ = git::delete_branch(...)` and silent remote branch deletion
failures now emit eprintln warnings instead of being silently ignored.

Fixes #105

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Add --prune flag to git fetch and call fetch after remote branch
deletion in merge to clean up stale remote-tracking references.

Fixes #107

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Closes #108

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…on (#112)

- `parsec root`: prints main repo root path
- `parsec init zsh/bash`: outputs shell wrapper that auto-cd's on switch
  and recovers CWD after merge worktree cleanup
- Deprecate `parsec config shell` in favor of `parsec init`

Fixes #111

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@erishforG erishforG merged commit f8c9646 into main Apr 16, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant