Commit Graph
300 Commits
Author SHA1 Message Date
1grzyb1andCursor 858055c6e4 Increase claude permissions in propertyTestsAutoFix
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 08:22:54 +02:00
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 ef4f29ebc0 Run tests for EAP on java 25 2026-07-09 11:57:53 +02:00
1grzyb1 0f7d95a8c9 Add workflow to update What's from PR 2026-06-30 13:07:33 +02:00
1grzyb1 058b28afa3 Create preview of generated whats new page 2026-06-24 11:23:17 +02:00
1grzyb1 e8df8dacde Release pipeline for updating what's new
It's two-step process
1. manual run of prepare what's new that will generate html page with blogpost about what's new
2. promote current whatsnew-tbr.html to new version in release pipeline
2026-06-24 11:23:17 +02:00
1grzyb1 214c4be0f1 Migrate gh workflows to go through anthropic proxy 2026-06-13 08:23:31 +02:00
1grzyb1 269fb99983 Change way of authorization to claude in unpdate changelog action 2026-06-11 09:34:58 +00:00
Alex PlateandClaude Opus 4.7 60a0d67c0f Drop manual changeNotes sync from changelog skill and PR-review prompt
`build.gradle.kts` `changeNotes` is now auto-derived from CHANGES.md at
build time via the org.jetbrains.changelog plugin, so the skill and the
claude-code-review workflow note no longer need to mention syncing it
by hand.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:51:42 +03:00
1grzyb1 2cb5e5b658 VIM-4234 Rollback to java 21
It turns out platform 2025.3 doesn't work with java 25
2026-05-15 10:10:45 +00:00
Alex Plate d731961a86 Remove pull_request_review trigger from Claude Code workflow
The pull_request_review event check was failing on nearly every review,
adding noise without value. Other triggers (issue comments, PR review
comments, issues) still respond to @claude mentions.
2026-05-15 12:58:56 +03:00
1grzyb1 4225b32f55 Update java to version 25 2026-05-12 11:34:21 +00:00
Alex Plate b5d2f9c3d8 Fix(VIM-2974): Remove remaining octopus.handler references
Step 5/N of removing the octopus handler. Cleanup pass over build config,
CI workflows, and stale comments. No runtime behavior change.

- build.gradle.kts: drop systemProperty("octopus.handler", ...) from
  runIde, runPycharm, runWebstorm, runClion, and runIdeForUiTests.
  The runIde { } block becomes empty and is removed entirely.
- Delete .github/workflows/runUiOctopusTests.yml: this workflow ran the
  UI test suite with -Doctopus.handler=false to verify behavior without
  octopus. That is now the only behavior, so the workflow is redundant
  with runUiTestsIJ.yml.
- IdeaSpecifics.LookupTopicListener and RiderEscLookupListener: update
  comments that justified Rider/CLion Nova-specific handling as "octopus
  is disabled (VIM-3815)". The actual reason is unrelated to octopus:
  these IDEs' popup manager consumes Escape before the action system
  runs. The Rider/CLion Nova gating remains correct.
2026-04-24 17:41:48 +03:00
Alex PlateandClaude Opus 4.7 81bf421436 Auto-merge Claude-generated changelog PRs
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 14:39:34 +03:00
1grzyb1 9f33320e66 Move split mode tests to team city 2026-04-09 14:21:18 +02:00
1grzyb1 527f612e75 VIM-3918 Run split mode tests using github actions
To make it work same way as ui tests I moved split mode tests to run on gh also
2026-03-26 09:51:15 +01:00
1grzyb1 7290a85166 Make Claude Code Review workflow manual and context-aware 2026-01-26 08:49:45 +01:00
Alex PlateandClaude Opus 4.5 2f83606662 Change UI tests schedule to every 30 minutes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 12:35:24 +02:00
Alex PlateandClaude Opus 4.5 9394788e34 Add UI test debugging principles to autofix prompt
Add general guidance for fixing flaky UI tests:
- Flaky = race condition, not timeout issue
- Wait for unique state identifiers, not shared elements
- Understand framework built-in waits (findText already waits)
- Trace causality backwards to find correct wait condition
- State transitions have intermediate states

