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:
2026-03-08 14:38:41 +09:00
parent 2574ce6f08
commit c97414cd37
23 changed files with 3516 additions and 280 deletions

View File

@@ -0,0 +1,57 @@
import * as esbuild from 'esbuild';
import * as fs from 'fs';
import * as path from 'path';
const isWatch = process.argv.includes('--watch');
/** @type {esbuild.BuildOptions} */
const config = {
entryPoints: ['src/extension.ts'],
bundle: true,
outfile: 'dist/extension.js',
external: ['vscode'],
format: 'cjs',
platform: 'node',
target: 'es2020',
sourcemap: true,
minify: false,
// Resolve antigravity-sdk from monorepo sibling
alias: {
'antigravity-sdk': path.resolve('..', 'antigravity-sdk', 'dist', 'index.js'),
},
};
// Ensure dist/ exists
if (!fs.existsSync('dist')) fs.mkdirSync('dist');
// Copy sql-wasm.wasm AND sql-wasm.js to dist/ (required by antigravity-sdk's StateBridge)
const sqlFiles = ['sql-wasm.wasm', 'sql-wasm.js'];
for (const sqlFile of sqlFiles) {
const searchPaths = [
path.join('node_modules', 'sql.js', 'dist', sqlFile),
path.join('..', 'antigravity-sdk', 'node_modules', 'sql.js', 'dist', sqlFile),
];
let copied = false;
for (const src of searchPaths) {
if (fs.existsSync(src)) {
fs.copyFileSync(src, path.join('dist', sqlFile));
console.log(`Copied ${sqlFile} from ${src}`);
copied = true;
break;
}
}
if (!copied) {
console.error(`ERROR: ${sqlFile} not found. Run "npm install" first.`);
process.exit(1);
}
}
if (isWatch) {
const ctx = await esbuild.context(config);
await ctx.watch();
console.log('Watching...');
} else {
await esbuild.build(config);
console.log('Build complete');
}