local multi-agent harness
This report presents the forensic synthetic code analysis of chaitanyagiri/munder-difflin, a JavaScript project with 5,371 GitHub stars. SynthScan v2.0 examined 226,739 lines of code across 859 source files, recording 750 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 7.0 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 750 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/mapgen/build_map.py | 26 | # ── source map ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 58 | # ── blank new layers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 75 | # ── floor (green checker, matches original) ─────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 81 | # ── outer shell ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 94 | # ── interior wall helpers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 109 | # ── place a furniture stamp; returns the seat tile (gx,gy) if any ───────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 121 | # ══ ROOMS ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 143 | # ══ OPEN FLOOR FURNITURE ═════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 167 | # ══ COLLISION ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 187 | # ── spawn points (claim order set in OfficeFloor) ───────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 214 | # ── assemble & write ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/index.html | 3198 | // ── Anonymous site analytics (PostHog) ───────────────────────────────────── | COMMENT |
| MEDIUM | docs/wall.html | 371 | // ── the wall ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/wall.html | 462 | // ── Anonymous analytics (PostHog) — same posture as the landing page ────── | COMMENT |
| MEDIUM | docs/hires/scripts/build-data.py | 21 | # ── optional: sync models.json from upstream's hardcoded lists ────────────── | COMMENT |
| MEDIUM | docs/hires/scripts/build-data.py | 39 | # ── manifests → variants + manifests-data.js ──────────────────────────────── | COMMENT |
| MEDIUM | docs/hires/scripts/build-data.py | 67 | # ── models.json → models.js ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 7 | # ── What this deliberately does NOT do ───────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 13 | # ── Why pull_request_target ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 50 | // ── The maintainer escape hatch ────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 61 | // ── What counts as evidence ────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 80 | // ── Before and after, separately ───────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/GitPanes.tsx | 57 | // ─── HISTORY ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/GitPanes.tsx | 156 | // ─── COMPARE ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 155 | // ─── Buffer / diff loaders ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 189 | // ─── Tab actions ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 286 | // ─── Git status (changed files) ─────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 331 | // ─── Left splitter drag ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/freeflow/recorder.ts | 50 | // ─── Recording internals ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 51 | // ── soft writes (execute immediately) ───────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 149 | // ── wait for a dispatched task to finish (rt-12 await-in-session) ────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 182 | // ── destructive / expensive (echo-back confirm required) ────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 252 | // ── v0.3.4 full-control verbs ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 376 | // ── confirm / cancel (drive the two-phase commit) ───────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 27 | // ─── spoken-prose formatting helpers ──────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 106 | // ─── the read-tools ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 114 | // ── get_fleet_status ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 148 | // ── get_tasks ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 201 | // ── get_cost ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 235 | // ── get_triggers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 262 | // ── get_config ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 303 | // ── get_memory ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 383 | // ── get_activity ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 417 | // ── get_messages ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 463 | // ── get_agent_detail ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 509 | // ── list_agents ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 555 | // ── get_board ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 570 | // ── get_floor_state (v0.3.4) ────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 601 | // ── get_app_info (v0.3.4) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/integrations/registryClient.ts | 76 | // ───────────────────────── PROVISIONAL mock (dev fallback only) ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/integrations/registryClient.ts | 119 | // ───────────────────────── exported client (real → mock fallback) ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/integrations/registryClient.ts | 151 | // ───────────────────────── small UI helper ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 344 | // ─── Floor tab — roster, model, dispatch, dirs, assistant ──────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1013 | // ─── Archived agents — retained + flagged, kept off the floor ──────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1060 | // ─── Memory tab ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1156 | // ─── Fleet telemetry bits (folded into the Floor AGENTS cards) ─────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1236 | // ─── Activity tab — hive event log + board ─────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1287 | // ─── small shared bits ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/IntegrationsRegistry.tsx | 208 | // ───────────────────────── GALLERY ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/IntegrationsRegistry.tsx | 244 | // ───────────────────────── CONFIGURE ───────────────────────── | COMMENT |
| 184 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | HIVE.md | 1 | # The Hive — autonomous multi-agent layer | COMMENT |
| MEDIUM | docs/sitemap.xml | 594 | <loc>https://munderdiffl.in/blog/whats-new-in-agentic-ai-june-2026/</loc> | CODE |
| MEDIUM | docs/sitemap.xml | 840 | <url><loc>https://munderdiffl.in/blog/tags/guardrails/</loc><changefreq>weekly</changefreq><priority>0.3</priority></u | CODE |
| MEDIUM | docs/sitemap.xml | 853 | <url><loc>https://munderdiffl.in/blog/tags/agentic-ai/</loc><changefreq>weekly</changefreq><priority>0.3</priority></u | CODE |
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM | docs/blog/feed.xml | 136 | <summary>An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents with s | CODE |
| MEDIUM | docs/blog/index.html | 397 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | docs/blog/human-in-the-loop-ai-agents/index.html | 219 | <h2 id="guardrails-that-keep-the-queue-honest" tabindex="-1">Guardrails that keep the queue honest <a class="anchor" hre | CODE |
| MEDIUM | docs/blog/human-in-the-loop-ai-agents/index.html | 304 | <li class="lvl-2"><a href="#the-trap-approval-fatigue">The trap: approval fatigue</a></li><li class="lvl-2"><a h | CODE |
| MEDIUM | …/blog/human-in-the-loop-approving-ai-agents/index.html | 180 | <a href="/#what">multi-agent harness</a> does it.</p> | CODE |
| MEDIUM | …s/blog/architecture-two-planes-one-renderer/index.html | 264 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> is.</p> | CODE |
| MEDIUM | …s/blog/architecture-two-planes-one-renderer/index.html | 285 | <p class="a">The terminal plane carries raw pseudo-terminal bytes from each agent's shell (node-pty) to an | CODE |
| MEDIUM | …og/what-is-an-agent-development-environment/index.html | 177 | <p>Then the coding-tools world borrowed the acronym for something adjacent but distinct. <a href="https://github.com/sta | CODE |
| MEDIUM | …og/what-is-an-agent-development-environment/index.html | 203 | <a href="https://www.augmentcode.com/guides/what-is-an-agentic-development-environment">Augment Code — What is an agenti | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 223 | <p class="a">It's adjacent but a different category: a multi-agent harness, or an agent office. Like an AD | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 275 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM⚡ | docs/blog/context-engineering-for-ai-agents/index.html | 209 | <h2 id="multi-agent-makes-it-sharper" tabindex="-1">Multi-agent makes it sharper <a class="anchor" href="#multi-agent-ma | CODE |
| MEDIUM⚡ | docs/blog/context-engineering-for-ai-agents/index.html | 215 | <p>The whole architecture of <a href="https://munderdiffl.in/#what">a multi-agent harness</a> is, viewed one way, an | CODE |
| MEDIUM | docs/blog/context-engineering-for-ai-agents/index.html | 299 | <p class="a">Context engineering is the discipline of deciding exactly what tokens occupy a model's finite | CODE |
| MEDIUM | docs/blog/context-engineering-for-ai-agents/index.html | 333 | <li class="lvl-2"><a href="#the-window-is-a-budget-not-a-bucket">The window is a budget, not a bucket</a></li><l | CODE |
| MEDIUM | …ub-copilot-cli-vs-claude-code-for-hive-work/index.html | 334 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | …s/blog/how-ai-answer-engines-choose-sources/index.html | 314 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | docs/blog/run-an-office-of-ai-agents/index.html | 186 | <h3 id="guardrails" tabindex="-1">Guardrails <a class="anchor" href="#guardrails" aria-hidden="true">#</a></h3> | CODE |
| MEDIUM | docs/blog/run-an-office-of-ai-agents/index.html | 231 | <li class="lvl-2"><a href="#the-picture">The picture</a></li><li class="lvl-2"><a href="#what-makes-it-actually- | CODE |
| MEDIUM | docs/blog/open-source-ai-tools-on-purpose/index.html | 273 | <p class="a">It can be, when 'open' means a crippled core with the useful parts behind a cloud subscri | CODE |
| MEDIUM | docs/blog/best-ai-coding-agents/index.html | 273 | <h2 id="where-a-local-multi-agent-hive-fits" tabindex="-1">Where a local multi-agent hive fits <a class="anchor" href="# | CODE |
| MEDIUM | docs/blog/best-ai-coding-agents/index.html | 313 | <p class="a">There's no single best — it depends on the category you need. Cursor leads in-editor ergonomi | CODE |
| MEDIUM | docs/blog/best-ai-coding-agents/index.html | 322 | <p class="q">What's the difference between a single coding agent and a multi-agent hive?</p> | CODE |
| MEDIUM | docs/blog/best-ai-coding-agents/index.html | 347 | <li class="lvl-2"><a href="#the-five-categories-read-this-first">The five categories (read this first)</a></li>< | CODE |
| MEDIUM | docs/blog/best-ai-coding-agents/index.html | 369 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | docs/blog/prompt-caching-for-ai-agents/index.html | 248 | <h2 id="the-multi-agent-angle" tabindex="-1">The multi-agent angle <a class="anchor" href="#the-multi-agent-angle" aria- | CODE |
| MEDIUM | docs/blog/prompt-caching-for-ai-agents/index.html | 328 | <li class="lvl-2"><a href="#an-agent-re-sends-almost-the-same-prompt-every-turn">An agent re-sends almost the sa | CODE |
| MEDIUM | docs/blog/what-is-aeo-for-dev-tools/index.html | 350 | AEO done in public. <a href="/#install">Download Munder Difflin</a> to see it run, or read <a href="/#what">what a multi | CODE |
| MEDIUM | …s/blog/manage-multiple-claude-code-sessions/index.html | 253 | <p>When the checklist starts feeling like a second job, that’s what a <a href="https://munderdiffl.in/#what">multi-agent | CODE |
| MEDIUM | docs/blog/claude-squad-alternative/index.html | 195 | <p>The alternative isn’t “a fancier terminal.” It’s a different <em>shape</em>: a <a href="/#what">multi-agent harness</ | CODE |
| MEDIUM | docs/blog/claude-squad-alternative/index.html | 262 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM⚡ | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 319 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> — the part that makes “a hive of agents” something | CODE |
| MEDIUM | docs/blog/compressing-agent-memory/index.html | 266 | <p class="q">Why compress an agent's memory instead of using a bigger context window?</p> | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 179 | <h2 id="what-orchestration-means-for-coding-agents" tabindex="-1">What “orchestration” means for coding agents <a class= | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 239 | <h2 id="designing-good-orchestration" tabindex="-1">Designing good orchestration <a class="anchor" href="#designing-good | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 273 | <p>Munder Difflin ships this <a href="https://munderdiffl.in/#how">orchestration model</a> out of the box: a GOD agent y | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 275 | <a href="https://munderdiffl.in/#install">Download Munder Difflin</a> to orchestrate your own team of Claude Code | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 314 | <li class="lvl-2"><a href="#what-orchestration-means-for-coding-agents">What “orchestration” means for coding ag | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 178 | <p>The broader discourse picked the term up fast, and a rough consensus formed: harness engineering is the <strong>third | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 239 | <p class="a">Yes — that's the category. Munder Difflin is a free, MIT-licensed, local-first multi-agent ha | CODE |
| MEDIUM⚡ | …/overnight-ai-coding-realistic-expectations/index.html | 213 | <h2 id="the-guardrails-that-make-overnight-work-safe" tabindex="-1">The guardrails that make overnight work safe <a clas | CODE |
| MEDIUM⚡ | …/overnight-ai-coding-realistic-expectations/index.html | 216 | <a href="/#what">multi-agent harness</a> builds in:</p> | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 270 | <p>Munder Difflin is a local, open-source <a href="/#why">multi-agent harness</a> built for exactly this: agents that | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 286 | <p class="a">It's safe when you set guardrails: branch-only changes (never straight to main), human approv | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 315 | <li class="lvl-2"><a href="#what-overnight-agents-actually-do-well">What overnight agents actually do well</a></ | CODE |
| MEDIUM | docs/blog/local-first-ai-agent-orchestration/index.html | 182 | <h2 id="where-the-orchestration-loop-actually-runs" tabindex="-1">Where the orchestration loop actually runs <a class="a | CODE |
| MEDIUM | docs/blog/local-first-ai-agent-orchestration/index.html | 311 | <li class="lvl-2"><a href="#where-the-orchestration-loop-actually-runs">Where the orchestration loop actually ru | CODE |
| MEDIUM | docs/blog/mcp-security-tool-poisoning/index.html | 246 | <p>A <a href="/#what">multi-agent harness</a> gives every agent MCP tools and skills — which means it inherits this | CODE |
| MEDIUM | docs/blog/recovering-from-agent-failures/index.html | 180 | patterns that get you there, grounded in how a real <a href="/#what">multi-agent harness</a> handles each.</p> | CODE |
| MEDIUM | docs/blog/recovering-from-agent-failures/index.html | 265 | <a href="/#how">orchestration layer</a>, and every agent inherits them for free.</p> | CODE |
| MEDIUM | docs/blog/crystal-claude-code-alternative/index.html | 202 | to a <a href="/#what">multi-agent harness</a>: agents with roles and mailboxes, a <a href="/#how">GOD orchestrator</a> t | CODE |
| MEDIUM | docs/blog/crystal-claude-code-alternative/index.html | 260 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | docs/blog/debugging-multi-agent-systems/index.html | 276 | <p class="q">What's the single most useful artifact for multi-agent debugging?</p> | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-3-5/index.html | 287 | <p class="a">They're complementary answers to the same problem. qm is a multiplayer agent harness for team | CODE |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM | docs/blog/feed.xml | 56 | <summary>Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launch that | CODE |
| MEDIUM | docs/blog/feed.xml | 136 | <summary>An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents with s | CODE |
| MEDIUM | docs/blog/feed.xml | 240 | <summary>tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude Code sessions at once | CODE |
| MEDIUM | docs/blog/index.html | 237 | <p class="dek">Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launc | CODE |
| MEDIUM | docs/blog/index.html | 397 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | docs/blog/index.html | 605 | <p class="dek">tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude Code sessions a | CODE |
| MEDIUM | …/blog/human-in-the-loop-approving-ai-agents/index.html | 180 | <a href="/#what">multi-agent harness</a> does it.</p> | CODE |
| MEDIUM | …s/blog/architecture-two-planes-one-renderer/index.html | 264 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> is.</p> | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 223 | <p class="a">It's adjacent but a different category: a multi-agent harness, or an agent office. Like an AD | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 228 | <p class="a">Because whatever runs your agents, you still need to read what they wrote. v0.3.3 added a built-i | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 233 | <p class="a">No — they're the layer underneath. Claude Code and OpenAI Codex CLI are single-agent terminal | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 7 | <meta name="description" content="tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 18 | <meta property="og:description" content="tmux panes, git worktrees, shell scripts, and cron will absolutely run several | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 34 | <meta name="twitter:description" content="tmux panes, git worktrees, shell scripts, and cron will absolutely run several | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 157 | <p class="dek">tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude Code sessions a | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 186 | <h2 id="what-a-harness-automates" tabindex="-1">What a harness automates <a class="anchor" href="#what-a-harness-automat | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 219 | <p class="a">No. In Munder Difflin every agent is still a real CLI process — claude, codex, copilot, and other | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 224 | <p class="a">Often, yes. If you run one or two parallel sessions, review everything yourself, and don't ne | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 253 | <li class="lvl-2"><a href="#what-breaks-at-scale">What breaks at scale</a></li><li class="lvl-2"><a href="#what- | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 275 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM⚡ | docs/blog/context-engineering-for-ai-agents/index.html | 215 | <p>The whole architecture of <a href="https://munderdiffl.in/#what">a multi-agent harness</a> is, viewed one way, an | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-2-0/index.html | 394 | <p class="dek">Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launc | CODE |
| MEDIUM | …ub-copilot-cli-vs-claude-code-for-hive-work/index.html | 176 | <h2 id="the-thing-a-harness-actually-needs-from-an-engine" tabindex="-1">The thing a harness actually needs from an engi | CODE |
| MEDIUM | …ub-copilot-cli-vs-claude-code-for-hive-work/index.html | 283 | <p class="a">Yes. Copilot CLI supports hooks defined in JSON files (in .github/hooks/ per repo or ~/.copilot/h | CODE |
| MEDIUM | …ub-copilot-cli-vs-claude-code-for-hive-work/index.html | 312 | <li class="lvl-2"><a href="#the-thing-a-harness-actually-needs-from-an-engine">The thing a harness actually need | CODE |
| MEDIUM | …ub-copilot-cli-vs-claude-code-for-hive-work/index.html | 334 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-2-8/index.html | 356 | <p class="dek">Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launc | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-4-4/index.html | 320 | <p class="dek">Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launc | CODE |
| MEDIUM | …s/blog/how-ai-answer-engines-choose-sources/index.html | 314 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | …/blog/how-to-add-a-github-copilot-cli-agent/index.html | 173 | <div class="callout tldr"><span class="ic">TL;DR</span><p>As of <strong>v0.3.3</strong>, GitHub Copilot CLI is a f | CODE |
| MEDIUM | …/blog/how-to-add-a-github-copilot-cli-agent/index.html | 178 | <h2 id="step-1-install-copilot-cli-or-dont-the-harness-will-offer" tabindex="-1">Step 1: install Copilot CLI (or don’t — | CODE |
| MEDIUM | …/blog/how-to-add-a-github-copilot-cli-agent/index.html | 272 | <li class="lvl-2"><a href="#step-0-have-the-floor-running">Step 0: have the floor running</a></li><li class="lvl | CODE |
| MEDIUM | docs/blog/we-opened-a-discord/index.html | 309 | <p class="dek">Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launc | CODE |
| MEDIUM | docs/blog/best-ai-coding-agents/index.html | 369 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM | …s/blog/manage-multiple-claude-code-sessions/index.html | 253 | <p>When the checklist starts feeling like a second job, that’s what a <a href="https://munderdiffl.in/#what">multi-agent | CODE |
| MEDIUM | docs/blog/claude-squad-alternative/index.html | 195 | <p>The alternative isn’t “a fancier terminal.” It’s a different <em>shape</em>: a <a href="/#what">multi-agent harness</ | CODE |
| MEDIUM | docs/blog/claude-squad-alternative/index.html | 262 | <p class="dek">An honest comparison of YC's qm and Munder Difflin: both orchestrate fleets of CLI coding agents | CODE |
| MEDIUM⚡ | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 314 | <h2 id="why-a-harness-needs-all-of-this" tabindex="-1">Why a harness needs all of this <a class="anchor" href="#why-a-ha | CODE |
| MEDIUM⚡ | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 319 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> — the part that makes “a hive of agents” something | CODE |
| MEDIUM | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 369 | <li class="lvl-2"><a href="#the-two-halves">The two halves</a></li><li class="lvl-2"><a href="#step-1-create-the | CODE |
| MEDIUM | docs/blog/how-the-god-orchestrator-works/index.html | 274 | <h2 id="what-makes-it-robust" tabindex="-1">What makes it robust <a class="anchor" href="#what-makes-it-robust" aria-hid | CODE |
| MEDIUM | docs/blog/how-the-god-orchestrator-works/index.html | 315 | <p class="a">No. It's an ordinary Claude Code process with a flag marking it as the orchestrator and a sys | CODE |
| MEDIUM | docs/blog/how-the-god-orchestrator-works/index.html | 344 | <li class="lvl-2"><a href="#intelligence-vs-mechanism">Intelligence vs. mechanism</a></li><li class="lvl-2"><a h | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 290 | <p class="a">You can, but you don't have to. In Munder Difflin the orchestrator is itself a Claude agent — | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 181 | <h2 id="what-a-harness-actually-contains" tabindex="-1">What a harness actually contains <a class="anchor" href="#what-a | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 224 | <p class="a">Because models are increasingly interchangeable commodities and their failure modes are structura | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 239 | <p class="a">Yes — that's the category. Munder Difflin is a free, MIT-licensed, local-first multi-agent ha | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 258 | <li class="lvl-2"><a href="#the-term-and-where-it-came-from">The term, and where it came from</a></li><li class= | CODE |
| MEDIUM⚡ | …/overnight-ai-coding-realistic-expectations/index.html | 216 | <a href="/#what">multi-agent harness</a> builds in:</p> | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 270 | <p>Munder Difflin is a local, open-source <a href="/#why">multi-agent harness</a> built for exactly this: agents that | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-3-3/index.html | 262 | <p class="a">No. Munder Difflin drives the `copilot` CLI you already log into with your GitHub account — same | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-3-3/index.html | 340 | <p class="dek">Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launc | CODE |
| MEDIUM | docs/blog/ai-agent-glossary/index.html | 190 | <h3 id="harness" tabindex="-1">Harness <a class="anchor" href="#harness" aria-hidden="true">#</a></h3> | CODE |
| MEDIUM⚡ | docs/blog/ai-agent-glossary/index.html | 243 | <p class="q">What's the difference between an agent harness and an agent framework?</p> | CODE |
| MEDIUM⚡ | docs/blog/ai-agent-glossary/index.html | 248 | <p class="q">What's the difference between an orchestrator and a harness?</p> | CODE |
| MEDIUM⚡ | docs/blog/ai-agent-glossary/index.html | 254 | <p class="a">A hive is a coordinated group of agents that share memory and message each other, behaving as one | CODE |
| MEDIUM | docs/blog/ai-agent-glossary/index.html | 273 | <li class="lvl-2"><a href="#core-building-blocks">Core building blocks</a></li><li class="lvl-3"><a href="#agent | CODE |
| MEDIUM | docs/blog/mcp-security-tool-poisoning/index.html | 246 | <p>A <a href="/#what">multi-agent harness</a> gives every agent MCP tools and skills — which means it inherits this | CODE |
| 97 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | electron-builder.yml | 1 | appId: in.munderdiffl.app | COMMENT |
| LOW | electron-builder.yml | 21 | # `* { box-sizing: border-box; }` inside RELEASE.md's <style> block, so the | COMMENT |
| LOW | electron-builder.yml | 101 | # Flow dictation (Groq transcription) and Realtime Michael (live voice chat | COMMENT |
| LOW | blog/src/_data/theme.js | 1 | // Blog theme switch. The blog deliberately has its own identity, separate from | COMMENT |
| LOW | .github/workflows/pr-evidence.yml | 1 | name: PR evidence | COMMENT |
| LOW | .github/workflows/wall-sync.yml | 1 | # Founders' Wall sync — rebuilds docs/wall-data.json from Razorpay truth. | COMMENT |
| LOW | src/renderer/src/App.tsx | 101 | window.cth.getConfig().then(c => { | COMMENT |
| LOW | src/renderer/src/integrations/registryClient.ts | 1 | // Integrations registry client — the renderer's single doorway to the | COMMENT |
| LOW | src/renderer/src/components/ReleaseDrop.tsx | 61 | // subresources, so a drop with slow remote images would hold the loader for the | COMMENT |
| LOW | src/renderer/src/components/AgentCard.tsx | 61 | }: AgentCardProps) { | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 141 | // Guarantee legible text no matter what colors a running program sets. | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 201 | // removes the session from the map synchronously (main/pty.ts kill), and the | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 281 | // | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 521 | export function clearTerminalDraft(ptyId: string): string { | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 741 | COMMENT | |
| LOW | src/renderer/src/components/terminalPool.ts | 901 | COMMENT | |
| LOW | src/renderer/src/components/PtyTerminalView.tsx | 161 | // Tracks the first fit that actually ran against a real (non-zero) host, so | COMMENT |
| LOW | src/renderer/src/components/PtyTerminalView.tsx | 181 | window.cth.resizePty(ptyId, entry.term.cols, entry.term.rows); | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 281 | // already nudged this agent about. A SET, not a high-water mark. | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 301 | // Per-agent context size at the last auto-/compact queued. See the latch note | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 321 | // must leave the agent alone — set while its boot sequence is typing so nothing | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 441 | useStore.getState().addAgent(god); | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 641 | // 'working' — and BOTH delivery paths (#3 nudge, #4 queue-drain) are idle-gated, | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 681 | // QUEUES the nudge rather than typing it. This loop used to write straight | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 701 | // | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1001 | useStore.getState().enqueueMessage(msg.targetId, msg.text.trim()); | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1081 | // ~250k windows, 20% for ~1M windows)". No such check was ever implemented: | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1121 | // byte-identical and the pressure gate passes on the same number the next | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1161 | // drops the duplicate. | COMMENT |
| LOW | src/renderer/src/hooks/useRestoreTeam.ts | 81 | // couldn't spawn anything looked like a dead button. | COMMENT |
| LOW | src/renderer/src/hooks/useRestoreTeam.ts | 101 | try { | COMMENT |
| LOW | src/renderer/src/hooks/useRestoreTeam.ts | 201 | // ALWAYS surface a result so the button can never look inert. | COMMENT |
| LOW | src/renderer/src/scene/office/cafeteriaLines.ts | 1 | // Cafeteria small-talk — The Office edition. | COMMENT |
| LOW | src/renderer/src/scene/office/themeRegistry.ts | 1 | // Theme registry — the pluggable "office theme" contract. | COMMENT |
| LOW | src/renderer/src/scene/office/OfficeFloor.tsx | 181 | // The active office theme (store mirror of config.officeTheme). Changing it | COMMENT |
| LOW | src/renderer/src/store/store.ts | 361 | // ─── The roster mirror ────────────────────────────────────────────────────── | COMMENT |
| LOW | src/renderer/src/store/store.ts | 761 | }), | COMMENT |
| LOW | src/renderer/src/store/store.ts | 901 | // | COMMENT |
| LOW | src/shared/releaseDrop.ts | 81 | // A remote `@import` is RENDER-BLOCKING: the frame paints nothing until the | COMMENT |
| LOW | src/shared/releaseDrop.ts | 521 | export function buildDropSrcDoc(html: string): string { | COMMENT |
| LOW | src/shared/providerAutomation.ts | 61 | // argument for every command that takes one (/goal, /raw, /mcp, /keymap, | COMMENT |
| LOW | src/shared/providerAutomation.ts | 81 | // "/clear (/new) — Clear the terminal and reset active conversation | COMMENT |
| LOW | src/shared/providerAutomation.ts | 101 | // (capped at 2000 chars) → it genuinely takes a focus. | COMMENT |
| LOW | src/shared/providerAutomation.ts | 121 | // hint "/ or ctrl+p" means a leading `/` OPENS that palette rather than | COMMENT |
| LOW | src/shared/agentProvider.ts | 201 | // Auto mode: never prompt (-a never) but KEEP codex's OS sandbox, scoped to the | COMMENT |
| LOW | src/shared/agentProvider.ts | 221 | // Codex's INITIAL prompt, which it takes POSITIONALLY (`codex "<prompt>"`) — | COMMENT |
| LOW | src/shared/agentProvider.ts | 361 | // block when a base-URL is set). So no auto flag is spliced onto the command. | COMMENT |
| LOW | src/shared/agentProvider.ts | 381 | // NO recommended model — deliberately. This used to preselect | COMMENT |
| LOW | src/shared/agentProvider.ts | 401 | // Both are trusted, hardcoded constants and contain no double-quotes (the | COMMENT |
| LOW | src/shared/agentProvider.ts | 441 | bridge: { kind: 'proxy', api: 'openai', baseUrlEnv: 'CRUSH_PROXY_BASE_URL', inboxDelivery: 'terminal' }, | COMMENT |
| LOW | src/main/analytics.ts | 201 | // here for country-level numbers, but nothing in this codebase ever read | COMMENT |
| LOW | src/main/analytics.ts | 461 | if (lines[j + 1]?.includes(LOG_QUIT_FAILED)) return 'manual'; | COMMENT |
| LOW | src/main/pty.ts | 261 | progRaw = progTok.text; | COMMENT |
| LOW | src/main/pty.ts | 561 | const lower = resolved.toLowerCase(); | COMMENT |
| LOW | src/main/pty.ts | 581 | // shell PATH (nvm/asdf/brew included), and skipping `-i` avoids dumping the | COMMENT |
| LOW | src/main/pty.ts | 601 | // learned they had an inbox/outbox and could not message each other. | COMMENT |
| LOW | src/main/ptyEnv.ts | 61 | } | COMMENT |
| LOW | src/main/hive.ts | 721 | // Generic light/dark hint for TUIs that paint their own background. The app | COMMENT |
| LOW | src/main/hive.ts | 741 | // Stop→inbox-drain — without Claude installed at all. | COMMENT |
| LOW | src/main/hive.ts | 761 | // Dispatch on the structured bridge descriptor (the foundation's `bridgeOf` | COMMENT |
| 36 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 35 | ## Step 0: have the floor running | COMMENT |
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 39 | ## Step 1: install Copilot CLI (or don't — the harness will offer) | COMMENT |
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 53 | ## Step 2: Add Agent, pick Copilot | COMMENT |
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 65 | ## Step 3: choose a model | COMMENT |
| LOW | blog/src/posts/how-to-hire-from-the-agent-gallery.md | 35 | ## Step 1: Browse the gallery | COMMENT |
| LOW | blog/src/posts/how-to-hire-from-the-agent-gallery.md | 43 | ## Step 2: Import the hire | COMMENT |
| LOW | blog/src/posts/how-to-hire-from-the-agent-gallery.md | 54 | ## Step 3: Actually read the manifest | COMMENT |
| LOW | blog/src/posts/how-to-hire-from-the-agent-gallery.md | 64 | ## Step 4: Customize the four things that matter | COMMENT |
| LOW | blog/src/posts/how-to-hire-from-the-agent-gallery.md | 78 | ## Step 5: Spawn, and put it to work | COMMENT |
| LOW | blog/src/posts/give-claude-code-long-term-memory.md | 36 | ## Step 1: Write durable facts to markdown | COMMENT |
| LOW | blog/src/posts/give-claude-code-long-term-memory.md | 55 | ## Step 2: Add semantic recall on top | COMMENT |
| LOW | blog/src/posts/give-claude-code-long-term-memory.md | 77 | ## Step 3: Make reading a startup ritual | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 87 | ## Step 1: Which AI engine will you use? | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 139 | ## Step 2: Install your engine, and log in | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 274 | ## Step 3: Install Munder Difflin | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 293 | ## Step 4: Onboarding, six screens | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 356 | ## Step 5: Your first job | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 387 | ## Step 6: Add agents yourself | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 400 | ## Step 7: Work that starts without you | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 420 | ## Step 8: Context and auto-compaction, briefly | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 432 | ## Step 9: Settings worth knowing | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 449 | ## Step 10: Focus mode | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/renderer/src/terminal/arabicSetting.ts | 65 | export function isArabicTerminalFollowingLanguage(): boolean { | CODE |
| LOW | src/renderer/src/terminal/arabicSetting.ts | 77 | export function clearArabicTerminalOverride(): void { | CODE |
| LOW | src/renderer/src/components/terminalSelection.ts | 43 | export function sanitizeTerminalSelection(text: string): string { | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 509 | export function terminalAutomationBlockFor( | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 719 | export function notifyArabicTerminalChangeAll(): void { | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 785 | function repaintTerminalAfterRendererLoss(entry: TerminalEntry): void { | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 967 | function registerMarkdownLinkProvider(term: Terminal, ptyId: string): void { | CODE |
| LOW | src/renderer/src/components/terminalAutomation.ts | 21 | export function opensInteractiveTerminalUi(input: string): boolean { | CODE |
| LOW | src/renderer/src/components/terminalAutomation.ts | 34 | export function shouldFollowTerminalOutput(viewportY: number, baseY: number): boolean { | CODE |
| LOW | src/renderer/src/components/terminalRecovery.ts | 6 | export function createTerminalRecoveryState(): TerminalRecoveryState { | CODE |
| LOW | src/renderer/src/hooks/queueDelivery.ts | 3 | export async function deliverWithAcknowledgement( | CODE |
| LOW | src/renderer/src/scene/office/glRecovery.ts | 44 | export function installContextLossRecovery( | CODE |
| LOW | src/renderer/src/scene/office/glRecovery.ts | 127 | export function isContextUnavailableError(err: unknown): boolean { | CODE |
| LOW | src/renderer/src/store/config.ts | 272 | export function modelsForProviderAtVersion( | CODE |
| LOW | src/shared/integrations.ts | 106 | export function validateIntegrationRecord( | CODE |
| LOW | src/shared/providerAutomation.ts | 153 | export function contextCommandsForProvider(provider: AgentProvider): ProviderContextCommands { | CODE |
| LOW | src/shared/providerAutomation.ts | 164 | export function compactionCommandForProvider( | CODE |
| LOW | src/shared/providerAutomation.ts | 219 | export function remoteControlCommandForProvider( | CODE |
| LOW | src/shared/engineAvailability.ts | 38 | export function classifyEngineAvailability( | CODE |
| LOW | src/shared/engineAvailability.ts | 73 | export function engineAvailabilityMessage(a: EngineAvailability, label: string): string | null { | CODE |
| LOW | src/shared/agentProvider.ts | 665 | export function defaultCommandForProvider(provider: AgentProvider, fallback = ''): string { | CODE |
| LOW | src/shared/agentProvider.ts | 703 | export function nonInteractiveEnvForProvider(provider: AgentProvider): Record<string, string> { | CODE |
| LOW | src/main/shellEnv.ts | 39 | function captureFromLoginShellUncached(script: string): string | null { | CODE |
| LOW | src/main/index.ts | 157 | async function enableCodexRemoteForSpawn( | CODE |
| LOW | src/main/index.ts | 1321 | function buildAutonomousRequestProtocol(channel: string, threadTs: string, helperPath: string): string { | CODE |
| LOW | src/main/index.ts | 1761 | function notifyTriggerHistoryUpdated(): void { | CODE |
| LOW | src/main/index.ts | 4252 | function upsertLegacyWebhookTrigger(patch: { secret?: string; enabled?: boolean }): void { | CODE |
| LOW | src/main/index.ts | 4863 | function startEphemeralWorkerWatcher(): void { | CODE |
| LOW | src/main/index.ts | 4870 | function stopEphemeralWorkerWatcher(): void { | CODE |
| LOW | src/main/config.ts | 794 | export function ensureClaudePermissionsAccepted(cwd?: string): void { | CODE |
| LOW | src/main/git.ts | 269 | export async function worktreeHasUnintegratedWork( | CODE |
| LOW | src/main/realtimeActions.ts | 830 | export function registerRealtimeActionIpc(deps: RealtimeActionDeps): void { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/hires/manifests-data.js | 871 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias rut | CODE |
| LOW | docs/hires/manifests-data.js | 899 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias | CODE |
| LOW | docs/hires/manifests-data.js | 926 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias | CODE |
| LOW | docs/hires/manifests-data.js | 948 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias | CODE |
| LOW | docs/hires/manifests/ryan-prototype.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | …ires/manifests/variants/ryan-prototype.codex.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | …res/manifests/variants/ryan-prototype.claude.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | …anifests/variants/ryan-prototype.antigravity.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | blog/BLOG_README.md | 24 | `alt`, a generation `prompt`, and a `status`. While `status` is `"placeholder"` the | CODE |
| LOW⚡ | blog/src/_data/media.json | 2775 | "status": "placeholder" | CODE |
| LOW⚡ | blog/src/_data/media.json | 2782 | "status": "placeholder" | CODE |
| LOW⚡ | blog/src/_data/media.json | 2788 | "status": "placeholder" | CODE |
| LOW | blog/src/_data/media.json | 3351 | "status": "placeholder" | CODE |
| LOW | src/renderer/src/i18n/locales/zh-CN.json | 25 | "placeholder": "输入命令", | CODE |
| LOW | src/renderer/src/i18n/locales/zh-CN.json | 650 | "placeholder": "/path/to/HarnessAgents", | CODE |
| LOW | src/renderer/src/i18n/locales/en.json | 25 | "placeholder": "Type a command", | CODE |
| LOW | src/renderer/src/i18n/locales/en.json | 650 | "placeholder": "/path/to/HarnessAgents", | CODE |
| LOW | src/renderer/src/i18n/locales/ar.json | 25 | "placeholder": "اكتب أمرًا", | CODE |
| LOW | src/renderer/src/i18n/locales/ar.json | 650 | "placeholder": "/path/to/HarnessAgents", | CODE |
| LOW | src/shared/releaseDrop.ts | 215 | /* Drop-in placeholder: <div class="placeholder" data-label="Hero"></div> | COMMENT |
| LOW | src/shared/releaseDrop.ts | 365 | <div class="placeholder" data-label="Two agents messaging" style="aspect-ratio:24/9"></div> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/blog/an-agent-redesigned-this-blog/index.html | 244 | <p class="a">They're not AI-generated bitmaps — they're drawn as code. A small SVG parts library (a ch | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/mapgen/build_map.py | 32 | CODE | |
| LOW | tools/mapgen/render_map.py | 42 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/mapgen/render_map.py | 86 | except Exception: | CODE |