These principles should improve autofix success rate for UI test failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 12:34:50 +02:00
Alex PlateandClaude Opus 4.5 b7607934a1 Change IntelliJ UI tests schedule from every 5 minutes to daily
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 11:50:28 +02:00
Alex PlateandClaude Opus 4.5 ed0f74d85c Run UI tests every 5 minutes to test stability
Testing the UI tests stability with more frequent runs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 15:08:59 +02:00
Alex PlateandClaude Opus 4.5 add0c5b327 Run UI tests every 30 minutes instead of daily
Increase frequency to verify test stability.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 14:55:17 +02:00
Alex PlateandClaude Opus 4.5 9ef7ce1d36 Add Neovim installation to Claude Code workflows
Install Neovim in workflows that run tests:
- testsMaintenance.yml: deals with @TestWithoutNeovim annotations
- codebaseMaintenance.yml: can run gradle tests
- youtrackAutoAnalysis.yml: uses TDD for bug fixes and features

Also add guidance in testsMaintenance to verify actual Neovim behavior
when working with skip reasons, and allow nvim/echo bash commands.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 07:05:27 +02:00
Alex PlateandClaude Opus 4.5 64dfcdb9fa Remove clean task from PR verification workflow
Allows Gradle caching to be effective.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 19:05:34 +02:00
Alex PlateandClaude Opus 4.5 eaeb3eeb79 Fix artifact upload paths in PR verification workflow
Remove incorrect ideavim/ prefix from paths - the checkout is at repo root.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 17:22:09 +02:00
Alex PlateandClaude Opus 4.5 b24dd33e3b Temporarily disable macOS UI tests in IJ workflow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:15:59 +02:00
Alex PlateandClaude Opus 4.5 0bdecdc4c2 Fix disk space issues in Linux UI test workflows
Add disk space cleanup and reduce video recording size for Linux runners:
- Add "Free up disk space" step to remove .NET, Android SDK, GHC, CodeQL
- Reduce Xvfb resolution from 1920x1080 to 1280x720
- Optimize ffmpeg: 15fps, ultrafast preset, crf 28

This aligns with the existing Rider Linux workflow settings.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 17:15:59 +02:00
Alex PlateandClaude Sonnet 4.5 64eca1ca11 Fix missing dependencies and git staging rule in UI test analysis jobs
Added missing dependencies:
- Java 21 setup (required for compilation verification)
- FFmpeg installation (required for ffprobe video analysis)

Added critical git staging rule to all UI test workflows:
- NEVER use `git add -A` or `git add .` when creating fix branches
- Always add modified files explicitly by path
- This prevents accidentally staging unrelated files that could cause
  push failures due to GitHub App workflow permission restrictions

Affected workflows:
- runUiTestsIJ.yml (unified IntelliJ IDEA tests)
- runUiPyTests.yml (PyCharm macOS tests)
- runUiPyTestsLinux.yml (PyCharm Linux tests)
- runUiRdTests.yml (Rider macOS tests)
- runUiRdTestsLinux.yml (Rider Linux tests)
- runUiOctopusTests.yml (Non-Octopus tests)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-08 07:32:43 +02:00
Alex PlateandClaude Sonnet 4.5 54ec06ecf2 Fix Gradle cache for macOS Rider and PyCharm UI tests
Add explicit cache-read-only: false to ensure Gradle cache
is properly written and read on macOS builds, matching the
configuration used in the unified IntelliJ workflow.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 23:32:36 +02:00
Alex Plate 59696e1b75 Add UI test best practices to prompts: prefer cause-effect over timeouts 2026-01-07 23:24:36 +02:00
Alex Plate d7d9774dca Add java and which commands to allowed tools in UI test workflows 2026-01-07 23:14:07 +02:00
Alex Plate e1c7301802 Fix PyCharm IDE type from PU to PY in UI test workflows 2026-01-07 23:11:44 +02:00
Alex Plate 5543790620 Fix Gradle cache for Linux in unified IntelliJ IDEA workflow 2026-01-07 23:01:26 +02:00
Alex Plate 1df726e510 Change PyCharm IDE type from PC to PU 2026-01-07 22:54:17 +02:00
Alex Plate 4944053e51 Add mandatory compilation and test verification to UI test workflows 2026-01-07 22:54:17 +02:00
Alex Plate a819f84dc5 Replace separate UI test workflows with unified IntelliJ IDEA workflow 2026-01-07 18:39:32 +02:00
Alex Plate fe55795f71 Add disk cleanup and reduce screen recording size for Rider Linux tests 2026-01-07 18:22:02 +02:00
Alex PlateandClaude Sonnet 4.5 8be630ed68 Add full tool permissions for automated PR creation in UI tests
Added Edit, Bash(git:*), Bash(gh:*), Bash(gradle:*), and Bash(./gradlew:*)
to the allowed-tools list in all UI test workflows.

