Conversation
* 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>
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>
* 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>
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.
Summary
Major release with host-aware GitHub token resolution, tracker integration improvements, and CLI UX enhancements.
New Features
[github."hostname"]config sections (fix: host-aware GitHub token resolution for multi-host environments #93)[repos."owner/repo".tracker]config (config: support per-repo config to override global settings #97)parsec ticket --comment— post comments to tickets (feat:parsec ticket --comment— add comments from worktree #71)parsec inbox— list assigned tickets without active worktrees (feat:parsec inbox— list assigned tickets without active worktrees #73)parsec clean --orphans— remove orphan state entries (feat: parsec clean 고아 워크트리 엔트리 정리 #86)parsec init zsh/bash— shell integration for auto-cd after merge (feat: add parsec init and parsec root subcommands for shell integration #111)parsec root— print main repo root path (feat: add parsec init and parsec root subcommands for shell integration #111)parsec list— show PR state inline (feat: parsec list에 PR 상태 인라인 표시 #85)[worktree] default_base(feat: parsec start default base branch config (workspace.default_base) #84)on_start/on_ship/on_merge(feat: automatic ticket status transitions on lifecycle events #70)parsec ticket— tracker lookup command (feat:parsec ticket— view ticket details from worktree context #69)--baseflag — override base branch per-ship (ship: add --base option and default_base config #64)Bug Fixes
--force-with-leasefor safe push retries (ship: retry after partial ship fails with non-fast-forward push #94)Other
Test plan
🤖 Generated with Claude Code