New:Socket for Asana Is Now Available.Learn more
Get Started

@debugai/mcp

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@debugai/mcp - npm Package Compare versions

Comparing version
2.2.0
to
2.3.0
+9
-0
dist/backend.d.ts

@@ -47,2 +47,11 @@ import type { AuthProvider } from './auth.js';

memory_fix_confirmed?: boolean;
/**
* Four-valued: 'none' | 'confirmed' | 'unproven' | 'anti_pattern'. Sent by
* the engine since 2026-08-21. Absent from an older engine, where
* memory_fix_confirmed is the whole story — and that boolean now goes false
* on demotion, so the degraded reading is safe rather than wrong.
*/
memory_fix_state?: string;
/** Times a live session watched the error stop after the fix. A click does not count. */
memory_verified_count?: number;
}

@@ -49,0 +58,0 @@ export interface OutcomeRequest {

+48
-3

@@ -129,5 +129,49 @@ import { z } from 'zod';

: 'before in this project';
sections.push(result.memory_fix_confirmed
? `\n## Seen before\nThis error has been seen ${seen}, and a fix was confirmed working. The confirmed fix led the analysis above.`
: `\n## Seen before\nThis error has been seen ${seen}. No fix has been confirmed for it yet.`);
// Four states, not two. Until 2026-08-21 this said "a fix was
// confirmed working" on the strength of somebody clicking Apply,
// and a fix that had been tried and FAILED was indistinguishable
// from one nobody had ever tried — both fell into the else branch
// and read "no fix has been confirmed yet". An agent reading that
// will happily re-propose the fix that already did not work, which
// is the loop this whole change exists to break.
//
// memory_fix_state is what the engine sends now. When it is absent
// (older engine) the boolean still decides, exactly as before.
const state = typeof result.memory_fix_state === 'string'
? result.memory_fix_state
: (result.memory_fix_confirmed ? 'confirmed' : 'none');
const verified = typeof result.memory_verified_count === 'number'
? result.memory_verified_count
: 0;
let memoryBody;
if (state === 'confirmed' && verified > 0) {
memoryBody =
`This error has been seen ${seen}. A fix for it was VERIFIED BY ` +
`OBSERVATION ${verified}x: a live session watched the error stop ` +
`after that fix was applied. It led the analysis above.`;
}
else if (state === 'confirmed') {
memoryBody =
`This error has been seen ${seen}. A fix for it was applied and ` +
`accepted by a developer, though nothing has observed it working. ` +
`It led the analysis above. Treat it as a strong lead, not proof.`;
}
else if (state === 'unproven') {
memoryBody =
`This error has been seen ${seen}. A fix was applied for it and ` +
`THE ERROR HAS RECURRED ONCE SINCE, so that fix is unproven. The ` +
`analysis above was told not to lead with it.`;
}
else if (state === 'anti_pattern') {
memoryBody =
`This error has been seen ${seen}. A fix was applied for it and ` +
`THE ERROR KEPT HAPPENING. That fix did not work and the analysis ` +
`above was told not to propose it again. If you are about to ` +
`suggest something equivalent, the cause is somewhere it does not ` +
`touch.`;
}
else {
memoryBody = `This error has been seen ${seen}. No fix has been confirmed for it yet.`;
}
sections.push(`\n## Seen before\n${memoryBody}`);
}

@@ -180,2 +224,3 @@ const badges = [];

memory_fix_confirmed: result.memory_fix_confirmed ?? false,
memory_fix_state: result.memory_fix_state ?? null,
// Which files this server read off disk, if any. Empty when the

@@ -182,0 +227,0 @@ // agent supplied its own snippet or nothing resolved.

+1
-1
{
"name": "@debugai/mcp",
"version": "2.2.0",
"version": "2.3.0",
"mcpName": "io.github.1shizaan/debugai-mcp",

@@ -5,0 +5,0 @@ "description": "DebugAI MCP server. One command sets it up in Claude Desktop, Claude Code, Cursor, Zed, Windsurf, Cline or any MCP client: browser sign-in, no key pasting, no config editing.",