1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2026-05-04 11:03:08 +02:00
Commit Graph

9699 Commits

Author SHA1 Message Date
Alex Plate
0c741a580e Run YouTrack auto-analysis weekly instead of every 5 minutes
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 08:11:46 +02:00
Alex Plate
90f1d72233 Remove hard 100 lines limit from YouTrack auto-analysis
Smaller changes are still preferred, but bigger changes are now
acceptable if Claude is confident about them.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 00:35:47 +02:00
Alex Plate
efd7eee31b Run YouTrack auto-analysis every 5 minutes
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 00:24:43 +02:00
Alex Plate
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 Plate
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 Plate
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
Alex Plate
4d286f7b12 Fix: Only comment on YouTrack for explicit suitable/error results
Changed condition from `!= "unsuitable"` to `== "suitable" || == "error"`
so that unknown/empty parsing results don't trigger comments.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:57:38 +02:00
Alex Plate
a1e5b67889 Fix URL encoding in getYoutrackTicketsByQuery
Use ktor's parameter() function to properly URL-encode query parameters
instead of string concatenation. This fixes 400 Bad Request errors when
queries contain spaces or special characters.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:51:43 +02:00
Alex Plate
402b81c3c9 Add experimental YouTrack auto-analysis workflow with Claude
This adds a GitHub Action that automatically analyzes random open YouTrack
tickets to determine if they're suitable for automated fixing by Claude Code.

New files:
- youtrackAutoAnalysis.yml: Manual-trigger workflow that orchestrates the process
- SelectTicketForAnalysis.kt: Picks random open ticket without "claude-analyzed" tag
- CompleteTicketAnalysis.kt: Tags ticket and optionally adds analysis comment

Changes:
- youtrack.kt: Add getTicketDetails() function and claudeAnalyzedTagId constant
- build.gradle.kts: Register selectTicketForAnalysis and completeTicketAnalysis tasks

The workflow evaluates tickets based on: clarity, reproducibility (for bugs),
scope (no big refactoring), and testability. If suitable, Claude creates a PR.
All analyzed tickets are tagged to exclude from future runs.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:45:10 +02:00
Alex Plate
ef2e069b93 Migrate PR verification from TeamCity to GitHub Actions
Replace TeamCity PR checks with a GitHub Actions workflow that:
- Runs on pull requests targeting master
- Executes the same test command with identical environment variables
- Uses Amazon Corretto JDK 21 (matching TeamCity setup)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 09:27:45 +02:00
Alex Plate
9d829b2011 Revert Slack notification experiment, re-enable VCS triggers
- Remove SlackNotificationTest build configuration
- Remove Slack notification steps from ReleaseEap and ReleasePlugin
- Remove ANTHROPIC_API_KEY parameter from release jobs
- Keep slackUrl parameter for future use
- Re-enable VCS triggers on all test configurations

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 09:18:10 +02:00
Alex Plate
7a087fa650 Add Slack URL debug output
Check if ORG_GRADLE_PROJECT_slackUrl is set and add verbose curl output.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 09:09:54 +02:00
aleksei.plate@jetbrains.com
cf0d6b359a parameters of 'Test Slack Notification' build configuration were updated (TeamCity change in 'Ideavim' project) 2025-12-24 07:08:57 +00:00
Alex Plate
f612dcc528 Fix shell compatibility in debug step
Add #!/bin/bash shebang for bash-specific syntax.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 09:04:12 +02:00
Alex Plate
bb843511ca Add API key debug step to Slack notification test
Check if ANTHROPIC_API_KEY is set and validate it with a simple API call.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 09:01:01 +02:00
Alex Plate
95cedf441d Disable VCS triggers and add Slack notification test build
Temporarily disable VCS triggers to save TeamCity credits:
- GitHub PR checks
- TestingBuildType (all test configs)
- PropertyBased, RandomOrderTests, PluginVerifier, Nvim

Add SlackNotificationTest build to test changelog generation
and Slack notification flow separately.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 08:28:38 +02:00
Alex Plate
36680d0b7a Allow curl command in Slack notification step
Add --allowedTools "Bash(curl:*)" to Claude CLI invocation.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:06:28 +02:00
Alex Plate
9dd8cfa72d Update Slack notification prompts to send immediately
Don't ask for confirmation before sending the Slack notification.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:09:42 +02:00
Alex Plate
fe95c6dca3 Fix YouTrack token pattern and remove test configuration
- Fix ReleaseEap to use env.ORG_GRADLE_PROJECT_youtrackToken pattern
  (matching ReleasePlugin) instead of env.YOUTRACK_TOKEN
