Give your agent a computer 👾
This report summarizes scanner evidence for cloudflare/computer, a TypeScript project with 9,763 GitHub stars. SynthScan examined 171,752 lines of code across 745 source files, recording 394 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 2.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 389 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 56 finding(s).
Which changes need focused human review? 394 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 394 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/08_capnweb_interface.md | 61 | // missing subset. Returns the receiver's new rev plus the | COMMENT |
| LOW | docs/08_capnweb_interface.md | 101 | }>; | COMMENT |
| LOW | script/run-fs-bench.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | script/npm-bench.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | script/npm-bench.sh | 21 | # REPS timed repetitions per scenario per target (default: 3) | COMMENT |
| LOW | script/run-npm-bench.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | script/run-npm-bench.sh | 21 | # Add fuse-ignored:/tmp/workspace/ignored to measure | COMMENT |
| LOW | script/fs-bench.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | examples/vite-bundle/src/index.ts | 1 | // Example Vite-built Worker + Durable Object whose Workspace ships a | COMMENT |
| LOW | examples/tutorial/src/index.ts | 1 | // Recipe card tutorial. POST /prompt {"prompt":"spaghetti bolognese"} | COMMENT |
| LOW | examples/container-legacy/src/index.ts | 1 | // Example Worker + container-enabled Durable Object that runs a | COMMENT |
| LOW | examples/container-legacy/src/index.ts | 41 | // Env is generated by `wrangler types` into worker-configuration.d.ts. | COMMENT |
| LOW | examples/container-legacy/src/index.ts | 61 | // cast the way the mixin's own docs do. | COMMENT |
| LOW | examples/container/src/index.ts | 1 | // Example Worker + container-enabled Durable Object that runs a | COMMENT |
| LOW | examples/container/src/index.ts | 41 | // container egress (ctx.exports.WorkspaceProxy below). The class | COMMENT |
| LOW | examples/container/src/index.ts | 61 | // the `images` map in wrangler.jsonc. "app" is the default, so | COMMENT |
| LOW | examples/container/src/index.ts | 121 | } | COMMENT |
| LOW | examples/worker-shell/src/index.ts | 1 | // Example Worker + Durable Object that runs a Workspace whose | COMMENT |
| LOW | examples/worker-shell/src/index.ts | 41 | // and the bundler drops it. Pass the ones you want to the | COMMENT |
| LOW | examples/assets/src/index.ts | 1 | // Example Worker + Durable Object that turns a text prompt into an | COMMENT |
| LOW | packages/computerd/src/fuse/tracer.ts | 1 | // FUSE op tracer. | COMMENT |
| LOW | packages/computerd/src/fuse/driver.ts | 301 | size: number; // logical end-of-file | COMMENT |
| LOW | packages/computerd/src/fuse/driver.ts | 421 | let cap = Math.max(entry.buf.length * 2, 64 * 1024); | COMMENT |
| LOW | packages/computerd/src/fuse/passthrough.ts | 1 | // Local-only passthrough for the FUSE op layer. See | COMMENT |
| LOW | packages/computerd/src/fuse/passthrough.ts | 621 | } | COMMENT |
| LOW | packages/computerd/src/fuse/ignore.ts | 1 | // Local-only paths of the mount, as glob patterns. See | COMMENT |
| LOW | packages/computerd/src/fuse/native-roots.ts | 1 | // Native roots: bind-mounts local-only directories onto the mount. See | COMMENT |
| LOW | packages/computerd/src/fuse/native-roots.ts | 21 | // removal-guard.c) detaches the mount first; this module hands it each | COMMENT |
| LOW | packages/computerd/src/fuse/backend.ts | 1 | import { access as defaultAccess } from "node:fs/promises"; | COMMENT |
| LOW | packages/computerd/src/fuse/driver.test.ts | 761 | const out = Buffer.alloc("second".length); | COMMENT |
| LOW | packages/computerd/src/fuse/driver.test.ts | 801 | const afterStat = after.result as { size: number; mtime: Date }; | COMMENT |
| LOW | packages/computerd/src/cli/computerd.ts | 461 | socket.destroy(); | COMMENT |
| LOW | packages/computerd/src/cli/computerd.ts | 521 | base?: unknown; | COMMENT |
| LOW | packages/computerd/src/cli/computerd.ts | 721 | // or macFUSE and falls back to the userspace shim. fuse / macfuse | COMMENT |
| LOW | packages/computerd/src/cli/computerd.ts | 921 | kill: runner.kill.bind(runner), | COMMENT |
| LOW | packages/computerd/src/cli/logger.ts | 1 | // Minimal logger primitives for computerd. Two responsibilities: | COMMENT |
| LOW | packages/computerd/src/cli/logger.ts | 61 | } | COMMENT |
| LOW | packages/computerd/src/exec/schema.ts | 1 | // computerd-owned tables in the same SQLite DB as dofs. | COMMENT |
| LOW | packages/computerd/src/exec/runner.fuse.test.ts | 1 | // Regression: computerd must not deadlock when shell.exec passes a cwd | COMMENT |
| LOW | packages/computerd/src/exec/runner.fuse.test.ts | 21 | // is responsive again. | COMMENT |
| LOW | packages/computerd/src/exec/types.ts | 1 | // Wire-compatible shapes for the exec surface. Mirrors docs/08 | COMMENT |
| LOW | packages/computerd/src/exec/types.ts | 41 | stdin?: Uint8Array; | COMMENT |
| LOW | packages/computerd/src/exec/types.ts | 61 | defaultTimeoutMs?: number; | COMMENT |
| LOW | packages/computerd/src/exec/types.ts | 81 | // caller may reach for, notably ${PIPESTATUS[@]}, is a parse error there | COMMENT |
| LOW | packages/computerd/src/exec/log.ts | 1 | // Replay store for a single exec, backed by SQLite. | COMMENT |
| LOW | packages/computerd/src/exec/env.ts | 1 | // Builds the environment a spawned command inherits from the daemon. | COMMENT |
| LOW | packages/computerd/src/exec/runner.ts | 1 | // Process supervisor. | COMMENT |
| LOW | packages/computerd/src/exec/runner.ts | 141 | // server. | COMMENT |
| LOW | packages/computerd/src/shim/shim.ts | 1 | // Userspace bidirectional sync between the @platformatic/vfs store | COMMENT |
| LOW | packages/computerd/src/shim/shim.ts | 121 | COMMENT | |
| LOW | packages/rpc/vitest.config.bench.ts | 1 | import { defineConfig } from "vitest/config"; | COMMENT |
| LOW | packages/rpc/tests/shell-and-composite.test.ts | 1 | // End-to-end tests for ShellRPC and the composite WorkspaceRPC. | COMMENT |
| LOW | packages/rpc/src/interface.test.ts | 1 | // Wire error code coverage. Every WireErrorCode is supposed to | COMMENT |
| LOW | packages/rpc/src/debug.ts | 1 | // Stub leak tracking. Gated on the CAPNWEB_TRACK_STUBS env flag so | COMMENT |
| LOW | packages/rpc/src/sync-driver.ts | 61 | // Soft cap on entries processed per batch in pullOnce. Each batch | COMMENT |
| LOW | packages/rpc/src/sync-driver.ts | 101 | remote: SyncRPC, | COMMENT |
| LOW | packages/rpc/src/sync-driver.ts | 121 | const fetchResult = await remote.fetchChanges({ after }); | COMMENT |
| LOW | packages/rpc/src/sync-driver.ts | 141 | // had. Resetting and replaying cannot mend that, so we let the | COMMENT |
| LOW | packages/rpc/src/sync-driver.ts | 341 | remote: SyncRPC, | COMMENT |
| LOW | packages/rpc/src/sync-driver.ts | 381 | writeFetchCursor(db, { rev: 0, path: null }, backend); | COMMENT |
| 252 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ink-compare-runtimes/worker/computer-container-pool.ts | 69 | export function createWorkspaceWarmPoolRuntime(env: WorkspacePoolEnv): WarmPoolRuntime { | CODE |
| LOW | …ink-compare-runtimes/worker/computer-container-pool.ts | 99 | function getWorkspaceContainerHost( | CODE |
| LOW | …ink-compare-runtimes/worker/computer-container-pool.ts | 137 | export async function startWorkspaceContainerAndWait( | CODE |
| LOW | …hink-compare-runtimes/worker/sandbox-container-pool.ts | 16 | function createSandboxWarmPoolRuntime(env: SandboxPoolEnv): WarmPoolRuntime { | CODE |
| LOW | …/think-compare-runtimes/worker/wrangler-config.test.ts | 70 | function durableObjectBindingNames(config: WranglerConfig): string[] { | CODE |
| LOW | …ples/think-compare-runtimes/worker/container-config.ts | 20 | export function warmPoolRefreshIntervalMs(env: ContainerPoolConfigEnv): number { | CODE |
| LOW | examples/think-compare-runtimes/worker/think/agents.ts | 458 | async function assertSandboxFixtureVisible( | CODE |
| LOW | examples/think-compare-runtimes/worker/think/prompts.ts | 11 | export function createRuntimeSystemPrompt(runtime: RuntimeId): string { | CODE |
| LOW | examples/think-compare-runtimes/worker/think/prompts.ts | 57 | export function createRuntimeToolDescriptions(runtime: RuntimeId): RuntimeToolDescriptions { | CODE |
| LOW | …s/think-compare-runtimes/worker/think/scripted-turn.ts | 11 | export async function runScriptedThinkToolSmoke({ | CODE |
| LOW | …think-compare-runtimes/worker/think/remote-recorder.ts | 8 | export function createRemoteRunEventRecorder(sink: CompareRunEventSink): { | CODE |
| LOW | …compare-runtimes/worker/runtime/comparison-run.test.ts | 118 | function perRuntimeFixtureSetupEventCount(): number { | CODE |
| LOW | …les/think-compare-runtimes/worker/runtime/workspace.ts | 31 | export function createWorkspaceFixtureRuntime(workspace: WorkspaceFixtureTarget): FixtureRuntime { | CODE |
| LOW | …les/think-compare-runtimes/worker/runtime/workspace.ts | 53 | export function createWorkspaceCommandRunner( | CODE |
| LOW | …les/think-compare-runtimes/worker/runtime/workspace.ts | 105 | function workspaceBackendForCommand(command: string): "container" | "shell" { | CODE |
| LOW | …-compare-runtimes/worker/runtime/workspace-run.test.ts | 43 | function expectedFixtureEventSummaries(): Array<{ | CODE |
| LOW | …mples/think-compare-runtimes/worker/runtime/sandbox.ts | 23 | export function createSandboxFixtureRuntime(sandbox: SandboxFixtureTarget): FixtureRuntime { | CODE |
| LOW | …mples/think-compare-runtimes/worker/runtime/sandbox.ts | 48 | export function createSandboxCommandRunner(sandbox: SandboxCommandTarget): RuntimeCommandRunner { | CODE |
| LOW | …mples/think-compare-runtimes/worker/runtime/adapter.ts | 42 | export function createWorkspaceRuntimeAdapter( | CODE |
| LOW | …mples/think-compare-runtimes/worker/runtime/adapter.ts | 66 | export function createSandboxRuntimeAdapter(options: SandboxRuntimeAdapterOptions): RuntimeAdapter { | CODE |
| LOW | …/think-compare-runtimes/worker/runtime/instrumented.ts | 11 | export function createInstrumentedFixtureRuntime({ | CODE |
| LOW | …nk-compare-runtimes/worker/runtime/sandbox-run.test.ts | 43 | function expectedFixtureEventSummaries(): Array<{ | CODE |
| LOW | …ples/think-compare-runtimes/src/runtime-panel-model.ts | 463 | function isAgentToolLifecycleEvent(event: RunEvent): boolean { | CODE |
| LOW | …ples/think-compare-runtimes/src/runtime-panel-model.ts | 537 | function appendConcreteUnpairedToolCalls( | CODE |
| LOW | examples/rlm/worker/executor-tool.ts | 105 | export function extractGeneratedSourceBytes(toolCalls: unknown): number { | CODE |
| LOW | examples/rlm/worker/structured-rlm.ts | 51 | export function structuredRlmSystemPrompt(fixture: BenchmarkFixture): string { | CODE |
| LOW | examples/rlm/worker/oolong-synth.ts | 113 | export function parseOolongSynthRowsResponse( | CODE |
| LOW | examples/rlm/worker/oolong-synth.ts | 293 | function hashOolongSynthFixtureSource(fixture: OolongSynthFixture): string { | CODE |
| LOW | examples/rlm/src/App.tsx | 714 | function getOrCreateSessionId(): string { | CODE |
| LOW | packages/computerd/src/fuse/ignore-config.ts | 175 | function inactiveNativeRootsReason( | CODE |
| LOW | packages/computerd/src/fuse/ignore-config.ts | 205 | function inactivePassthroughReason( | CODE |
| LOW | packages/computerd/src/fuse/vfs.ts | 25 | function ensureVirtualProviderPrototype(): void { | CODE |
| LOW | packages/computerd/src/fuse/vfs.ts | 83 | export async function createNodeVirtualFileSystem( | CODE |
| LOW | packages/computer/src/transport-failure.ts | 90 | export function isWorkspaceTransportFailure(error: unknown): boolean { | CODE |
| LOW | packages/computer/src/transport-failure.ts | 123 | export function isWorkspacePreDispatchTransportFailure(error: unknown): boolean { | CODE |
| LOW | packages/computer/src/workspace.ts | 1380 | function createDisabledArtifactsClient(): ArtifactClient { | CODE |
| LOW | packages/computer/src/tools/common/fs/edit-diff.ts | 44 | function normalizeNfkcForFuzzyMatch(text: string): string { | CODE |
| LOW | packages/computer/src/tools/common/fs/edit-diff.ts | 432 | export function applyEditsToNormalizedContent( | CODE |
| LOW | …r/src/backends/container-legacy/container-lifecycle.ts | 126 | export async function destroyContainerExpectingExit( | CODE |
| LOW | …r/src/backends/container-legacy/container-lifecycle.ts | 150 | export function resetContainerLifecycleForTests(ctx: DurableObjectState): void { | CODE |
| LOW | …computer/src/backends/container/container-lifecycle.ts | 132 | export async function destroyContainerExpectingExit( | CODE |
| LOW | …computer/src/backends/container/container-lifecycle.ts | 156 | export function resetContainerLifecycleForTests(ctx: DurableObjectState): void { | CODE |
| LOW | packages/computer/src/git/adapter.ts | 107 | export async function workspaceIsomorphicGitClient( | CODE |
| LOW | packages/dofs/src/sync/apply.ts | 105 | function removeReplaceableFinalEntry( | CODE |
| LOW | packages/dofs/src/sync/apply.ts | 744 | function settleDeferredDirectories( | CODE |
| LOW | packages/dofs/src/fs/mount-guard.ts | 28 | export function invalidateReadOnlyMountCache(db: Database): void { | CODE |
| LOW | packages/dofs/src/fs/writeBuffer.ts | 80 | export function getPendingWriteBufferByPath( | CODE |
| LOW | packages/dofs/src/fs/writeBuffer.ts | 91 | export function getPendingWriteBufferByParent( | CODE |
| LOW | packages/dofs/src/fs/writeFile.ts | 764 | export function openWriteBufferForCreateSync( | CODE |
| LOW | packages/dofs/src/fs/rename.ts | 170 | function assertCompatibleOverwrite( | CODE |
| LOW | packages/dofs/src/fs/resolve.ts | 113 | export function resolveInodeWithoutSymlinks(db: Database, path: string): ResolvedInode | null { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | script/run-fs-tests.sh | 2 | # Non-interactive harness for ./script/shell. Mount the computerd binary, fs-tests, | COMMENT |
| MEDIUM | script/run-fs-bench.sh | 2 | # Non-interactive harness for ./script/shell that runs fs-bench. | COMMENT |
| MEDIUM | script/fs-tests.sh | 2 | # Filesystem conformance test harness for the computerd FUSE mount. | COMMENT |
| MEDIUM | packages/computer/test-harness/run-computerd.sh | 4 | # Used by the vitest harness to give TestBackend a | COMMENT |
| MEDIUM | packages/computer/test-harness/run-computerd.sh | 5 | # real computerd to talk to. The harness sets COMPUTERD_HARNESS_URL from | COMMENT |
| MEDIUM | packages/computer/test-harness/run-computerd.sh | 17 | # stderr for the harness to capture. | COMMENT |
| MEDIUM | packages/computer/test-harness/run-harness.sh | 2 | # Wrapper that runs the docker harness vitest project end-to-end. | COMMENT |
| MEDIUM | packages/computer/test-harness/run-harness.sh | 7 | # - Runs vitest against test-harness/vitest config. | COMMENT |
| MEDIUM | packages/computer/test-harness/run-harness.sh | 22 | # Skip when docker is unavailable. The harness vitest project | COMMENT |
| MEDIUM | packages/computer/test-harness/run-harness.sh | 23 | # also skips in that case; this keeps `npm run test:harness` | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 106 | # The computer harness and computerd's real-FUSE regression both | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/test-driven-development/SKILL.md | 33 | ### Step 1: RED — Write a Failing Test | COMMENT |
| LOW | .agents/skills/test-driven-development/SKILL.md | 51 | ### Step 2: GREEN — Make It Pass | COMMENT |
| LOW | .agents/skills/test-driven-development/SKILL.md | 69 | ### Step 3: REFACTOR — Clean Up | COMMENT |
| LOW⚡ | .agents/skills/test-driven-development/SKILL.md | 108 | // Step 1: Write the reproduction test (it should FAIL) | COMMENT |
| LOW⚡ | .agents/skills/test-driven-development/SKILL.md | 117 | // Step 2: Fix the bug | COMMENT |
| LOW⚡ | .agents/skills/test-driven-development/SKILL.md | 125 | // Step 3: Test passes → bug fixed, regression guarded | COMMENT |
| LOW | packages/computer/src/artifacts/cli.ts | 158 | // Step 1: create the repo, or adopt an existing one under --force. | COMMENT |
| LOW⚡ | packages/computer/src/artifacts/cli.ts | 178 | // Step 2: mint the token and compose the credentialed remote. | COMMENT |
| LOW⚡ | packages/computer/src/artifacts/cli.ts | 188 | // Step 3: register the git remote, if a seam was wired. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/container-legacy/src/index.ts | 18 | // └─── capnweb session ◀─────────────┘ | COMMENT |
| MEDIUM | examples/container/src/index.ts | 26 | // └─── capnweb session ◀─────────────┘ | COMMENT |
| MEDIUM | packages/computer/tests/worker-backend.test.ts | 10 | // ├─────────────────────►│ │ | COMMENT |
| MEDIUM | packages/computer/tests/worker-backend.test.ts | 12 | // │ ├─────────────────────────►│ | COMMENT |
| MEDIUM | packages/computer/tests/worker-backend.test.ts | 24 | // │ │ │◄─────┘ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/computerd/src/fuse/native-roots.ts | 307 | // A synced scaffold can be a symlink after restore. Never scan | COMMENT |
| MEDIUM | packages/dofs/src/provider.fd.test.ts | 3 | // the scaffold test file. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/computer/src/artifacts/cli.ts | 158 | // Step 1: create the repo, or adopt an existing one under --force. | COMMENT |
| LOW⚡ | packages/computer/src/artifacts/cli.ts | 178 | // Step 2: mint the token and compose the credentialed remote. | COMMENT |
| LOW⚡ | packages/computer/src/artifacts/cli.ts | 188 | // Step 3: register the git remote, if a seam was wired. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | script/run-npm-bench.sh | 6 | # Usage: | COMMENT |