From d53a910d6020b398c9fcb5fc6d5b74d40f723e06 Mon Sep 17 00:00:00 2001 From: Proxay Date: Mon, 3 Nov 2025 22:06:30 +1000 Subject: [PATCH 01/29] Update Cursor to version 2.0.34 with new download URL and SHA256 checksum --- flake.lock | 6 +++--- flake.nix | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 774c899..0a8f512 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1754214453, - "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", + "lastModified": 1761907660, + "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", + "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 61d80cf..e65889e 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "1.6.35"; - url = "https://downloads.cursor.com/production/b753cece5c67c47cb5637199a5a5de2b7100c18f/linux/x64/Cursor-1.6.35-x86_64.AppImage"; - sha256 = "1qpkvs6zga979hhki49blyckffjp9pk49vhfn9nv57bxgjrbqszb"; + version = "2.0.34"; + url = "https://downloads.cursor.com/production/45fd70f3fe72037444ba35c9e51ce86a1977ac11/linux/x64/Cursor-2.0.34-x86_64.AppImage"; + sha256 = "04y44s1i8if0kccxndfsjqymblb4zwcm6gvyq354fckd3gc4v7f7"; }; }; From 2281c43d0dbdcd0401e5bea5fa3064812268b499 Mon Sep 17 00:00:00 2001 From: Proxay Date: Tue, 4 Nov 2025 22:11:10 +1000 Subject: [PATCH 02/29] Enhance update-cursor.sh with automatic URL finding and dependency checks - Added a function to check for required tools before execution - Implemented automatic retrieval of the latest AppImage URL from the Cursor website - Improved error handling for version extraction and URL validation - Updated flake.nix only if a new version is found, with rollback on build failure --- .github/workflows/update-cursor.yml | 90 ++++++++++++++++++++++ test-workflow-locally.sh | 115 ++++++++++++++++++++++++++++ update-cursor.sh | 103 ++++++++++++++++++------- 3 files changed, 279 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/update-cursor.yml create mode 100755 test-workflow-locally.sh diff --git a/.github/workflows/update-cursor.yml b/.github/workflows/update-cursor.yml new file mode 100644 index 0000000..1fd5dd4 --- /dev/null +++ b/.github/workflows/update-cursor.yml @@ -0,0 +1,90 @@ +name: Update Cursor + +on: + # Run daily at 2 AM UTC + schedule: + - cron: '0 2 * * *' + + # Allow manual trigger + workflow_dispatch: + +permissions: + contents: write + +jobs: + update-cursor: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Install Nix + uses: cachix/install-nix-action@v25 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + experimental-features = nix-command flakes + + - name: Install dependencies + run: | + nix-env -iA nixpkgs.curl + nix-env -iA nixpkgs.htmlq + nix-env -iA nixpkgs.ripgrep + + - name: Run update script + id: update + continue-on-error: true + run: | + chmod +x update-cursor.sh + ./update-cursor.sh + + - name: Check for changes + id: check_changes + run: | + if git diff --quiet flake.nix; then + echo "changed=false" >> $GITHUB_OUTPUT + echo "No changes detected" + else + echo "changed=true" >> $GITHUB_OUTPUT + echo "Changes detected in flake.nix" + fi + + - name: Get new version + id: version + if: steps.check_changes.outputs.changed == 'true' + run: | + VERSION=$(grep -o 'version = "[^"]*"' flake.nix | head -1 | sed 's/version = "//;s/"//') + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "New version: $VERSION" + + - name: Commit and push changes + if: steps.check_changes.outputs.changed == 'true' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add flake.nix flake.lock + git commit -m "chore: update Cursor to version ${{ steps.version.outputs.version }}" + git push + + - name: Create Release (optional) + if: steps.check_changes.outputs.changed == 'true' + uses: softprops/action-gh-release@v1 + with: + tag_name: v${{ steps.version.outputs.version }} + name: Cursor ${{ steps.version.outputs.version }} + body: | + Automated update to Cursor version ${{ steps.version.outputs.version }} + + ## Changes + - Updated Cursor AppImage URL + - Updated SHA256 hash + + Run `nix flake update` in your NixOS configuration to get the latest version. + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + diff --git a/test-workflow-locally.sh b/test-workflow-locally.sh new file mode 100755 index 0000000..bc53ee7 --- /dev/null +++ b/test-workflow-locally.sh @@ -0,0 +1,115 @@ +#!/usr/bin/env bash + +# Local test script for the GitHub Actions workflow +# This simulates what the workflow does without needing GitHub Actions + +set -e + +echo "=========================================" +echo "Testing Update Cursor Workflow Locally" +echo "=========================================" +echo "" + +# Colors +GREEN='\033[0;32m' +BLUE='\033[0;34m' +YELLOW='\033[1;33m' +NC='\033[0m' + +print_step() { echo -e "${BLUE}[STEP]${NC} $1"; } +print_success() { echo -e "${GREEN}[✓]${NC} $1"; } +print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; } + +# Step 1: Check we're in the right directory +print_step "Checking repository..." +if [[ ! -f "flake.nix" ]] || [[ ! -f "update-cursor.sh" ]]; then + echo "Error: Must be run from the repository root" + exit 1 +fi +print_success "Repository check passed" +echo "" + +# Step 2: Check dependencies +print_step "Checking dependencies (like the workflow does)..." +missing=0 +for tool in curl htmlq rg nix-prefetch-url sed grep nix; do + if ! command -v "$tool" &> /dev/null; then + echo " ❌ Missing: $tool" + missing=1 + else + echo " ✓ Found: $tool" + fi +done + +if [[ "$missing" -eq 1 ]]; then + echo "" + print_warning "Some dependencies are missing. Install with:" + echo " nix-env -iA nixpkgs.curl nixpkgs.htmlq nixpkgs.ripgrep" + exit 1 +fi +print_success "All dependencies found" +echo "" + +# Step 3: Save current state +print_step "Saving current flake.nix state..." +cp flake.nix flake.nix.backup +ORIGINAL_VERSION=$(grep -o 'version = "[^"]*"' flake.nix | head -1 | sed 's/version = "//;s/"//') +print_success "Backed up (current version: $ORIGINAL_VERSION)" +echo "" + +# Step 4: Run the update script +print_step "Running update-cursor.sh..." +echo "" +if ./update-cursor.sh; then + UPDATE_SUCCESS=true +else + UPDATE_SUCCESS=false +fi +echo "" + +# Step 5: Check for changes +print_step "Checking for changes..." +if diff -q flake.nix flake.nix.backup > /dev/null 2>&1; then + print_success "No changes (already on latest version)" + CHANGED=false +else + NEW_VERSION=$(grep -o 'version = "[^"]*"' flake.nix | head -1 | sed 's/version = "//;s/"//') + print_success "Changes detected! Version: $ORIGINAL_VERSION → $NEW_VERSION" + CHANGED=true +fi +echo "" + +# Step 6: Show what would be committed +if [[ "$CHANGED" == true ]]; then + print_step "Changes that would be committed:" + echo "" + git diff flake.nix | head -n 50 + echo "" +fi + +# Step 7: Restore original state +print_step "Restoring original flake.nix..." +mv flake.nix.backup flake.nix +print_success "Restored to original state" +echo "" + +# Summary +echo "=========================================" +echo "Test Summary" +echo "=========================================" +echo "Update script: $([ "$UPDATE_SUCCESS" == true ] && echo "✓ Success" || echo "✗ Failed")" +echo "Changes detected: $([ "$CHANGED" == true ] && echo "Yes" || echo "No")" +echo "Workflow simulation: ✓ Complete" +echo "" +echo "The workflow would:" +if [[ "$CHANGED" == true ]]; then + echo " 1. Update flake.nix" + echo " 2. Commit with message: 'chore: update Cursor to version $NEW_VERSION'" + echo " 3. Push to GitHub" + echo " 4. Create release: v$NEW_VERSION" +else + echo " - Do nothing (no changes needed)" +fi +echo "" +print_success "Local test complete! Original state restored." + diff --git a/update-cursor.sh b/update-cursor.sh index f17ebd7..92bcac3 100755 --- a/update-cursor.sh +++ b/update-cursor.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash # Simple script to update Cursor version in a package-only flake +# Now with automatic link finding! set -e @@ -16,7 +17,30 @@ print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; } print_error() { echo -e "${RED}[ERROR]${NC} $1"; } -# Check if we're in the right directory +# 1. CHECK DEPENDENCIES +# ------------------------------------------------ +check_deps() { + print_info "Checking for required tools..." + local missing=0 + for tool in curl htmlq rg nix-prefetch-url sed grep; do + if ! command -v "$tool" &> /dev/null; then + print_error "Required tool '$tool' is not installed." + missing=1 + fi + done + + if [[ "$missing" -eq 1 ]]; then + print_error "Please install missing tools to continue." + print_info "You may be able to install them with: nix-shell -p curl htmlq ripgrep nix" + exit 1 + fi + print_success "All required tools found." +} +check_deps +echo "" + +# 2. CHECK DIRECTORY +# ------------------------------------------------ if [[ ! -f "flake.nix" ]]; then print_error "This script must be run from the cursor-flake directory" exit 1 @@ -25,7 +49,8 @@ fi print_info "Cursor Package Flake Updater" echo "" -# Get current version and URL +# 3. GET CURRENT VALUES +# ------------------------------------------------ CURRENT_VERSION=$(grep -o 'version = "[^"]*"' flake.nix | head -1 | sed 's/version = "//;s/"//') CURRENT_URL=$(grep -o 'https://downloads\.cursor\.com/[^"]*' flake.nix | head -1) CURRENT_HASH=$(grep -o 'sha256 = "[^"]*"' flake.nix | head -1 | sed 's/sha256 = "//;s/"//') @@ -34,48 +59,63 @@ print_info "Current version: ${CURRENT_VERSION:-unknown}" print_info "Current URL: $CURRENT_URL" echo "" -# Handle input -if [[ $# -ge 1 ]]; then - if [[ "$1" =~ ^https:// ]]; then - NEW_URL="$1" - NEW_VERSION=$(echo "$NEW_URL" | grep -o 'Cursor-[0-9]\+\.[0-9]\+\.[0-9]\+' | head -1 | sed 's/Cursor-//') - else - NEW_VERSION="$1" - read -p "Enter the full download URL for version $NEW_VERSION: " NEW_URL - fi -else - read -p "Enter new version (e.g., 1.5.6) or full URL: " INPUT - if [[ "$INPUT" =~ ^https:// ]]; then - NEW_URL="$INPUT" - NEW_VERSION=$(echo "$NEW_URL" | grep -o 'Cursor-[0-9]\+\.[0-9]\+\.[0-9]\+' | head -1 | sed 's/Cursor-//') - else - NEW_VERSION="$INPUT" - read -p "Enter the full download URL: " NEW_URL - fi -fi +# 4. FIND LATEST URL (AUTOMATIC) +# ------------------------------------------------ +print_info "Finding latest AppImage URL from https://cursor.com/download..." + +# Use the command from our previous conversation to find the link +NEW_URL=$(curl -s https://cursor.com/download | \ + htmlq --attribute href a | \ + rg "https://downloads.cursor.com/production/[^/]+/linux/x64/Cursor-[^/]+-x86_64.AppImage" | \ + head -n 1) # Take the first match just in case -if [[ -z "$NEW_URL" || -z "$NEW_VERSION" ]]; then - print_error "Invalid input" +if [[ -z "$NEW_URL" ]]; then + print_error "Could not automatically find a new download URL." + print_error "The website structure may have changed or the regex is no longer valid." exit 1 fi +print_success "Found latest URL: $NEW_URL" + +# Check if it's actually a new URL +if [[ "$NEW_URL" == "$CURRENT_URL" ]]; then + print_success "You are already on the latest version ($CURRENT_VERSION)." + print_info "No update needed." + exit 0 +fi + +# Extract version from URL (e.g., .../Cursor-2.0.34-x86_64.AppImage -> 2.0.34) +NEW_VERSION=$(echo "$NEW_URL" | sed -n 's/.*Cursor-\(.*\)-x86_64\.AppImage/\1/p') + +if [[ -z "$NEW_VERSION" ]]; then + print_warning "Could not automatically determine new version from URL." + print_warning "The file name format may have changed." + # Fallback: ask user + read -p "Please enter the new version number: " NEW_VERSION + if [[ -z "$NEW_VERSION" ]]; then + print_error "Version number is required." + exit 1 + fi +fi + print_info "New version: $NEW_VERSION" -print_info "New URL: $NEW_URL" echo "" -# Get hash +# 5. GET HASH +# ------------------------------------------------ print_info "Fetching SHA256 hash..." HASH=$(nix-prefetch-url "$NEW_URL") if [[ -z "$HASH" ]]; then - print_error "Failed to get hash" + print_error "Failed to get hash for $NEW_URL" exit 1 fi print_success "SHA256 hash: $HASH" echo "" -# Update flake.nix +# 6. UPDATE FLAKE.NIX +# ------------------------------------------------ print_info "Updating flake.nix..." # Update version @@ -90,7 +130,8 @@ print_success "Updated URL" sed -i "s|sha256 = \"$CURRENT_HASH\";|sha256 = \"$HASH\";|" flake.nix print_success "Updated hash" -# Test build +# 7. TEST BUILD +# ------------------------------------------------ print_info "Testing build..." if nix build .#cursor; then print_success "Build successful!" @@ -120,10 +161,14 @@ if nix build .#cursor; then fi else print_error "Build failed!" + print_info "Reverting changes to flake.nix..." + # Simple git revert + git checkout -- flake.nix + print_success "flake.nix reverted." exit 1 fi echo "" print_info "Package updated successfully!" print_info "To use in your system: rebuild your main NixOS configuration" -print_success "Update complete!" +print_success "Update complete!" \ No newline at end of file From 8975a043efa539cfbdb6ddff1ed51b12c0bba8d0 Mon Sep 17 00:00:00 2001 From: Proxay Date: Tue, 4 Nov 2025 22:20:38 +1000 Subject: [PATCH 03/29] Refactor update-cursor.yml to use nix shell for dependency management - Removed explicit dependency installation commands - Updated the script execution to run within a nix shell, ensuring all required dependencies are available --- .github/workflows/update-cursor.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/update-cursor.yml b/.github/workflows/update-cursor.yml index 1fd5dd4..cc0f7d2 100644 --- a/.github/workflows/update-cursor.yml +++ b/.github/workflows/update-cursor.yml @@ -28,18 +28,13 @@ jobs: extra_nix_config: | experimental-features = nix-command flakes - - name: Install dependencies - run: | - nix-env -iA nixpkgs.curl - nix-env -iA nixpkgs.htmlq - nix-env -iA nixpkgs.ripgrep - - name: Run update script id: update continue-on-error: true run: | chmod +x update-cursor.sh - ./update-cursor.sh + # Run the script in a nix shell with all required dependencies + nix shell nixpkgs#curl nixpkgs#htmlq nixpkgs#ripgrep --command ./update-cursor.sh - name: Check for changes id: check_changes From 1d72982b8d8c4a66ecfd179f5a6ed5326f7f0fab Mon Sep 17 00:00:00 2001 From: Proxay Date: Tue, 4 Nov 2025 22:29:02 +1000 Subject: [PATCH 04/29] README update --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ae3f0f4..2926eb3 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ A clean, simple NixOS flake for packaging the [Cursor](https://cursor.sh/) AI-powered code editor. +## Auto checks for updates every day + ## 📦 What This Flake Provides This flake packages Cursor as a Nix package that can be easily integrated into any NixOS system or used standalone. From 96196002444cadd57bfe9da1d58d39591e9914d8 Mon Sep 17 00:00:00 2001 From: Proxay Date: Sat, 15 Nov 2025 11:46:23 +1000 Subject: [PATCH 05/29] Update Cursor to version 2.0.77 with new download URL and SHA256 checksum - Updated flake.nix to reflect the new version, URL, and checksum - Enhanced README with updated instructions for version updates - Modified update-cursor.sh to improve URL retrieval process and dependency checks --- README.md | 13 +++++++++++-- flake.nix | 6 +++--- update-cursor.sh | 31 +++++++++++++++++++++---------- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 2926eb3..bb514bb 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,12 @@ A clean, simple NixOS flake for packaging the [Cursor](https://cursor.sh/) AI-po This flake packages Cursor as a Nix package that can be easily integrated into any NixOS system or used standalone. **Packages:** + - `packages.x86_64-linux.cursor` - The Cursor editor with full desktop integration - `packages.x86_64-linux.default` - Same as cursor (default package) **Features:** + - ✅ **Complete Desktop Integration** - Includes icon extraction and desktop entry - ✅ **Icon Support** - Automatically extracts and installs Cursor icon from AppImage - ✅ **MIME Type Associations** - Supports opening various file types with Cursor @@ -83,23 +85,27 @@ nix run .#cursor When a new version of Cursor is released, use the included update script: ### Method 1: Automatic with URL + ```bash ./update-cursor.sh "https://downloads.cursor.com/production/[hash]/linux/x64/Cursor-1.6.0-x86_64.AppImage" ``` ### Method 2: Interactive + ```bash ./update-cursor.sh # Follow the prompts to enter version or URL ``` ### Method 3: Version number + ```bash ./update-cursor.sh "1.6.0" # Script will prompt for the full download URL ``` The script will automatically: + - ✅ Update the version in `flake.nix` - ✅ Update the download URL - ✅ Fetch and update the SHA256 hash @@ -109,7 +115,7 @@ The script will automatically: ## 📁 Repository Structure -``` +```text cursor-flake/ ├── flake.nix # Main flake configuration (package-only) ├── flake.lock # Flake lock file @@ -144,9 +150,11 @@ If you prefer to update manually: 1. Get the new AppImage URL from [cursor.sh](https://cursor.sh) 2. Update version and URL in `flake.nix` 3. Get the new hash: + ```bash nix-prefetch-url "https://downloads.cursor.com/production/[hash]/linux/x64/Cursor-X.Y.Z-x86_64.AppImage" ``` + 4. Update the hash in `flake.nix` 5. Test: `nix build .#cursor` @@ -168,6 +176,7 @@ This flake uses `appimageTools.extract` and `appimageTools.wrapType2` to properl This flake was simplified from a previous version that included full NixOS system configurations. The old structure has been archived in `archive-old-system-configs/` for reference. **Benefits of the new structure:** + - ✅ **Focused**: Just packages Cursor, nothing else - ✅ **Reusable**: Easy to integrate into any NixOS system - ✅ **Maintainable**: No complex system configurations to maintain @@ -191,4 +200,4 @@ nix build .#cursor - [Cursor Official Website](https://cursor.sh/) - [NixOS Documentation](https://nixos.org/manual/nixos/stable/) -- [Nix Flakes Documentation](https://nixos.wiki/wiki/Flakes) \ No newline at end of file +- [Nix Flakes Documentation](https://nixos.wiki/wiki/Flakes) diff --git a/flake.nix b/flake.nix index e65889e..b5ce6a1 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.0.34"; - url = "https://downloads.cursor.com/production/45fd70f3fe72037444ba35c9e51ce86a1977ac11/linux/x64/Cursor-2.0.34-x86_64.AppImage"; - sha256 = "04y44s1i8if0kccxndfsjqymblb4zwcm6gvyq354fckd3gc4v7f7"; + version = "2.0.77"; + url = "https://downloads.cursor.com/production/ba90f2f88e4911312761abab9492c42442117cfe/linux/x64/Cursor-2.0.77-x86_64.AppImage"; + sha256 = "1zd79bj3374fxgzn61y9s83jixfyn197r522ghxyg18572ddrgpy"; }; }; diff --git a/update-cursor.sh b/update-cursor.sh index 92bcac3..51cfce8 100755 --- a/update-cursor.sh +++ b/update-cursor.sh @@ -22,7 +22,7 @@ print_error() { echo -e "${RED}[ERROR]${NC} $1"; } check_deps() { print_info "Checking for required tools..." local missing=0 - for tool in curl htmlq rg nix-prefetch-url sed grep; do + for tool in curl nix-prefetch-url sed grep; do if ! command -v "$tool" &> /dev/null; then print_error "Required tool '$tool' is not installed." missing=1 @@ -31,7 +31,7 @@ check_deps() { if [[ "$missing" -eq 1 ]]; then print_error "Please install missing tools to continue." - print_info "You may be able to install them with: nix-shell -p curl htmlq ripgrep nix" + print_info "You may be able to install them with: nix-shell -p curl nix" exit 1 fi print_success "All required tools found." @@ -52,7 +52,7 @@ echo "" # 3. GET CURRENT VALUES # ------------------------------------------------ CURRENT_VERSION=$(grep -o 'version = "[^"]*"' flake.nix | head -1 | sed 's/version = "//;s/"//') -CURRENT_URL=$(grep -o 'https://downloads\.cursor\.com/[^"]*' flake.nix | head -1) +CURRENT_URL=$(grep -o 'https://downloads[.]cursor[.]com/[^"]*' flake.nix | head -1) CURRENT_HASH=$(grep -o 'sha256 = "[^"]*"' flake.nix | head -1 | sed 's/sha256 = "//;s/"//') print_info "Current version: ${CURRENT_VERSION:-unknown}" @@ -63,15 +63,26 @@ echo "" # ------------------------------------------------ print_info "Finding latest AppImage URL from https://cursor.com/download..." -# Use the command from our previous conversation to find the link -NEW_URL=$(curl -s https://cursor.com/download | \ - htmlq --attribute href a | \ - rg "https://downloads.cursor.com/production/[^/]+/linux/x64/Cursor-[^/]+-x86_64.AppImage" | \ - head -n 1) # Take the first match just in case +# The download page now uses API URLs that redirect to the actual AppImage +# First, get the API URL from the download page +API_URL=$(curl -s https://cursor.com/download | \ + grep -o 'https://api2.cursor.sh/updates/download/golden/linux-x64/cursor/[^"]*' | \ + head -n 1) + +if [[ -z "$API_URL" ]]; then + print_error "Could not find API download URL on the download page." + print_error "The website structure may have changed." + exit 1 +fi + +print_info "Found API URL: $API_URL" + +# Follow the redirect to get the actual AppImage URL with version number +NEW_URL=$(curl -sIL "$API_URL" | grep -i "^location:" | tail -n 1 | sed 's/location: //i' | tr -d '\r\n') if [[ -z "$NEW_URL" ]]; then - print_error "Could not automatically find a new download URL." - print_error "The website structure may have changed or the regex is no longer valid." + print_error "Could not follow redirect to find actual AppImage URL." + print_error "The API endpoint may have changed." exit 1 fi From bf3a392d3967c5cf4be78bbc9ac174204e5c07c9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 22 Nov 2025 03:02:30 +0000 Subject: [PATCH 06/29] chore: update Cursor to version 2.1.19 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index b5ce6a1..2a65beb 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.0.77"; - url = "https://downloads.cursor.com/production/ba90f2f88e4911312761abab9492c42442117cfe/linux/x64/Cursor-2.0.77-x86_64.AppImage"; - sha256 = "1zd79bj3374fxgzn61y9s83jixfyn197r522ghxyg18572ddrgpy"; + version = "2.1.19"; + url = "https://downloads.cursor.com/production/39a966b4048ef6b8024b27d4812a50d88de29cc3/linux/x64/Cursor-2.1.19-x86_64.AppImage"; + sha256 = "0ypnfv15ywglq2aa6lqzy0psya3f5nxkd2h8pk7747s4v0b57dms"; }; }; From 7b40a026f6431fb593c10020f4cd10d02ba0877c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 23 Nov 2025 03:25:46 +0000 Subject: [PATCH 07/29] chore: update Cursor to version 2.1.24 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 2a65beb..4756d7d 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.19"; - url = "https://downloads.cursor.com/production/39a966b4048ef6b8024b27d4812a50d88de29cc3/linux/x64/Cursor-2.1.19-x86_64.AppImage"; - sha256 = "0ypnfv15ywglq2aa6lqzy0psya3f5nxkd2h8pk7747s4v0b57dms"; + version = "2.1.24"; + url = "https://downloads.cursor.com/production/ac32b095dae9b8e0cfede6c5ebc55e589ee50e1b/linux/x64/Cursor-2.1.24-x86_64.AppImage"; + sha256 = "1ni32hcjs7zlxr3gxb7dd141d7h54qksr4891rfsslql58w5snkn"; }; }; From e7d5bbdefdb7363740a65ab09cac27bf518a015a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Nov 2025 03:21:57 +0000 Subject: [PATCH 08/29] chore: update Cursor to version 2.1.25 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 4756d7d..c5ee21f 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.24"; - url = "https://downloads.cursor.com/production/ac32b095dae9b8e0cfede6c5ebc55e589ee50e1b/linux/x64/Cursor-2.1.24-x86_64.AppImage"; - sha256 = "1ni32hcjs7zlxr3gxb7dd141d7h54qksr4891rfsslql58w5snkn"; + version = "2.1.25"; + url = "https://downloads.cursor.com/production/7584ea888f7eb7bf76c9873a8f71b28f034a982e/linux/x64/Cursor-2.1.25-x86_64.AppImage"; + sha256 = "1hwl8ncz96s3gpikclja119r5nr7qyvdsw2ki0gh665v1wmc49jg"; }; }; From 91d94189efaa1716a7f8d1555708883fce0706df Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Nov 2025 03:13:19 +0000 Subject: [PATCH 09/29] chore: update Cursor to version 2.1.26 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index c5ee21f..faa0328 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.25"; - url = "https://downloads.cursor.com/production/7584ea888f7eb7bf76c9873a8f71b28f034a982e/linux/x64/Cursor-2.1.25-x86_64.AppImage"; - sha256 = "1hwl8ncz96s3gpikclja119r5nr7qyvdsw2ki0gh665v1wmc49jg"; + version = "2.1.26"; + url = "https://downloads.cursor.com/production/f628a4761be40b8869ca61a6189cafd14756dff4/linux/x64/Cursor-2.1.26-x86_64.AppImage"; + sha256 = "04f48skx2r8ypmcgypp0jgk277c9wl7qrkh0f0rklzfmd20ynjwn"; }; }; From 14f95a667da07b579e00911474eb32eb1e473892 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 26 Nov 2025 03:13:29 +0000 Subject: [PATCH 10/29] chore: update Cursor to version 2.1.35 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index faa0328..3ba74e5 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.26"; - url = "https://downloads.cursor.com/production/f628a4761be40b8869ca61a6189cafd14756dff4/linux/x64/Cursor-2.1.26-x86_64.AppImage"; - sha256 = "04f48skx2r8ypmcgypp0jgk277c9wl7qrkh0f0rklzfmd20ynjwn"; + version = "2.1.35"; + url = "https://downloads.cursor.com/production/7c2ce39981a2dd9877d57af05db98697e1c20908/linux/x64/Cursor-2.1.35-x86_64.AppImage"; + sha256 = "0d2rmvy1fqwi92kn8ac6f84hffpivgj5vmi8mhgq9rqvyawi70v8"; }; }; From 90485675d1a09fb25723c20ea417bc898966ebce Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 27 Nov 2025 03:09:54 +0000 Subject: [PATCH 11/29] chore: update Cursor to version 2.1.39 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 3ba74e5..20a6b15 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.35"; - url = "https://downloads.cursor.com/production/7c2ce39981a2dd9877d57af05db98697e1c20908/linux/x64/Cursor-2.1.35-x86_64.AppImage"; - sha256 = "0d2rmvy1fqwi92kn8ac6f84hffpivgj5vmi8mhgq9rqvyawi70v8"; + version = "2.1.39"; + url = "https://downloads.cursor.com/production/60d42bed27e5775c43ec0428d8c653c49e58e26a/linux/x64/Cursor-2.1.39-x86_64.AppImage"; + sha256 = "06h2w9qfsnnp2qi3bacfdxb96z2l38f95ckssjkk60xzr9ds3hja"; }; }; From c2600c8a13cf7976a164653d7b5544b90663e6de Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Dec 2025 03:49:00 +0000 Subject: [PATCH 12/29] chore: update Cursor to version 2.1.42 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 20a6b15..298c0b4 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.39"; - url = "https://downloads.cursor.com/production/60d42bed27e5775c43ec0428d8c653c49e58e26a/linux/x64/Cursor-2.1.39-x86_64.AppImage"; - sha256 = "06h2w9qfsnnp2qi3bacfdxb96z2l38f95ckssjkk60xzr9ds3hja"; + version = "2.1.42"; + url = "https://downloads.cursor.com/production/2e353c5f5b30150ff7b874dee5a87660693d9de6/linux/x64/Cursor-2.1.42-x86_64.AppImage"; + sha256 = "0y3qsii865xvwha7jkq6l4cvkchf4mhnxfk5cn4s6jah17sy58aj"; }; }; From 590c8df68569f646165c6d9599349c8fdc0504db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Dec 2025 03:16:53 +0000 Subject: [PATCH 13/29] chore: update Cursor to version 2.1.44 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 298c0b4..961e944 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.42"; - url = "https://downloads.cursor.com/production/2e353c5f5b30150ff7b874dee5a87660693d9de6/linux/x64/Cursor-2.1.42-x86_64.AppImage"; - sha256 = "0y3qsii865xvwha7jkq6l4cvkchf4mhnxfk5cn4s6jah17sy58aj"; + version = "2.1.44"; + url = "https://downloads.cursor.com/production/f6a8593b2b7c61c2063c79d5a8fcd248c9db458a/linux/x64/Cursor-2.1.44-x86_64.AppImage"; + sha256 = "02jx3rrrlax0kagbfng9c9s06l20nph6kg1jr3mr9kzz0msn8hr5"; }; }; From 4649a49d3d49096ea95278c86b7abe1b60e06312 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 3 Dec 2025 03:15:44 +0000 Subject: [PATCH 14/29] chore: update Cursor to version 2.1.46 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 961e944..88520b8 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.44"; - url = "https://downloads.cursor.com/production/f6a8593b2b7c61c2063c79d5a8fcd248c9db458a/linux/x64/Cursor-2.1.44-x86_64.AppImage"; - sha256 = "02jx3rrrlax0kagbfng9c9s06l20nph6kg1jr3mr9kzz0msn8hr5"; + version = "2.1.46"; + url = "https://downloads.cursor.com/production/ab326d0767c02fb9847b342c43ea58275c4b1685/linux/x64/Cursor-2.1.46-x86_64.AppImage"; + sha256 = "0snvkij4p3nq6vw9dxvaf3634ycq88m2x6xshwk38q66wwfq3071"; }; }; From 25e55fb4495d90f806db87d05b3306bb7a20aaed Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 4 Dec 2025 03:17:32 +0000 Subject: [PATCH 15/29] chore: update Cursor to version 2.1.47 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 88520b8..34bb836 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.46"; - url = "https://downloads.cursor.com/production/ab326d0767c02fb9847b342c43ea58275c4b1685/linux/x64/Cursor-2.1.46-x86_64.AppImage"; - sha256 = "0snvkij4p3nq6vw9dxvaf3634ycq88m2x6xshwk38q66wwfq3071"; + version = "2.1.47"; + url = "https://downloads.cursor.com/production/2d3ce3499c15efd55b6b8538ea255eb7ba4266b2/linux/x64/Cursor-2.1.47-x86_64.AppImage"; + sha256 = "1nnj6h841l03s9in3gmqhs28ddvshx0103715zfv9ikpvimayfzy"; }; }; From f69a86d333af80db5f418c13fd7afe4e72d05648 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 5 Dec 2025 03:17:24 +0000 Subject: [PATCH 16/29] chore: update Cursor to version 2.1.48 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 34bb836..a245f3f 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.47"; - url = "https://downloads.cursor.com/production/2d3ce3499c15efd55b6b8538ea255eb7ba4266b2/linux/x64/Cursor-2.1.47-x86_64.AppImage"; - sha256 = "1nnj6h841l03s9in3gmqhs28ddvshx0103715zfv9ikpvimayfzy"; + version = "2.1.48"; + url = "https://downloads.cursor.com/production/ce371ffbf5e240ca47f4b5f3f20efed084991120/linux/x64/Cursor-2.1.48-x86_64.AppImage"; + sha256 = "00nvx05im4s4fm1kxc3f5wl3hm3qxnb9r3gnm21ir5bkjrjvbbjj"; }; }; From 14355291383648c6d7a9b5979f484666a1702f05 Mon Sep 17 00:00:00 2001 From: Proxay Date: Sat, 6 Dec 2025 11:09:39 +1000 Subject: [PATCH 17/29] chore: setup Dapendabot and update documentation for automated dependency management --- .github/dependabot.yml | 46 +++++++++++ .github/workflows/update-cursor.yml | 4 +- .github/workflows/update-flake-inputs.yml | 96 +++++++++++++++++++++++ README.md | 34 +++++--- cursor-fix-solution.md | 9 ++- 5 files changed, 176 insertions(+), 13 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/update-flake-inputs.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1e9fb34 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,46 @@ +version: 2 +updates: + # Monitor GitHub Actions dependencies + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "02:00" + open-pull-requests-limit: 10 + labels: + - "dependencies" + - "github-actions" + commit-message: + prefix: "chore" + include: "scope" + reviewers: + - "proxay" + # Group all GitHub Actions updates into a single PR + groups: + github-actions: + patterns: + - "*" + + # Monitor Nix flake inputs + # Note: Dependabot doesn't natively support Nix flakes. + # Nix flake inputs (nixpkgs) are automatically updated via the + # 'update-flake-inputs.yml' workflow which runs weekly and creates PRs. + # + # Cursor version updates are handled by the 'update-cursor.yml' workflow + # which runs daily and automatically commits updates. + # + # Both workflows complement this Dependabot configuration to keep + # all dependencies up to date. + + # If you add Docker or other dependencies in the future, + # uncomment and configure as needed: + # - package-ecosystem: "docker" + # directory: "/" + # schedule: + # interval: "weekly" + # open-pull-requests-limit: 5 + # labels: + # - "dependencies" + # - "docker" + diff --git a/.github/workflows/update-cursor.yml b/.github/workflows/update-cursor.yml index cc0f7d2..93aa7fe 100644 --- a/.github/workflows/update-cursor.yml +++ b/.github/workflows/update-cursor.yml @@ -60,7 +60,9 @@ jobs: run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add flake.nix flake.lock + # Only commit flake.nix as Cursor version changes don't affect flake.lock + # flake.lock is managed by the update-flake-inputs.yml workflow + git add flake.nix git commit -m "chore: update Cursor to version ${{ steps.version.outputs.version }}" git push diff --git a/.github/workflows/update-flake-inputs.yml b/.github/workflows/update-flake-inputs.yml new file mode 100644 index 0000000..546bb59 --- /dev/null +++ b/.github/workflows/update-flake-inputs.yml @@ -0,0 +1,96 @@ +name: Update Nix Flake Inputs + +on: + # Run weekly on Monday at 3 AM UTC (after the daily Cursor update) + schedule: + - cron: '0 3 * * 1' + + # Allow manual trigger + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + update-flake-inputs: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + # Ensure we have the latest changes (important if cursor was just updated) + ref: main + + - name: Install Nix + uses: cachix/install-nix-action@v25 + with: + nix_path: nixpkgs=channel:nixos-unstable + extra_nix_config: | + experimental-features = nix-command flakes + + - name: Update flake inputs + id: update + run: | + echo "Updating flake inputs..." + nix flake update + + # Check if there are any changes + if git diff --quiet flake.lock; then + echo "changed=false" >> $GITHUB_OUTPUT + echo "No updates available" + else + echo "changed=true" >> $GITHUB_OUTPUT + echo "Updates found in flake.lock" + fi + + - name: Test build after update + if: steps.update.outputs.changed == 'true' + run: | + echo "Testing build with updated inputs..." + nix build .#cursor --no-link + echo "Build test successful!" + + - name: Get nixpkgs version info + id: version_info + if: steps.update.outputs.changed == 'true' + run: | + # Extract nixpkgs revision from flake.lock + NIXPKGS_REV=$(jq -r '.nodes.nixpkgs.locked.rev' flake.lock | cut -c1-7) + echo "nixpkgs_rev=$NIXPKGS_REV" >> $GITHUB_OUTPUT + echo "New nixpkgs revision: $NIXPKGS_REV" + + - name: Create Pull Request + if: steps.update.outputs.changed == 'true' + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: "chore(deps): update Nix flake inputs" + title: "chore(deps): Update Nix flake inputs" + body: | + ## 🔄 Automated Nix Flake Input Update + + This PR updates the Nix flake inputs, primarily nixpkgs. + + ### Changes + - Updated nixpkgs to revision `${{ steps.version_info.outputs.nixpkgs_rev }}` + - Updated `flake.lock` file + + ### Testing + - ✅ Build test passed with updated inputs + + ### Review + Please review the changes in `flake.lock` and ensure the build works as expected. + + --- + *This PR was automatically created by the Update Flake Inputs workflow.* + branch: automated/update-flake-inputs + delete-branch: true + labels: | + dependencies + nix + automated + draft: false + diff --git a/README.md b/README.md index bb514bb..2e0e2b8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,15 @@ A clean, simple NixOS flake for packaging the [Cursor](https://cursor.sh/) AI-powered code editor. -## Auto checks for updates every day +## 🔄 Automated Dependency Management + +This repository features comprehensive automated dependency management: + +- ✅ **Daily Cursor updates** - Automatically checks and updates Cursor versions +- ✅ **Weekly Nix flake updates** - Updates nixpkgs and other inputs via PRs +- ✅ **Weekly GitHub Actions updates** - Dependabot keeps CI/CD dependencies current + +See [DEPENDENCY-MANAGEMENT.md](DEPENDENCY-MANAGEMENT.md) for detailed information. ## 📦 What This Flake Provides @@ -117,15 +125,21 @@ The script will automatically: ```text cursor-flake/ -├── flake.nix # Main flake configuration (package-only) -├── flake.lock # Flake lock file -├── update-cursor.sh # Update script for new versions -├── README.md # This file -├── LICENSE # MIT License -└── archive-old-system-configs/ # Archived old system configs - ├── configuration.nix # (archived - was for full system setup) - ├── home.nix # (archived - was for home-manager) - └── ... # (other archived files) +├── flake.nix # Main flake configuration (package-only) +├── flake.lock # Flake lock file +├── update-cursor.sh # Update script for new versions +├── README.md # This file +├── LICENSE # MIT License +├── DEPENDENCY-MANAGEMENT.md # Dependency management documentation +├── .github/ +│ ├── dependabot.yml # Dependabot configuration +│ └── workflows/ +│ ├── update-cursor.yml # Daily Cursor update workflow +│ └── update-flake-inputs.yml # Weekly flake update workflow +└── archive-old-system-configs/ # Archived old system configs + ├── configuration.nix # (archived - was for full system setup) + ├── home.nix # (archived - was for home-manager) + └── ... # (other archived files) ``` ## 🔧 Development diff --git a/cursor-fix-solution.md b/cursor-fix-solution.md index 1637745..0ec23eb 100644 --- a/cursor-fix-solution.md +++ b/cursor-fix-solution.md @@ -4,7 +4,7 @@ The issue with Cursor when using the custom developed flake is related to native modules not being found when the AppImage runs. The error shows: -``` +```text Error: Cannot find module './build/Debug/keymapping' Require stack: - /home/user/.cache/appimage-run/d249132fa6429cbc46050495a19ed410e04db53655428955024ff631c095d11c/usr/share/cursor/resources/app/node_modules/native-keymap/index.js @@ -240,10 +240,13 @@ in 1. Open your `home.nix` file 2. Replace the existing `cursorAppImage` section with the updated version above 3. Rebuild your system with: + ```bash sudo nixos-rebuild switch --flake .#cursor-system ``` + 4. Test Cursor: + ```bash cursor --version ``` @@ -253,15 +256,17 @@ in If you still encounter issues: 1. Clear the AppImage cache: + ```bash rm -rf ~/.cache/appimage-run/* ``` 2. Try running Cursor with additional debugging: + ```bash cursor --enable-logging --v=1 ``` 3. Check if the issue persists in a fresh terminal session -These changes should resolve the native module loading issues you're experiencing with Cursor in your NixOS flake. \ No newline at end of file +These changes should resolve the native module loading issues you're experiencing with Cursor in your NixOS flake. From 1188ac2189ae89fe0cbb4234cc67f0201200a213 Mon Sep 17 00:00:00 2001 From: ProxayFox Date: Sat, 6 Dec 2025 01:11:49 +0000 Subject: [PATCH 18/29] chore(deps): update Nix flake inputs --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 0a8f512..9fc6ab5 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1761907660, - "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", + "lastModified": 1764667669, + "narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", + "rev": "418468ac9527e799809c900eda37cbff999199b6", "type": "github" }, "original": { From d3059419ddea1528900d3119d5847d59084bfe7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Dec 2025 01:36:27 +0000 Subject: [PATCH 19/29] chore(deps): bump the github-actions group with 4 updates Bumps the github-actions group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [cachix/install-nix-action](https://github.com/cachix/install-nix-action), [softprops/action-gh-release](https://github.com/softprops/action-gh-release) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request). Updates `actions/checkout` from 4 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v6) Updates `cachix/install-nix-action` from 25 to 31 - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Changelog](https://github.com/cachix/install-nix-action/blob/master/RELEASE.md) - [Commits](https://github.com/cachix/install-nix-action/compare/v25...v31) Updates `softprops/action-gh-release` from 1 to 2 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2) Updates `peter-evans/create-pull-request` from 5 to 7 - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: cachix/install-nix-action dependency-version: '31' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: softprops/action-gh-release dependency-version: '2' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: peter-evans/create-pull-request dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/update-cursor.yml | 6 +++--- .github/workflows/update-flake-inputs.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/update-cursor.yml b/.github/workflows/update-cursor.yml index 93aa7fe..d791d62 100644 --- a/.github/workflows/update-cursor.yml +++ b/.github/workflows/update-cursor.yml @@ -17,12 +17,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Install Nix - uses: cachix/install-nix-action@v25 + uses: cachix/install-nix-action@v31 with: nix_path: nixpkgs=channel:nixos-unstable extra_nix_config: | @@ -68,7 +68,7 @@ jobs: - name: Create Release (optional) if: steps.check_changes.outputs.changed == 'true' - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: tag_name: v${{ steps.version.outputs.version }} name: Cursor ${{ steps.version.outputs.version }} diff --git a/.github/workflows/update-flake-inputs.yml b/.github/workflows/update-flake-inputs.yml index 546bb59..df3f2e9 100644 --- a/.github/workflows/update-flake-inputs.yml +++ b/.github/workflows/update-flake-inputs.yml @@ -18,14 +18,14 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} # Ensure we have the latest changes (important if cursor was just updated) ref: main - name: Install Nix - uses: cachix/install-nix-action@v25 + uses: cachix/install-nix-action@v31 with: nix_path: nixpkgs=channel:nixos-unstable extra_nix_config: | @@ -64,7 +64,7 @@ jobs: - name: Create Pull Request if: steps.update.outputs.changed == 'true' - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: "chore(deps): update Nix flake inputs" From 53f701c0489b12d48ea052a5612a3197dee42a6b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 6 Dec 2025 02:28:40 +0000 Subject: [PATCH 20/29] chore: update Cursor to version 2.1.49 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index a245f3f..2041d44 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.48"; - url = "https://downloads.cursor.com/production/ce371ffbf5e240ca47f4b5f3f20efed084991120/linux/x64/Cursor-2.1.48-x86_64.AppImage"; - sha256 = "00nvx05im4s4fm1kxc3f5wl3hm3qxnb9r3gnm21ir5bkjrjvbbjj"; + version = "2.1.49"; + url = "https://downloads.cursor.com/production/21a2ed198584d56a91c0b996d1a09c93f8538440/linux/x64/Cursor-2.1.49-x86_64.AppImage"; + sha256 = "1inxycsqyxvllcc0pdyy72b85s9ai3wbmyrgzn8s9cnvz3nibbm3"; }; }; From 1f5d9446969f792df5c4aac07a0b2d0b04802325 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 7 Dec 2025 03:25:27 +0000 Subject: [PATCH 21/29] chore: update Cursor to version 2.1.50 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 2041d44..f5e31d8 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.49"; - url = "https://downloads.cursor.com/production/21a2ed198584d56a91c0b996d1a09c93f8538440/linux/x64/Cursor-2.1.49-x86_64.AppImage"; - sha256 = "1inxycsqyxvllcc0pdyy72b85s9ai3wbmyrgzn8s9cnvz3nibbm3"; + version = "2.1.50"; + url = "https://downloads.cursor.com/production/56f0a83df8e9eb48585fcc4858a9440db4cc7771/linux/x64/Cursor-2.1.50-x86_64.AppImage"; + sha256 = "0wfsa42rn8cxf9m9kk8a5zwj98ry73221mw2qaql7krg79dmyaw2"; }; }; From bf09ed4cc58543bfe0909e51bb79666fdeea746c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 11 Dec 2025 03:23:02 +0000 Subject: [PATCH 22/29] chore: update Cursor to version 2.2.14 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index f5e31d8..e50de34 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.1.50"; - url = "https://downloads.cursor.com/production/56f0a83df8e9eb48585fcc4858a9440db4cc7771/linux/x64/Cursor-2.1.50-x86_64.AppImage"; - sha256 = "0wfsa42rn8cxf9m9kk8a5zwj98ry73221mw2qaql7krg79dmyaw2"; + version = "2.2.14"; + url = "https://downloads.cursor.com/production/1685afce45886aa5579025ac7e077fc3d4369c52/linux/x64/Cursor-2.2.14-x86_64.AppImage"; + sha256 = "1ck10q96mnl21v82ql7si3f8pxn88ya5ykcmsgdndb9wdm33729g"; }; }; From f89c4d4cefe6a40ab630473e854dc9b6948430cb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 12 Dec 2025 03:21:49 +0000 Subject: [PATCH 23/29] chore: update Cursor to version 2.2.17 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index e50de34..8bd9f1a 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.2.14"; - url = "https://downloads.cursor.com/production/1685afce45886aa5579025ac7e077fc3d4369c52/linux/x64/Cursor-2.2.14-x86_64.AppImage"; - sha256 = "1ck10q96mnl21v82ql7si3f8pxn88ya5ykcmsgdndb9wdm33729g"; + version = "2.2.17"; + url = "https://downloads.cursor.com/production/cf858ca030e9c9a99ea444ec6efcbcfc40bfda75/linux/x64/Cursor-2.2.17-x86_64.AppImage"; + sha256 = "0fwa06p9ffzhy2mcliw34n5xmy3s8v2qffzgy3243djsd4hcsd7i"; }; }; From 68108315ce64246a1ac524a882d723e7cb61578e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 13 Dec 2025 03:13:57 +0000 Subject: [PATCH 24/29] chore: update Cursor to version 2.2.20 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 8bd9f1a..14bdb80 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.2.17"; - url = "https://downloads.cursor.com/production/cf858ca030e9c9a99ea444ec6efcbcfc40bfda75/linux/x64/Cursor-2.2.17-x86_64.AppImage"; - sha256 = "0fwa06p9ffzhy2mcliw34n5xmy3s8v2qffzgy3243djsd4hcsd7i"; + version = "2.2.20"; + url = "https://downloads.cursor.com/production/b3573281c4775bfc6bba466bf6563d3d498d1074/linux/x64/Cursor-2.2.20-x86_64.AppImage"; + sha256 = "1g8a34dvzksfkcyvsj060pwmlhrq97lvmbcdm5dj9v4glqnkd3km"; }; }; From f5ffc64201805a894ad353351eb2b1d8a775df55 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Dec 2025 03:22:33 +0000 Subject: [PATCH 25/29] chore: update Cursor to version 2.2.23 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 14bdb80..6b82309 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.2.20"; - url = "https://downloads.cursor.com/production/b3573281c4775bfc6bba466bf6563d3d498d1074/linux/x64/Cursor-2.2.20-x86_64.AppImage"; - sha256 = "1g8a34dvzksfkcyvsj060pwmlhrq97lvmbcdm5dj9v4glqnkd3km"; + version = "2.2.23"; + url = "https://downloads.cursor.com/production/b3c95a7981bb3057526f1f865e8c307a9911ce00/linux/x64/Cursor-2.2.23-x86_64.AppImage"; + sha256 = "06g1g5h10y21mq0v2390d91pnaxr7czw0gcmjpsm35kg30hjkc3f"; }; }; From 89c70f4c14213913308719e5532bd1134ee6741d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 17 Dec 2025 03:18:28 +0000 Subject: [PATCH 26/29] chore: update Cursor to version 2.2.27 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 6b82309..3bea0fa 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.2.23"; - url = "https://downloads.cursor.com/production/b3c95a7981bb3057526f1f865e8c307a9911ce00/linux/x64/Cursor-2.2.23-x86_64.AppImage"; - sha256 = "06g1g5h10y21mq0v2390d91pnaxr7czw0gcmjpsm35kg30hjkc3f"; + version = "2.2.27"; + url = "https://downloads.cursor.com/production/92d81a68151ca9bec11fda0a58d29fef7cbccf65/linux/x64/Cursor-2.2.27-x86_64.AppImage"; + sha256 = "15qsmhrdifjjplddl0rzfifx8rl1ic5d2wvhws1dxn29ld42xbfc"; }; }; From 9e8465609e03dfabdaa367cd6753031cc692745d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 18 Dec 2025 03:19:07 +0000 Subject: [PATCH 27/29] chore: update Cursor to version 2.2.20 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 3bea0fa..14bdb80 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.2.27"; - url = "https://downloads.cursor.com/production/92d81a68151ca9bec11fda0a58d29fef7cbccf65/linux/x64/Cursor-2.2.27-x86_64.AppImage"; - sha256 = "15qsmhrdifjjplddl0rzfifx8rl1ic5d2wvhws1dxn29ld42xbfc"; + version = "2.2.20"; + url = "https://downloads.cursor.com/production/b3573281c4775bfc6bba466bf6563d3d498d1074/linux/x64/Cursor-2.2.20-x86_64.AppImage"; + sha256 = "1g8a34dvzksfkcyvsj060pwmlhrq97lvmbcdm5dj9v4glqnkd3km"; }; }; From f4589f3a42baa1f34b313690c39954d6ba4ab7d7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 19 Dec 2025 03:22:16 +0000 Subject: [PATCH 28/29] chore: update Cursor to version 2.2.36 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 14bdb80..ae923d2 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.2.20"; - url = "https://downloads.cursor.com/production/b3573281c4775bfc6bba466bf6563d3d498d1074/linux/x64/Cursor-2.2.20-x86_64.AppImage"; - sha256 = "1g8a34dvzksfkcyvsj060pwmlhrq97lvmbcdm5dj9v4glqnkd3km"; + version = "2.2.36"; + url = "https://downloads.cursor.com/production/55c9bc11e99cedd1fb93fbb7996abf779c58315f/linux/x64/Cursor-2.2.36-x86_64.AppImage"; + sha256 = "1fncqxmaq014cq3g0ff1w0qi9g5i3z9i3jf7vkfm6bg5qhjwk8xp"; }; }; From 7ba1772755a0038f3eda3ce2f6e2e4eb7c45964b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 20 Dec 2025 03:13:46 +0000 Subject: [PATCH 29/29] chore: update Cursor to version 2.2.43 --- flake.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index ae923d2..705814a 100644 --- a/flake.nix +++ b/flake.nix @@ -106,9 +106,9 @@ packages.${system} = { default = self.packages.${system}.cursor; cursor = buildCursor { - version = "2.2.36"; - url = "https://downloads.cursor.com/production/55c9bc11e99cedd1fb93fbb7996abf779c58315f/linux/x64/Cursor-2.2.36-x86_64.AppImage"; - sha256 = "1fncqxmaq014cq3g0ff1w0qi9g5i3z9i3jf7vkfm6bg5qhjwk8xp"; + version = "2.2.43"; + url = "https://downloads.cursor.com/production/32cfbe848b35d9eb320980195985450f244b303d/linux/x64/Cursor-2.2.43-x86_64.AppImage"; + sha256 = "1bgifjyscqymbz0srw8np9pc88gwcccic3z4cnydyfskxhnyj0sr"; }; };