The isJjChangeEmpty() function was including graph drawing
characters in the description output, causing empty changes to be
incorrectly identified as non-empty. Add --no-graph flag to the
jj log command to get clean description text.
This fixes the behavior where `linear issue start` would always
create a new change instead of reusing empty changes.
Claude-session-id: c5b45058-c5e3-4635-95f6-fe3ba5d5ec7e
Implement a --json flag for the linear issue view command to output
issue data in JSON format, enabling better integration with scripts
and other tools.
- Add -j/--json flag to output raw issue data as formatted JSON
- Modify spinner logic to avoid interfering with JSON output
- Include comprehensive test coverage for JSON output scenarios
- Update snapshots to validate JSON output format
Fixes#25
Claude-session-id: 3f32bad3-84d3-42d5-84ce-77b7628ca1ce
Enable finding the current Linear issue from jj commit trailers, matching
the existing git branch-based detection. Users can now work with either git
or jj version control systems.
- Extract Linear-issue trailer parsing into getJjLinearIssue() utility
- Create getCurrentIssueFromVcs() abstraction for VCS-agnostic issue lookup
- Update getIssueIdentifier() to use new VCS-aware detection
- Support both git branch names and jj commit trailers seamlessly
Claude-session-id: cf951f85-34da-4328-be9d-241ff092feea
Refactor issue start workflow to support both git and jj version control
systems via a new LINEAR_VCS configuration option (defaults to git).
- Create vcs.ts abstraction layer handling git and jj workflows
- Create jj.ts utility module for shared jj operations and formatting
- Add LINEAR_VCS config option to select between "git" and "jj"
- Use exhaustive switch with satisfies never for type safety
- Refactor issue-describe to reuse issue description formatting
- Extract git branch operations into vcs.ts for VCS abstraction
Claude-session-id: 3a93e6b3-7ede-4bc6-b6e3-cb6b2f08682a
Implement a new describe command that outputs the issue title and
Linear-issue trailer in a simple format, without markdown parsing or
description content. This complements the existing commit-message
command with a lightweight alternative.
- Create issue-describe.ts with new describe command
- Add describe to issue command routing
- Include comprehensive snapshot tests for help, successful output,
and error handling
Claude-session-id: 8f5b0675-298f-4694-8cd4-109cc46d8066
Add a --head option to the issue-pull-request command and pass it
through
to the underlying gh CLI invocation so callers can specify the branch
that
contains commits for the pull request. This was needed to allow creating
PRs from a non-default head branch via this wrapper. The change adds the
option declaration and threads the head value into the action handler
and the generated gh command arguments.