Commit Graph
30 Commits
Author SHA1 Message Date
1grzyb1 29be1994a9 Fix property-based workflow
Once a day github action will check failing property-based tests and run claude agent to try fix those failing cases and prepare PR with fix
2026-08-27 10:40:50 +02:00
Alex PlateandClaude Opus 5 3d0398c127 Set the YouTrack Area field with a Claude workflow
Moves the Area field agent from the JetBrains/vim-claude-robot repository
into this one, where the YouTrack tooling and the Claude proxy setup
already exist.

The previous agent passed a single prompt to `claude -p` with the ticket
summary, the ticket description, and the list of Area values. It had no
tools, so it could not read the ticket comments, see how an Area value is
used on other tickets, or look at the source. The new workflow runs an
agent that reads the ticket, searches comparable tickets when the right
value is not obvious, and greps the code when the ticket names a command
or an option.

A script selects the ticket, so a run with nothing to triage ends before
the agent starts.

Add to the YouTrack tools:
- searchTickets, which reports the Area values of the tickets it finds
- getAreaValues and setArea, which reject unknown value names before
  writing and verify the field afterwards
- setTagByName, so a tag no longer needs a hardcoded id

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-21 12:56:56 +03:00
1grzyb1 dd4d9b5a8a publish whatsnew pages on gh pages 2026-08-13 10:16:34 +02:00
1grzyb1 df07da9227 VIM-4285 Align changelog promotion with consistent header format 2026-07-24 09:23:46 +02:00
Alex PlateandClaude Opus 4.8 df38f3b31e Migrate EAP release actions script to TypeScript
Replace the scripts:eapReleaseActions Gradle/Kotlin task with a tsx
implementation wired into the EAP release pipeline as a script step.
Behavior is unchanged: Ready To Release tickets not yet tagged as
released in EAP get the tag plus the EAP-availability comment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 17:51:04 +03:00
Alex Plate e1eff60d31 Migrate TeamCity build number script to TypeScript 2026-05-22 16:49:43 +03:00
Alex Plate e66731216b chore: update package lock 2026-05-22 16:37:53 +03:00
Alex PlateandClaude Opus 4.7 618bd5b185 Wire TypeScript changelog promoter into release pipeline
Replaces the long-disabled Kotlin changelogUpdateUnreleased/commitChanges
gradle steps with a new TS CLI (scripts-ts/src/promoteChangelog.ts) plus
two TC script steps:

* "Update change log" + "Commit preparation changes" — run on the
  release branch before tagging, so the release tag points at the
  promoted CHANGES.md commit.
* "Sync changelog to master" — runs after publish to mirror the
  promotion on master. Master push is soft-fail so an upstream race
  with the daily cron doesn't sink the marketplace release.