This enables Claude Code to fully automate the PR creation process:
- Edit: Modify source files to apply fixes
- Bash(git:*): Create branches, add files, commit, push
- Bash(gh:*): Create pull requests
- Bash(gradle:*) & Bash(./gradlew:*): Run tests to verify fixes

Without these permissions, Claude Code would get "command requires approval"
errors when trying to create branches or edit files, preventing automated
PR creation.

Updated workflows:
- runUiTests.yml (IntelliJ macOS)
- runUiTestsLinux.yml (IntelliJ Linux)
- runUiTestsUnified.yml (IntelliJ unified)
- runUiRdTests.yml (Rider macOS)
- runUiRdTestsLinux.yml (Rider Linux)
- runUiPyTests.yml (PyCharm macOS)
- runUiPyTestsLinux.yml (PyCharm Linux)
- runUiOctopusTests.yml (Octopus macOS)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 18:00:45 +02:00
Alex PlateandClaude Sonnet 4.5 45525ea215 Enable Gradle configuration cache for Linux UI tests
Added --configuration-cache flag to buildPlugin task in all Linux
UI test workflows to significantly improve build performance.

The configuration cache stores the result of the configuration phase
and reuses it for subsequent builds, avoiding the need to re-evaluate
build scripts when inputs haven't changed. This is particularly
beneficial for UI tests that run frequently on schedule.

Note on "Gradle User Home cache not found" message: This is expected
when the commit SHA changes, as the gradle-home cache key includes it
for security. However, the more important dependency and transform
caches use content-based hashing and are restored correctly across
commits, which is why builds still benefit from caching.

Updated workflows:
- runUiTestsLinux.yml
- runUiRdTestsLinux.yml
- runUiPyTestsLinux.yml
- runUiTestsUnified.yml (both jobs)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:57:20 +02:00
Alex PlateandClaude Sonnet 4.5 6f3fec2b1a Instruct Claude Code to create PRs automatically without asking
Added explicit instruction to all UI test failure analysis prompts:
"IMPORTANT: If you have a concrete suggestion for fixing the test,
ALWAYS proceed with creating a branch and PR. Never ask for
permission - just do it."

This ensures Claude Code will automatically create fix PRs when it
identifies concrete solutions, eliminating the need for user
confirmation and enabling fully automated test maintenance.

Updated workflows:
- runUiTests.yml (IntelliJ macOS)
- runUiTestsLinux.yml (IntelliJ Linux)
- runUiTestsUnified.yml (IntelliJ unified)
- runUiRdTests.yml (Rider macOS)
- runUiRdTestsLinux.yml (Rider Linux)
- runUiPyTests.yml (PyCharm macOS)
- runUiPyTestsLinux.yml (PyCharm Linux)
- runUiOctopusTests.yml (Octopus macOS)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:45:21 +02:00
Alex PlateandClaude Sonnet 4.5 6f8fe2bb22 Add unified IntelliJ UI tests workflow for cross-platform analysis
Created a unified workflow that runs macOS and Linux tests in parallel,
then performs a single AI analysis of failures from both platforms.

Key features:
1. Parallel execution: test-macos and test-linux run simultaneously
2. Separate artifact uploads: macos-reports and linux-reports
3. Unified analysis job that:
   - Triggers if either platform fails
   - Downloads artifacts from both platforms
   - Provides Claude Code with context from both test runs
   - Identifies common vs platform-specific issues
   - Creates a single PR for common issues
   - Clearly labels platform-specific fixes

