diff --git a/README.md b/README.md index 4c2ba29..144ec52 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,9 @@ xterm.js · SQLite (tauri-plugin-sql) · localhost hook-ingest server. ## Requirements -- macOS (Apple Silicon) +- macOS (Apple Silicon). Primary supported target. +- Windows: experimental. CI produces an unsigned NSIS installer for manual + testing (SmartScreen warns on first run), not yet officially supported. - [Rust](https://rustup.rs) + Node 18+ - At least one supported agent CLI installed — [Claude Code](https://claude.com/claude-code), [OpenCode](https://opencode.ai), [Codex](https://github.com/openai/codex), diff --git a/src/lib/detectors.ts b/src/lib/detectors.ts index b176bd8..45e999a 100644 --- a/src/lib/detectors.ts +++ b/src/lib/detectors.ts @@ -12,6 +12,11 @@ export const DETECTORS: Detector[] = [ { label: "Merge conflict", re: /merge conflict|CONFLICT \(|Automatic merge failed/i }, { label: "Rate limited", re: /rate.?limit(?:ed)?|429 Too Many Requests|overloaded_error/i }, { label: "Missing file/module", re: /command not found|Cannot find module|ModuleNotFoundError|No such file or directory/i }, + { label: "Port in use", re: /\bEADDRINUSE\b|address already in use|port (?:\d+ )?(?:is )?already in use/i }, + { label: "Disk full", re: /\bENOSPC\b|No space left on device|disk (?:is )?full/i }, + { label: "Docker daemon down", re: /Cannot connect to the Docker daemon|Is the docker daemon running|docker daemon is not running/i }, + { label: "TLS/cert error", re: /\bCERT_HAS_EXPIRED\b|certificate has expired|SSL certificate problem|self.?signed certificate|unable to verify the first certificate|x509: certificate/i }, + { label: "Lock held", re: /\bELOCKED\b|Unable to acquire lock|another process has locked|Waiting for (?:the )?(?:cache )?lock|could not get lock/i }, ]; export function detectBlockers(text: string): Detector[] { diff --git a/tests/golden/13-non-english-answered.json b/tests/golden/13-non-english-answered.json new file mode 100644 index 0000000..07f19e7 --- /dev/null +++ b/tests/golden/13-non-english-answered.json @@ -0,0 +1,10 @@ +{ + "assistant": "Veo dos formas de manejar la paginación: cursores o desplazamiento por offset. ¿Cuál prefieres para el endpoint de usuarios?", + "user": "Usa cursores.", + "expect": { + "count": 1, + "answered": [ + true + ] + } +} diff --git a/tests/golden/14-long-multipart-partial.json b/tests/golden/14-long-multipart-partial.json new file mode 100644 index 0000000..7f78b01 --- /dev/null +++ b/tests/golden/14-long-multipart-partial.json @@ -0,0 +1,13 @@ +{ + "assistant": "Before I wire up the deploy, four things:\n1. Deploy to staging first or straight to prod?\n2. Run migrations automatically or gate them behind a manual step?\n3. Keep the old v1 endpoints alive during rollout or cut them immediately?\n4. Should the health check block the release if it fails?", + "user": "Staging first. Gate the migrations behind a manual step. Cut v1 immediately.", + "expect": { + "count": 4, + "answered": [ + true, + true, + true, + false + ] + } +}