FixPad++ Replication Package

Read full text
Authors: Anonymus
Cited by: 0

Abstract

FixPad: Automated Bug Fix Verification Framework for Notepad++An AI-powered framework for automatically verifying bug fixes in Notepad++ using multi-agent systems with visual feedback. This research tool employs LLM agents powered by Gemini 2.5 Flash to interpret bug reports, interact with the application UI, and verify bug fixes through iterative observation and action cycles.πŸ—οΈ Repository Structure FixPad/ β”œβ”€β”€ fixpad/ # Main package β”‚ β”œβ”€β”€ openai_cua/ # OpenAI CUA baseline implementation β”‚ β”‚ └── README.md # See this for OpenAI CUA documentation β”‚ β”œβ”€β”€ app.py # Main orchestrator and agent loop β”‚ β”œβ”€β”€ agents.py # LLM agent implementations (Action, Reflection, Observer) β”‚ β”œβ”€β”€ action_manager.py # UI automation and action execution β”‚ β”œβ”€β”€ env_manager.py # Notepad++ lifecycle management β”‚ β”œβ”€β”€ omniparser.py # UI parsing via Replicate API β”‚ β”œβ”€β”€ prompts.py # Agent prompts β”‚ └── util.py # Utility functions and logging β”œβ”€β”€ installers/ # Notepad++ installer executables β”œβ”€β”€ dataset.json # Fixpad-Bench dataset β”œβ”€β”€ pyproject.toml # Project dependencies and metadata β”œβ”€β”€ requirements.lock # Locked dependency versions β”œβ”€β”€ .env.example # Environment variable template β”œβ”€β”€ results/ # Research results and analysis β”œβ”€β”€ .gitignore # Git ignore rules β”œβ”€β”€ main.py # Entry point script └── README.md # This file Results and LogsResearch results (RQ1/RQ2 summaries, action distribution, reproduction failures): results/FixPad agent run logs (trajectory + timing per bug): fixpad/run_logs/OpenAI CUA buggy version logs: fixpad/openai_cua_logs/OpenAI CUA patched version logs: fixpad/openai_cua_logs_patched/πŸ“Š DatasetThe dataset.json file contains 105 bug entries with the following structure: { "bug_id": "038", "title": "[BUG] Inserting numbers with Column Editor causes crash", "bug_report_url": "https://github.com/notepad-plus-plus/notepad-plus-plus/issues/15144", "steps_to_reproduce": "Steps To Reproduce\n1. Select at least 28 lines...", "buggy_version": "npp.8.6.7", "patched_version": "npp.8.6.8", "is_fix_correct": "correct", "crash_behavior": "freeze", "notes": "" } Field Descriptions:bug_id: Unique identifier (e.g., "001", "038")title: Bug description from issue trackerbug_report_url: GitHub issue URLsteps_to_reproduce: Reproduction steps from bug reportbuggy_version: Notepad++ version containing the bugpatched_version: Notepad++ version with the fixis_fix_correct: Whether the patch correctly fixes the bug ("correct" or "incorrect")crash_behavior: Type of failure ("freeze", "crash", or empty)notes: Additional information or special considerationsπŸš€ InstallationPrerequisitesOperating System: Windows 10/11 (required for pywinauto automation)Python: 3.10 or higherPackage Manager: uv (recommended) or pipRequired AccountsGoogle Cloud Platform with Vertex AI API enabledReplicate account for OmniParser API accessStep 1: Install UV (Recommended)Windows (PowerShell): Using pip: pip install uv Step 2: Clone or Download the RepositoryClone the repository or download from Figshare, then navigate to the project directory: cd FixPad Step 3: Install DependenciesUsing UV (recommended): # Create virtual environment uv venv # Activate virtual environment .venv\Scripts\activate # Windows PowerShell # or .venv\Scripts\activate.bat # Windows CMD # Install dependencies uv pip install -e . Using pip: # Create virtual environment python -m venv .venv # Activate virtual environment .venv\Scripts\activate # Install dependencies pip install -r requirements.lock Step 4: Configure Environment Variables1. Copy the environment template: cp .env.example .env 2. Edit .env with your credentials: # Google Cloud Vertex AI Configuration PROJECT_ID=your-gcp-project-id LOCATION=us-central1 # Replicate API for OmniParser REPLICATE_API_TOKEN=your-replicate-api-token How to obtain credentials:Google Cloud Project ID:Go to Google Cloud ConsoleCreate a new project or select existingEnable Vertex AI APICopy the Project ID from the dashboardReplicate API Token:Sign up at ReplicateGo to Account Settings β†’ API TokensCreate a new token and copy it🎯 UsageThe framework runs an iterative multi-agent loop: it installs the target Notepad++ version, captures a screenshot, parses UI elements via OmniParser, then cycles through Observer (describe UI), Reflection (evaluate last action), and ActionAgent (decide next action) until the bug is reproduced or the iteration limit is reached. Finally, the discovered action sequence is replayed on a fresh instance for verification.Basic UsageRun with default bug (038) and 25 iterations: python fixpad/app.py Specify Bug IDTest a specific bug from the dataset: python fixpad/app.py --bug-id 022 Custom Maximum IterationsControl how many iterations the agent attempts: python fixpad/app.py --bug-id 038 --max-iterations 30 Command-Line Arguments --bug-id TEXT Bug ID to reproduce (e.g., '001', '022', '038') Default: '038' --max-iterations INT Maximum number of iterations for the agent loop Default: 25 πŸ” OpenAI CUA ImplementationThe fixpad/openai_cua/ directory contains an alternative agent implementation using OpenAI's Computer Use Agent framework.For detailed documentation, see fixpad/openai_cua/README.md

Fields of Study & Subjects

Software Testing and Debugging Techniques Software Engineering Research Robotic Process Automation Applications

Publication details

Journal / source
Figshare
Publication date
1 January 2026