The promoter is a pure function (replace `## [To Be Released]` →
`## X.Y.Z, YYYY-MM-DD` for major/minor; no-op for patch releases per
the project convention that patches roll into the parent minor). Ten
vitest tests cover the behavior. CLI wrapper handles the TC entrypoint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:35:40 +03:00
Alex PlateandClaude Opus 4.7 8b74fa25a5 Register dev.ckob.lazygit in plugin compatibility checks
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 16:07:14 +03:00
Alex Plate 0527ad3359 Remove TeamCity TypeScript scripts smoke test
The smoke test served its purpose of verifying TypeScript scripts
can run on TeamCity. Other scripts-ts/ automation is unaffected.
2026-05-08 12:34:21 +03:00
Alex PlateandClaude Opus 4.6 d0103f1cef Register new dependent plugins for compatibility checks
Add gg.ninetyfive, com.github.pooryam92.vimcoach, lazyideavim.whichkeylazy,
and com.github.vimkeysuggest to known plugins list and TeamCity compatibility job.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-10 08:14:57 +02:00
dependabot[bot] fca9a254e9 Bump rollup from 4.54.0 to 4.59.0 in /scripts-ts
Bumps [rollup](https://github.com/rollup/rollup) from 4.54.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.54.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-28 23:23:03 +00:00
Alex PlateandClaude Opus 4.5 41c462c975 Remove Claude from contributors and exclude from authors workflow
Claude AI should not be listed as a contributor. This removes the
entry and adds an exclusion to prevent it from being re-added.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:56:41 +02:00
Alex PlateandClaude Opus 4.5 b8d4d38253 Add YouTrack skill for Claude Code integration
Create a Claude skill for interacting with YouTrack issue tracker:
- Add CLI wrapper scripts in scripts-ts/src/youtrack-cli/
- Add release management functions to youtrack.ts (ported from Kotlin)
- Update youtrackAutoAnalysis.yml to use the skill instead of curl
- Document YouTrack usage in CLAUDE.md

CLI scripts:
- add-comment.ts, add-tag.ts, remove-tag.ts
- set-status.ts, get-ticket.ts, set-fix-version.ts
- create-version.ts, delete-version.ts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 13:44:27 +02:00
Alex PlateandClaude Opus 4.5 7db507bc7f Update vitest to 4.0.16
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:30:33 +02:00
Alex PlateandClaude Opus 4.5 646ed564e9 Add TeamCity build for TypeScript scripts test
Add a simple TypeScript test script and TeamCity configuration to verify
that TS scripts can run on TeamCity agents. The build downloads Node.js
20.18.1 and runs the test script.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:24:39 +02:00
Alex PlateandClaude Opus 4.5 890efcb6e7 Refactor: Migrate updateAuthors to TypeScript
Move the author update script from Kotlin to TypeScript, including tests.

Changes:
- Create scripts-ts/src/updateAuthors.ts
- Create scripts-ts/src/updateAuthors.test.ts with vitest
- Add vitest to package.json
- Create scriptsTests.yml workflow for running tests
- Update updateAuthors.yml workflow to use Node.js
- Remove Kotlin implementation and test
- Remove unused github-api dependency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:13:37 +02:00
Alex PlateandClaude Opus 4.5 a14c8a5ab8 Refactor: Migrate checkNewPluginDependencies to TypeScript
Move the plugin dependency checker from Kotlin to TypeScript for
consistency with other scripts.

- Create scripts-ts/src/checkNewPluginDependencies.ts
- Update workflow to use Node.js instead of JDK/Gradle
- Remove Kotlin implementation and Gradle task

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:05:57 +02:00
Alex PlateandClaude Opus 4.5 57d477199e Refactor: Migrate updateYoutrackOnCommit to TypeScript
Move the script from Kotlin (scripts/) to TypeScript (scripts-ts/)
for consistency with other YouTrack automation scripts.

Changes:
- Add setStatus() function to youtrack.ts
- Create updateYoutrackOnCommit.ts with git log parsing
- Update GitHub workflow to use Node.js instead of JDK/Gradle
- Remove Kotlin implementation and changelogUtils.kt

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:01:59 +02:00
Alex PlateandClaude Opus 4.5 7cb0935781 Refactor: Move youtrack.ts to tools subfolder
Reorganize scripts-ts/src structure by separating entry points (jobs)
from utility modules. The youtrack.ts module is now in tools/ subfolder.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 10:01:59 +02:00
Alex PlateandClaude Opus 4.5 1ba8ddab1d Add planning step and smart clarification handling to YouTrack workflow
Introduces a planning phase between triage and implementation that:
- Explores the codebase to understand what needs to be implemented
- Creates a detailed implementation plan for bug fixes/features
- Asks for clarification when genuinely ambiguous (posts YouTrack comment)

Smart ticket selection with automatic answer detection:
- Prioritizes tickets with pending clarifications
- Uses AI to check if owner has answered questions
- Automatically removes pending tag when answered
- Falls back to random selection if no pending answers

Key changes:
- youtrack.ts: Add pending clarification tag constant and removeTag()
- selectTicketForAnalysis.ts: Query pending tickets first, add state fields
- completeTicketAnalysis.ts: Skip tagging for needs_clarification/no_answer
- Workflow: Add Step 0 (check answers) and Step 2 (planning)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 14:06:35 +02:00
Alex Plate c6fad01ffb Add attention_reason to code review step
- Added attention_reason to review prompt
- Added review.attention_reason to JSON structure
- Added permission denial detection to parse-review
- Added review attention to workflow summary
- Added review attention to fail condition
2025-12-27 13:21:52 +02:00
Alex Plate 7ed8b1321d Refactor to JSON-only communication between workflow steps
- All Claude steps now only update analysis_state.json (no text flags)
- All parse steps read from analysis_state.json using jq
- Added triage_attention_reason and changelog object to JSON structure
- Simpler and more consistent data flow
2025-12-27 11:36:30 +02:00
Alex PlateandClaude Opus 4.5 304eddf8d0 Refactor YouTrack auto-analysis into multi-step Claude workflow
Split the single monolithic Claude prompt (~200 lines) into 5 focused
steps to improve quality and debuggability:

1. Triage: Determines ticket type (bug/feature) and suitability
2. Bug Fix: TDD-based implementation with root cause analysis
3. Feature: Feature implementation with tests
4. Code Review: Uses code-reviewer subagent
5. Changelog & PR: Creates branch, commits, and PR

Key changes:
- Add analysis_state.json for state passing between steps
- Each step has focused prompt with single responsibility
- Conditional execution based on triage result (bug vs feature)
- Preserved attention_required mechanism for all impl steps
- Updated TypeScript scripts to read/write JSON state file

Benefits:
- Focused prompts reduce confusion
- Better debugging (see where pipeline fails)
- Early termination for unsuitable tickets
- Consistent code review (always happens)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 10:16:25 +02:00
Alex PlateandClaude Opus 4.5 ac1e19ec94 Download image attachments for Claude analysis
Image attachments from YouTrack tickets are now downloaded locally
so Claude can view them using the Read tool. This enables analysis
of visual bugs and UI issues that require screenshots.

Changes:
- Add downloadAttachment() function to youtrack.ts
- Download images to attachments/ directory during ticket selection
- Update ticket_details.md to reference local image paths
- Add cleanup step to remove temporary files after analysis
- Add prompt instruction about viewing image attachments

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 22:51:18 +02:00
Alex PlateandClaude Opus 4.5 33582ecb7d Add outdated ticket detection to YouTrack workflow
Detect tickets that are likely no longer relevant:
- References removed features or obsolete IDE versions
- Vague "doesn't work" reports older than 2 years with no activity
- Missing environment details and no follow-up from reporter

When detected, Claude posts a PRIVATE comment mentioning @Aleksei.Plate
with reasoning, then outputs ANALYSIS_RESULT=outdated.

Also adds ticket creation date to ticket_details.md for age assessment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:36:19 +02:00
Alex PlateandClaude Opus 4.5 4cb7b233e2 Fetch YouTrack comments and attachments for ticket analysis
- Add getTicketComments() to fetch comment author, text, and date
- Add getTicketAttachments() to fetch attachment name, URL, and MIME type
- Include comments and attachments sections in ticket_details.md

This gives Claude more context when analyzing tickets - comments often
contain reproduction steps, workarounds, or clarifications.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 21:24:03 +02:00
Alex PlateandClaude Opus 4.5 6e3c8cd1ed Fix YouTrack query syntax for Area exclusion
Use braces syntax: Area: -{Remote Dev} instead of Area: -"Remote Dev"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 00:16:39 +02:00
Alex PlateandClaude Opus 4.5 e844a713f9 Add private comment support and filter out Remote Dev/Gateway tickets
- Comments now use LimitedVisibility with JetBrains team group (10-3)
- Query excludes tickets with Area "Remote Dev" or "Gateway"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 00:14:23 +02:00
Alex PlateandClaude Opus 4.5 1d9e01e4ae [Experiment] Migrate YouTrack analysis scripts to TypeScript
Replaces Kotlin/Gradle scripts with TypeScript for the auto-analysis workflow.

New files in scripts-ts/:
- youtrack.ts: API utilities (getTicketsByQuery, getTicketDetails, setTag, addComment)
- selectTicketForAnalysis.ts: Selects random open ticket
- completeTicketAnalysis.ts: Tags ticket, optionally adds comment

Benefits:
- Faster startup (no Gradle daemon)
- Simpler dependencies (just tsx)
- Easier to read and modify

The Kotlin scripts remain for other workflows.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 00:04:28 +02:00