293 Commits

Author SHA1 Message Date
Peter Schilling 1867c1315c chore: Release linear-cli version 1.3.0 v1.3.0 2025-12-01 21:23:36 -08:00
Peter Schilling 57f13bf93f finesse readme 2025-12-01 21:21:50 -08:00
Peter Schilling 801c71ae35 switch to jj commands for releases 2025-12-01 21:21:09 -08:00
Peter Schilling b180452c5c update snapshots 2025-12-01 21:20:46 -08:00
Peter Schilling 37bd1d8140 Document issue comment commands in README
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
2025-12-01 21:11:17 -08:00
Peter Schilling f94b9bac6f update changelog 2025-12-01 21:08:46 -08:00
Peter Schilling 52171194ae Capture jj command output and only print on error
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
2025-12-01 21:01:49 -08:00
Peter Schilling 69b0758a3d update changelog 2025-12-01 13:09:28 -08:00
Peter Schilling 239549bcee Disable VCS inference in issue start command
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
2025-12-01 13:02:29 -08:00
Peter Schilling d6d0e21d09 Create new jj change after setting issue description
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
2025-12-01 11:02:02 -08:00
Peter Schilling 76f5ab45bc update changelog 2025-12-01 10:58:23 -08:00
Peter Schilling 77dd899d47 change format of issue describe output (jj-vcs)
this also adds --references flag for non-closing linear magic words (jj-vcs)

Claude-session-id: 7d48da37-dc2f-4c72-9570-f4500f227643
2025-12-01 09:24:02 -08:00
peter schilling 0965332b27 Merge pull request #70 from tallesborges/feat/add-custom-branch-option-to-issue-start
feat: add --branch option to issue start command
2025-12-01 09:23:19 -08:00
Talles Borges eda513a4f6 style: format code with deno fmt 2025-11-25 17:21:27 -03:00
Talles Borges 5126e00a76 feat: add --branch option to issue start command
- 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
2025-11-25 17:19:18 -03:00
peter schilling 5b6b17e759 Merge pull request #69 from tallesborges/feat/add-limit-parameter-to-issue-list
feat: add --limit parameter to issue list command for pagination control
2025-11-24 23:25:34 -08:00
Talles Borges 70f7b1c3f6 fix: add type annotation to fetchIssuesForState result
- 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)
2025-11-24 10:49:06 -03:00
Talles Borges 5629a78761 style: remove comment 2025-11-24 10:34:00 -03:00
Talles Borges 4eb8c78f1e fix: address PR comments
- deno fmt .
- deno lint passes
- remove added comments from issue-list.ts
2025-11-24 10:26:29 -03:00
Talles Borges e9790656ee feat: add --limit parameter to issue list command for pagination control
- 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
2025-11-24 10:26:28 -03:00
peter schilling 63790369ab Merge pull request #68 from tallesborges/feat/include-state-in-json-output
feat: include issue state in --json output
2025-11-23 22:33:46 -08:00
Peter Schilling ba64feb590 update test snapshots 2025-11-23 22:27:02 -08:00
Peter Schilling 24cfbc1ca9 run ci on PRs 2025-11-23 22:20:22 -08:00
Talles Borges 1a9d4e444d feat: include issue state in --json output
- Add state field to fetchIssueDetails GraphQL queries
- Include state (name and color) in JSON output
- Update tests and snapshots to include state field
2025-11-23 13:20:16 -03:00
Peter Schilling b1156432b9 bring in version bump into main
forgot to push this apparently
2025-11-20 08:30:00 -08:00
peter schilling 072fa9ea2b Merge pull request #67 from tallesborges/feat/issue-comments
Add issue comments feature
2025-11-19 20:40:11 -08:00
Talles Borges 206a49ff1b refactor: remove unnecessary getIssueId calls in comment commands
- 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
2025-11-19 16:03:14 -03:00
Talles Borges b84cca942c chore: remove orphaned reply command snapshot file 2025-11-19 15:56:33 -03:00
Talles Borges d51e6dc88d feat: add issue comment list command
- Add 'issue comment list' command to display threaded comments
- Support --json flag for JSON output
- Display comment IDs in brackets for easy reference in update/delete operations
- Threads replies under parent comments with consistent indentation
- Sort root comments newest-first, replies chronological within thread
- Add comprehensive snapshot tests covering basic list, JSON output, and empty cases
- All tests passing
2025-11-19 15:48:11 -03:00
Talles Borges 6e2e4da454 Move GetComment query inline in issue-comment-update 2025-11-19 15:15:56 -03:00
Talles Borges b2eb740511 Update snapshots for comment add tests 2025-11-19 15:09:07 -03:00
Talles Borges f33793bef1 Add test for reply functionality with --parent flag 2025-11-19 15:08:42 -03:00
Talles Borges f06e198b1e Merge reply command into add command with --parent flag
- 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
2025-11-19 15:07:16 -03:00
Talles Borges 1cfafca0f4 refactor: remove --json option from comment commands 2025-11-18 21:59:51 -03:00
Talles Borges 7145690c44 fix: linting and formatting issues in comment commands 2025-11-18 17:39:54 -03:00
Talles Borges 382be7f3db feat: add issue comment management commands
- 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
2025-11-18 17:26:16 -03:00
Peter Schilling 3f23b98659 chore: Release linear-cli version 1.2.1 v1.2.1 2025-11-10 23:58:28 -08:00
Peter Schilling 5b05c98e5d Fix jj empty change detection with --no-graph
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
2025-11-05 22:00:17 -08:00
Peter Schilling d168fe5e0a fmt 2025-10-29 09:51:29 -07:00
Peter Schilling ee2fb3f6b6 Add JSON output support to issue view command
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
2025-10-22 08:41:04 -07:00
Peter Schilling 2eefae82f1 Beads setup
Claude-session-id: f6dc321b-612c-41e5-9633-53a150a82941
2025-10-22 08:31:30 -07:00
Peter Schilling efc7e2d4d6 Use AGENTS.md 2025-10-22 08:28:25 -07:00
Peter Schilling dd4cf794a2 jjagent: session f6dc321b
Claude-session-id: f6dc321b-612c-41e5-9633-53a150a82941
2025-10-22 08:28:25 -07:00
Peter Schilling c4078bd7b5 chore: Release linear-cli version 1.2.0 v1.2.0 2025-10-21 12:00:48 -07:00
Peter Schilling 7515c537d5 chore: lint 2025-10-21 11:59:38 -07:00
Peter Schilling 57f5ffabcd chore: fmt 2025-10-21 11:57:38 -07:00
Peter Schilling 46f1b89a58 chore: Improve claude setup 2025-10-21 11:55:05 -07:00
Peter Schilling be2dd51073 Add jj-vcs support for issue detection
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
2025-10-21 11:55:05 -07:00
Peter Schilling 4c65d6977e Add jj-vcs support to issue start command
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
2025-10-21 11:55:05 -07:00
Peter Schilling e8f73717b7 Add 'issue describe' command
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
2025-10-20 21:22:35 -07:00