Mendrey

Pronounced MEN-dree

A multi-agent system that turns bug reports into verified fixes for enterprise software teams, designed to run on their own infrastructure.

The slow part of fixing a bug is not the code

Most of the effort goes into understanding the report, reproducing the failure and proving that the fix works. Every hand-off between reporters, support staff, developers and testers adds another wait.

41%

23%say the same about writing the fix.

of developers name reproducing a bug as their biggest obstacle.

Source: Undo and Cambridge Judge Business School, CI Research Report, 2020

78.1%

of bug reports in the Eclipse project are shorter than 100 words, which starts rounds of questions between reporter and developer.

Source: Zhang et al., ICPC 2017

11 to 28%

of bug reports in open-source projects cannot be reproduced, and the time spent trying is lost.

Source: Erfani Joorabchi, Mirzaaghaei and Mesbah, MSR 2014

What this means for a large engineering organization

Reports arrive incomplete
The people who find a bug are rarely the people who fix it, and what a developer needs is often missing from the first report.
Hand-offs add delay
A bug passes between reporters, support, developers and testers, and every pass adds coordination and waiting.
The code cannot leave
Most AI tools that could help run in the vendor’s cloud. Teams that cannot send source code outside the company cannot use them.

How a bug moves through Mendrey

Each step adds to one shared case record. Work only moves forward with evidence, and a developer makes the final call.

People

Agents

Output

  1. Answers up to 3 questions
    Report creationReport enhancement
    Structured report

    Two agents turn the reporter’s own words into a complete, structured report, asking at most 3 questions.

  2. Steps in at the retry limit
    ReproductionIn the sandbox
    Failing test

    An agent writes a test that triggers the bug and runs it in an isolated sandbox, checking it fails for the reported reason.

    Not reproduced: back to step 1
  3. Assigned as owner
    In parallelClassificationFeature tracer
    Confirmed defect

    Two agents work in parallel: one sets type, severity and priority, the other finds the affected feature and its owner.

    Not a defect: closed
  4. LocalizationPatch generationIn the sandbox
    Candidate patches

    Agents narrow the search to the code at fault and write several candidate patches, each with its own tests.

  5. Steps in at the retry limit
    Code reviewPatch verificationIn the sandbox
    Validated patch

    Each patch is reviewed, then the failing test must pass on the patched code without weakening any existing test.

    Fails review: back to step 4
  6. Approves the merge
    Merged fix

    The best patch arrives as a pull request with its evidence. Nothing merges until the developer approves.

Step 1 of 6. Bug report. Two agents turn the reporter’s own words into a complete, structured report, asking at most 3 questions.

  • Agent
  • Person
  • Rule check at every hand-off
  • Goes back for another try
Example run: CSV export never finishes on some reportsIllustrative example

From the reporter’s words to a structured report

Reporter
“Export just spins forever on some reports.”
Mendrey
Does it happen on every report, or only some?
Reporter
Only the ones without a due date.
Steps
Open a report with no due date, then Export as CSV
Observed
The spinner keeps going and no file arrives
Expected
A CSV file downloads

Orchestrator

Rules at every step

The orchestrator runs each case through the pipeline and checks it against rules written together with the company. Rules are evaluated in code, not by asking a language model, so the same situation always gets the same answer.

rules/protect-existing-tests
rule @protect_existing_teststrigger before_actioncheck    !edits_existing_testenforce    user_inspectionend

Example: an agent may not change an existing test without a person’s approval.

Trigger

When the rule is checked

  • before_actionBefore an agent takes an action
  • state_changeWhen the case moves to a new state
  • agent_finishWhen an agent says its work is done

Check

A condition on the case and the action, evaluated in code.

Enforce

What happens when the check fails. Pick one to see it in the rule.

Every run also has limits on retries, time and model usage, and an interrupted run resumes from its last completed step.

How the system fits together

Mendrey sits between the people who report bugs, the developers who fix them and the tools they already use. Select a part to see what it does and what it connects to.

People and existing tools

Mendrey

Interfaces

Coordination

Agents, in 4 stages

Agents, in 4 stages

Services and storage

Existing tools

Coordination

Orchestrator

Runs the process without fixing anything itself. It tracks which step each bug is in, checks every step against the company’s rules, enforces limits, and brings in a person when a decision is needed.

Inside

  • Workflow tracking
  • Rule engine
  • Human check-ins

Connected to

Developed with Beko

Beko, Türkiye’s largest home appliance company, is Mendrey’s industry partner. Working with a partner of this size keeps the project grounded in how a large engineering organization handles bugs.

Team

CS491/492 Senior Design Project, Department of Computer Engineering, Bilkent University, 2026-2027

  • Atakan Akar
  • Kıvanç Kuzey Dikici
  • Arda Ege Erdoğan
  • Serdar Kara
  • Erdem Uğurlu

SupervisorAssoc. Prof. Eray Tüzün

Reports

Course reports are published here as they are submitted.

  • Project SpecificationNot published yet
  • Analysis and Requirements ReportNot published yet
  • Detailed Design ReportNot published yet
  • Final ReportNot published yet

Source code

  • MendreyThe multi-agent systemLink coming soon
  • Project websiteThe source for this siteLink coming soon