- Remove YouTrack test configuration (no longer needed)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:59:21 +02:00
Alex Plate
347198aad3 Fix YouTrack token passing to gradle task
Use ORG_GRADLE_PROJECT_youtrackToken env var which Gradle
automatically converts to the youtrackToken project property.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:49:15 +02:00
Alex Plate
970fa15794 Add YouTrack connection test build configuration
- Add new TeamCity build type to test YouTrack API connection
- Create testYoutrackConnection gradle task
- Update YouTrack token in ReleaseEap (apply UI patch)
- Fail immediately if YOUTRACK_TOKEN is not set

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:44:58 +02:00
Alex Plate
6b52f118bc Remove vim-engine publish and Xorg test configurations
These build configurations are no longer needed.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:33:42 +02:00
aleksei.plate@jetbrains.com
6a2ac714f5 parameters of 'Publish EAP Build' build configuration were updated (TeamCity change in 'Ideavim / IdeaVim releases' project) 2025-12-23 16:31:50 +00:00
Alex Plate
e0dd804197 Use XLarge agent for EAP release build
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:30:57 +02:00
Alex Plate
dcc4d78812 Inline agent requirements to individual TeamCity build types
Move the agent CPU and OS requirements from the abstract IdeaVimBuildType
class to each build type individually. This allows per-build-type control
over agent size (MEDIUM vs XLARGE).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:29:27 +02:00
Alex Plate
e1ae5c19c8 Switch TeamCity agents from XLarge to Medium
Add AgentSize constants for CPU count configuration and change
default agent requirement from 16 CPUs (XLarge) to 4 CPUs (Medium).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:03:49 +02:00
Alex Plate
c3b7462028 Add Slack notification to EAP release build
Adds Claude Code CLI integration to send Slack notifications after EAP
releases. Uses the same approach as the main release build, with an
EAP-specific prompt that includes unreleased changelog entries.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:33:02 +02:00
Alex Plate
12b65fa17f Clean up Slack notification code, add ANTHROPIC_API_KEY to release
- Remove SlackNotificationTest build config and patch
- Remove unused Kotlin slackNotification code and gradle tasks
- Add ANTHROPIC_API_KEY credential to release builds
- Update prompt for calm, professional internal team tone

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:28:44 +02:00
Alex Plate
19cd56fa54 Move Slack notification logic to Claude Code prompt in TeamCity
Instead of using Kotlin code to orchestrate Claude Code calls,
call Claude Code directly from TeamCity with a comprehensive prompt
that handles:
- Reading CHANGES.md
- Generating Slack message JSON
- Sending to webhook (with retry on error)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:18:36 +02:00
aleksei.plate@jetbrains.com
78b066abe0 parameters of 'Test Slack Notification' build configuration were updated (TeamCity change in 'Ideavim / IdeaVim releases' project) 2025-12-23 15:09:05 +00:00
Alex Plate
ff64824840 Add 60 second timeout to Claude Code CLI call
Prevents the build from hanging indefinitely if Claude Code
doesn't respond.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:07:20 +02:00
Alex Plate
8093b08f06 Fix claude CLI invocation - use -p flag correctly
-p and --print are the same flag. Use just -p with prompt as argument.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 17:05:31 +02:00
Alex Plate
0d9042047e Skip version check in dry-run mode for Slack notification
Allow testing the Slack notification message generation without
requiring a release version number.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:57:56 +02:00
Alex Plate
65ed9a072f Add changelogUtils script to parse commit messages for YouTrack fixes
- Extracts commit messages matching `fix(VIM-XXXX):` pattern
- Builds a list of changes since the last successful commit
2025-12-23 16:51:48 +02:00
Alex Plate
44b05ab316 Remove unused method and reorder Foojay plugin in settings.gradle
- Delete `updateMergedPr` call from integration test
- Move Foojay plugin declaration below repository configuration
2025-12-23 16:47:10 +02:00
Alex Plate
ae66866abd Refactor Slack notification to use Claude Code CLI
Replace markdown-to-slack library with Claude Code CLI for generating
Slack messages. This simplifies the code and adds retry logic where
Claude analyzes Slack errors and fixes the message format.

