Skip to content

Release v0.3.1#189

Merged
erishforG merged 31 commits intomainfrom
develop
Apr 21, 2026
Merged

Release v0.3.1#189
erishforG merged 31 commits intomainfrom
develop

Conversation

@erishforG
Copy link
Copy Markdown
Owner

Release v0.3.1

Changes since v0.3.0

erishforG and others added 30 commits April 17, 2026 20:17
Adds a self-diagnostic command that checks git version, config file,
GitHub/Jira tokens, tracker connectivity, shell integration,
tab completions, and remote access. Prints ✓/✗ with fix instructions.

Closes #122

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Adds --full flag showing unpushed commits, ahead/behind divergence,
last commit message and age per worktree. Supports both human table
and JSON output formats.

Closes #120

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

* feat: add parsec init --install for automatic shell setup (#115)

Adds --install flag that auto-appends eval line to ~/.zshrc or
~/.bashrc with confirmation prompt. Detects existing installation
to avoid duplicates.

Closes #115

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

* feat: add --yes flag to init --install for non-interactive use

Allows skipping the confirmation prompt with `parsec init --install -y`,
enabling scripted/automated shell integration setup.

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

---------

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

Document three new features:
- parsec doctor: environment validation with ✓/✗ checks
- parsec list --full: richer worktree metadata
- parsec init --install: automatic shell integration setup

Closes #130

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Adds pr: prefix parsing to the switch command. When a ticket starts
with "pr:", fetches the PR's head branch from GitHub and adopts
the worktree for it.

Closes #116

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

Allows running a shell command after worktree creation without
modifying the config file. Useful for project-specific setup
like npm install or make setup.

Closes #119

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Runs configured pre_ship hook commands before pushing in parsec ship.
If any hook fails, ship is aborted with error output. Use --skip-hooks
to bypass.

Closes #68

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Merges develop into release branch, creates git tag, and creates
GitHub Release with auto-generated changelog. Supports --dry-run
for preview.

Closes #114

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Creates issues on GitHub Issues or Jira directly from the terminal.
Supports --start to chain into worktree creation after issue creation.

Closes #72

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Creates issues on GitHub Issues or Jira with support for labels,
issue types, and optional auto-start of a worktree.

Closes #121

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

Update README.md, docs/reference, and docs/guide with:
- parsec create command reference and examples
- parsec new-issue command reference and examples
- parsec release command reference and examples
- pre_ship hooks config and --skip-hooks flag
- [release] config section
- Updated features list and comparison table
…ro (#160) (#169)

All 27 dispatch functions in output/mod.rs followed the identical
Quiet/Json/Human match pattern. Introduced a dispatch_output! macro
to generate them automatically, eliminating ~200 lines of repetition.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Added tests for sync, adopt, undo, diff, log, ship --no-pr, clean
specific ticket, and root commands. Covers 9 previously untested
command paths using local bare repos without network dependencies.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
New command: parsec rename <old-ticket> <new-ticket>
- Renames the git branch (git branch -m)
- Moves the worktree directory
- Updates state and oplog
- Supports both sibling and internal layouts

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Restructured README for better storytelling:
- Added 'Why parsec?' section with before/after workflow comparison
- Added 'Use Cases' for solo dev, team, and AI agent scenarios
- Renamed 'Why AI-Native?' to 'Impact' with time/risk metrics
- Added Command Reference summary table with anchor links
- All existing content preserved, just reorganized

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add build-binaries job to release workflow
- Builds for linux-x86_64, macos-x86_64, macos-aarch64, windows-x86_64
- Automatically uploads tar.gz/zip to GitHub Release
- Update README with pre-built binary installation instructions

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

Closes #156

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
30s timeout, 10s connect timeout, and automatic retry with exponential
backoff for 429/5xx responses on GET requests.

Closes #158

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Re-running commands is now safe: start switches to existing workspace,
ship detects already-shipped tickets, merge skips already-merged PRs,
clean handles already-cleaned tickets gracefully.

Update test_start_duplicate to expect success (idempotent behavior).

Closes #167

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

Replace duplicated Sibling/Internal layout path logic in create() and
adopt() with a shared worktree_path_for() helper method.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: unify Create and NewIssue into a single command (#155)

Merge the duplicate Create and NewIssue CLI commands into one.
The unified `create` command now supports --issue-type (for Jira)
and multi-value --label flags. `new-issue` is kept as a visible
alias for backward compatibility.

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

* fix: remove duplicated clippy attribute and fix formatting

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

---------

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

* refactor: extract Jira auth helper to eliminate duplicated pattern (#157)

Add authenticate() method to JiraTracker that centralizes token
resolution and Basic/Bearer auth selection. Replaces 9 identical
inline auth blocks across all Jira API methods.

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

* fix: apply cargo fmt to authenticate helper

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

---------

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

* refactor: introduce GitHubClient struct to eliminate HTTP boilerplate

Replace 10 standalone functions with methods on GitHubClient which
encapsulates remote parsing, token resolution, HTTP client creation,
and standard header injection. Callers now construct a client once
and reuse it for multiple API calls.

Closes #152

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

* refactor: replace serde_json::Value with typed API response structs

Introduce private Deserialize structs (ApiPr, ApiCombinedStatus, ApiReview,
ApiCheckRunsResponse, ApiMergeResponse, ApiCreateResponse, ApiPrListItem)
to replace all serde_json::Value usage in GitHubClient method bodies.

This eliminates fragile string-keyed indexing (e.g. resp["title"].as_str())
in favor of compile-time checked struct field access, improving type safety
and making API contract changes caught at compile time.

Closes #159

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

---------

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

Break the 3115-line commands.rs into 11 focused modules under commands/:
workspace, ship, pr, ci, diff, history, stack, tracker_cmds, config,
doctor, release. No behavioral changes — pure structural refactor.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…s display (#186) (#187)

1. Support Jira token in config file: add token field to [tracker.jira],
   resolve priority: env vars > config file token. Config init now prompts.
2. Sanitize Jira HTML error responses: detect HTML bodies and replace with
   concise message instead of dumping entire HTML page on 401 errors.
3. Enrich `parsec status` with live tracker info: fetch ticket summary,
   tracker status, and assignee from Jira/GitHub Issues.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* chore: bump version to 0.4.0

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

* chore: bump version to 0.3.1

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@erishforG erishforG merged commit 048a172 into main Apr 21, 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