Benefits:
- Single unified fix for issues affecting both platforms
- Better context for AI analysis by comparing across platforms
- Reduced PR noise (one PR instead of two for common issues)
- Cost efficiency (one AI analysis instead of two)

The analyze-failures job has git and gh tools enabled to allow
automatic branch creation and PR submission when fixes are identified.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:35:14 +02:00
Alex PlateandClaude Sonnet 4.5 b738c17c3e Remove Windows UI tests workflow
Windows UI tests have been removed. The project will continue to run
UI tests on macOS and Linux platforms, which provide sufficient coverage
for UI testing across different operating systems.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:26:11 +02:00
Alex PlateandClaude Sonnet 4.5 c6460ab515 Add macOS screen recording permission dialog automation to remaining workflows
Added the "Auto-click Allow button for screen recording permission" step
to all macOS UI test workflows that were missing it:
- runUiRdTests.yml (Rider macOS)
- runUiPyTests.yml (PyCharm macOS)
- runUiOctopusTests.yml (Octopus macOS)

This step automatically dismisses the macOS screen recording permission
dialog that appears when ffmpeg starts recording. Without this automation,
the dialog blocks the test execution and causes timeouts.

The step tries multiple coordinate positions using both cliclick and
AppleScript fallback to handle different screen resolutions and dialog
positions.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:20:09 +02:00
Alex PlateandClaude Sonnet 4.5 e73dff9d9a Add automated fix workflow to UI test failure analysis
Updated all UI test workflow prompts to instruct Claude Code to
automatically create fixes when concrete solutions are identified:

1. Create a branch with descriptive name
2. Apply the suggested fix to the codebase
3. Run the specific failing test to verify the fix works
4. Create a PR if the test passes with clear documentation

Each workflow includes the appropriate test command for its IDE type:
- IntelliJ/Octopus: gradle :tests:ui-ij-tests:testUi --tests "..."
- Rider: gradle :tests:ui-rd-tests:testUi --tests "..."
- PyCharm: gradle :tests:ui-py-tests:testUi --tests "..."

This enables fully automated test fix proposals without manual
intervention, reducing the feedback loop for fixing flaky or broken
UI tests caused by platform changes.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:01:37 +02:00
Alex PlateandClaude Sonnet 4.5 3f4da7ab8a Add macOS labels and create Linux variants for Rider/PyCharm UI tests
Clarified that existing UI tests without OS specification run on macOS
by updating workflow names to include "macOS" suffix.

Created Linux versions of Rider and PyCharm UI tests:
- runUiRdTestsLinux.yml: Rider tests on Linux with Xvfb setup
- runUiPyTestsLinux.yml: PyCharm tests on Linux with Xvfb and Python 3.10

Both new workflows follow the same Linux setup pattern as the existing
runUiTestsLinux.yml workflow, using x11grab for screen recording and
appropriate IDE type parameters (-PideaType=RD/PC).

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 16:59:14 +02:00
Alex PlateandClaude Sonnet 4.5 86c94cbac1 Add hierarchy file guidance to UI test failure analysis prompts
When UI tests fail due to timeouts but the element is visible in the
video/screenshot, the failure may be caused by renamed properties or
changed class names. The hierarchy HTML file contains the actual UI
structure and can help identify these issues.

Updated all UI test workflows (macOS, Linux, Windows, Rider, PyCharm,
and Octopus) to instruct Claude Code to check build/reports/hierarchy-ideaVimTest.html
and suggest updated queries when this scenario occurs.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 16:22:59 +02:00
Alex PlateandClaude Sonnet 4.5 4a7e59401b Remove Python CGEvent code from macOS permission dialog automation
Keep only cliclick and AppleScript methods for clicking the Allow button.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 23:47:42 +02:00
Alex PlateandClaude Sonnet 4.5 32ab7d888b Add Bash(rm:*) to allowed tools for AI analysis in UI test workflows
Allows the AI to remove temporary files when creating thumbnail grids
from screen recordings for better video analysis.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 23:44:27 +02:00