fix(bridge): stall-based approval detection + known issues from deep debugging
- IDLE→stall detection: RUNNING+delta=0 for 6 polls (30s) - lastModifiedTime-based thinking filter (partial) - ResolveOutstandingSteps confirmed CANCELS steps (removed) - HandleCascadeUserInteraction always socket hang up (removed) - VS Code accept commands: silent success, no effect - Hybrid approval: focus+all commands sequential, no break - logToFile: console.log backup added - Known issues: 4 critical findings documented - better-antigravity reference added for future research
This commit is contained in:
72
better-antigravity-main/src/extension.ts
Normal file
72
better-antigravity-main/src/extension.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* Better Antigravity — Extension entry point.
|
||||
*
|
||||
* Thin orchestrator: wires up modules, no business logic here.
|
||||
*
|
||||
* @module extension
|
||||
*/
|
||||
|
||||
import * as vscode from 'vscode';
|
||||
import { AntigravitySDK } from 'antigravity-sdk';
|
||||
import { autoApply } from './auto-run';
|
||||
import { status, revertAutoRun } from './commands';
|
||||
|
||||
let sdk: AntigravitySDK | null = null;
|
||||
let output: vscode.OutputChannel;
|
||||
|
||||
function log(msg: string): void {
|
||||
const ts = new Date().toISOString().substring(11, 19);
|
||||
output?.appendLine(`[${ts}] ${msg}`);
|
||||
}
|
||||
|
||||
export async function activate(context: vscode.ExtensionContext) {
|
||||
output = vscode.window.createOutputChannel('Better Antigravity');
|
||||
context.subscriptions.push(output);
|
||||
log('Activating...');
|
||||
|
||||
// ── Commands ──────────────────────────────────────────────────────
|
||||
context.subscriptions.push(
|
||||
vscode.commands.registerCommand('better-antigravity.status', () => status(sdk, output)),
|
||||
vscode.commands.registerCommand('better-antigravity.revertAutoRun', revertAutoRun),
|
||||
);
|
||||
|
||||
// ── Auto-Run Fix (async, non-blocking, no prompt) ─────────────────
|
||||
autoApply().then(fixResults => {
|
||||
for (const r of fixResults) {
|
||||
log(`[auto-run] ${r.label}: ${r.status}${r.bytesAdded ? ` (+${r.bytesAdded}b)` : ''}${r.error ? ` -- ${r.error}` : ''}`);
|
||||
}
|
||||
});
|
||||
|
||||
// ── SDK Init ─────────────────────────────────────────────────────
|
||||
try {
|
||||
sdk = new AntigravitySDK(context);
|
||||
await sdk.initialize();
|
||||
log(`SDK v${sdk.version} initialized`);
|
||||
|
||||
// Title proxy for chat rename
|
||||
sdk.integration.enableTitleProxy();
|
||||
|
||||
// Seamless install (handles first-time prompt + auto-reload on update)
|
||||
await sdk.integration.installSeamless(
|
||||
(cmd) => vscode.commands.executeCommand(cmd),
|
||||
(msg, ...items) => vscode.window.showInformationMessage(msg, ...items),
|
||||
);
|
||||
|
||||
// Heartbeat (keeps renderer script alive)
|
||||
const hbTimer = setInterval(() => sdk?.integration.signalActive(), 30_000);
|
||||
context.subscriptions.push({ dispose: () => clearInterval(hbTimer) });
|
||||
|
||||
// Auto-repair (re-patch after AG updates)
|
||||
sdk.integration.enableAutoRepair();
|
||||
|
||||
log('Active');
|
||||
} catch (err: any) {
|
||||
log(`SDK init failed: ${err.message}`);
|
||||
log('Running in degraded mode (auto-run fix only)');
|
||||
}
|
||||
}
|
||||
|
||||
export function deactivate() {
|
||||
sdk?.dispose();
|
||||
sdk = null;
|
||||
}
|
||||
Reference in New Issue
Block a user