Changes:
- Add callClaudeCode() to shell out to `claude --print`
- Add sendToSlackWithRetry() with 3 retry attempts
- Add dry-run mode (4th argument) for testing
- Add slackNotificationTest gradle task
- Add TeamCity build config for testing
- Remove mark-down-to-slack dependency

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:57:10 +02:00
Alex Plate
9b435ec3ff Make tag update conditional on Claude step success
Only update the workflow-changelog tag if the Claude step completes
successfully, preventing tag advancement on failures.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:35:18 +02:00
Alex Plate
7f939987af Migrate changelog workflow to Claude-managed approach
- Update Claude changelog workflow to use workflow-changelog tag for
  tracking processed commits
- Update changelog skill to document the tag-based commit tracking
- Remove old disabled workflows (updateChangelog.yml, mergePr.yml)
- Remove unused Gradle tasks (updateChangelog, updateMergedPr)
- Delete unused scripts (updateChangelog.kt, updateMergedPr.kt, changelogUtils.kt)
- Remove unused markdown dependency from scripts

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:32:22 +02:00
claude[bot]
9189ae0357 Update changelog: Sync changeNotes with recent fixes
Updated build.gradle.kts changeNotes section to reflect the [To Be Released]
content from CHANGES.md:
- VIM-4097: Fixed NextOccurrence with backslashes
- VIM-4094: Fixed UninitializedPropertyAccessException

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 14:22:44 +01:00
Alex Plate
0cf7dbeb88 Add Skill to allowed tools in changelog workflow
The Skill tool is needed to load the changelog skill instructions.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:14:31 +02:00
Alex Plate
2527427d67 Update changelog workflow to use changelog skill
Replace reference to deleted changelog-instructions.md with
the changelog skill for loading maintenance instructions.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:10:49 +02:00
Alex Plate
08f48b3c82 Update CHANGES.md with 2.28.0 release notes
Add changelog entries for version 2.28.0 and upcoming fixes.
Restore structured changelog format after previous simplified approach.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:05:22 +02:00
Alex Plate
e5127a57c9 Convert changelog instructions to Claude Code skill
Move changelog maintenance instructions from a standalone markdown file
to a proper Claude Code skill that is auto-detected when updating the
changelog.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 14:56:14 +02:00
Alex Plate
7063107675 Add foojay-resolver-convention plugin for automatic JDK download
Enables automatic JDK toolchain resolution from the Foojay API when
a required toolchain version is not installed locally.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 13:07:10 +02:00
Alex Plate
e12177abdc Refactor updateAuthors script with JetBrains IP section support
- Replace fragile 'yole' marker with section header constants
- Add isJetBrainsEmployee property to Author (checks @jetbrains.com)
- Route JetBrains employees to "Contributors with JetBrains IP:" section
- Extract emails from entire file to prevent duplicates across sections
- Add unit tests for author adding logic
- Remove markdown parser dependency for section finding

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:17:13 +02:00
Alex Plate
fd0951b366 Add JetBrains IP section to AUTHORS.md
- Add new section "Contributors with JetBrains IP" to track contributors
  who have assigned intellectual property rights to JetBrains
- Add "(JetBrains employee)" notes to maintainer entries
- Remove duplicate contributor entries
- Move JetBrains employees and contractors from Contributors to the
  new IP section to avoid duplication

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 12:11:06 +02:00
Alex Plate
f29deb15ba Remove contribution awards program information
The license awards program for quality contributions has ended.
Removed references from CONTRIBUTING.md, build.gradle.kts changeNotes,
and maintenance-instructions.md.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 14:58:15 +02:00
Alex Plate
82d4ef26e0 Refactor(VIM-2871): Migrate ParagraphMotion to new VimApi
Rewrite ParagraphMotion extension using the new VimApi DSL instead of
the legacy VimExtensionFacade API. The functionality remains identical.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 14:14:51 +01:00
Alex Plate
5c143e9951 Fix(VIM-4097): NextOccurrence ignores backslash in selected text
In very nomagic mode (\V), backslash still has special meaning and
introduces escape sequences. When selected text contained a backslash
(e.g., \IntegerField), it was interpreted as a regex atom instead of
a literal character.

The fix escapes backslashes in the search text before building the
pattern, ensuring literal matching.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 13:29:35 +01:00
Alex Plate
b11f8a1895 Fix(VIM-4094): UninitializedPropertyAccessException in VimHistoryBase
Use lazy initialization for logger to avoid accessing injector during
static class initialization when the service is loaded.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 13:17:18 +01:00