Fix flaky test that was failing due to non-deterministic port numbers
in error messages and Docker listening on the hardcoded test port.
- Change test endpoint from port 3000 to 59123 to avoid Docker
conflicts that caused timeouts
- Normalize ephemeral port numbers in error messages to a stable
placeholder (127.0.0.1:PORT)
Claude-session-id: a1a55e89-c333-41b3-8034-b9cbe6514ad3
Pass CARGO_DIST_TARGET to deno compile to ensure correct architecture
binaries are produced for each target. Without --target, deno defaults to
the host architecture, causing aarch64 release assets to contain x86_64
binaries when built on x86_64 GitHub runners.
Claude-session-id: c7276b7f-5177-42e7-86c0-dcda770612bf
Add documentation for the new comment management commands:
- linear issue comment list: view all comments on an issue
- linear issue comment add: add a new comment or reply
- linear issue comment update: modify an existing comment
Claude-session-id: d5069805-c5b7-479c-bc65-f7d20f7c39d7
Update prepareJjWorkingState, setJjDescription, and
createJjNewChange to capture stdout and stderr instead of
inheriting them. Only print errors to the console if the
command fails.
Claude-session-id: ae02c694-fdfb-4a59-b56a-72b3761afb1a
Skip looking up the issue ID from the current git branch or jj
description when no ID is provided. This ensures the command always
prompts the user to select from a list of unstarted issues rather
than automatically continuing work on the current issue.
Claude-session-id: bef23d17-e070-4dc2-a228-23d536c40cb9
When starting work on an issue with jj, the workflow now creates a
new empty change after setting the description. This allows the issue
metadata to be in a parent commit while having a fresh change to work
on, matching typical development workflows.
- Add createJjNewChange function to jj.ts
- Call createJjNewChange after setJjDescription in startVcsWork
- Import new function in vcs.ts
Claude-session-id: d386df16-73ae-46eb-b7d6-bcc3d6d74df3
- Add option to customize branch name
- Allows overriding the auto-generated branch name based on issue identifier
- Follows project naming conventions (consistent with --base/--head in pull-request)
- Maintains backward compatibility - existing behavior unchanged when option not provided
- Add GetIssuesForStateQuery type import
- Add explicit type annotation for result variable in pagination loop
- Update snapshot tests to reflect new --limit option in help text
- Fixes TypeScript type checking error (TS7022)
- Add --limit flag to control how many issues are fetched (default: 50)
- Use --limit 0 to fetch all issues without pagination limit
- Implement proper pagination in fetchIssuesForState() to handle multiple pages
- Fetch 100 issues per page internally for efficiency
- Maintains backward compatibility with default limit of 50 issues
- Fixes issue where issues beyond the first page (e.g., WAPI-1902) were not returned
- Add state field to fetchIssueDetails GraphQL queries
- Include state (name and color) in JSON output
- Update tests and snapshots to include state field
- issue-comment-list and issue-comment-add were calling getIssueId() to
convert the identifier to internal UUID before querying, but the Linear
GraphQL API accepts the identifier directly
- this removes unnecessary extra GraphQL requests and aligns with the
pattern used by issue-describe and issue-view
- getIssueId is still needed only in issue-create for mutations that
require the internal UUID
- Remove separate commentReplyCommand and issue-comment-reply.ts
- Add --parent flag to comment add command for replying to comments
- Both issueId and parentId are now included in mutation input
- Fetch existing comment body for update command prompt default
- Update issue-comment.ts to remove reply command registration
- Delete orphaned issue-comment-reply.test.ts
- Add 'linear issue comment' subcommand group
- Implement add, reply, and update subcommands for managing issue comments
- Includes tests and snapshot files for all three subcommands
- Support for both interactive and flag-based input
- JSON output option for programmatic use
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