Bitterbot - a mesh of agents that turns shared experience into collective capability.
This report summarizes scanner evidence for Bitterbot-AI/bitterbot-desktop, a TypeScript project with 2,479 GitHub stars. SynthScan examined 1,189,852 lines of code across 5637 source files, recording 3018 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 3.2 (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? 2609 finding(s).
Are imports declared and package/API names verified? 105 finding(s).
Are wrappers, guards, and repeated structures necessary? 2712 finding(s).
Which changes need focused human review? 3018 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 3018 distinct pattern matches across 22 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 | test/helpers/inbound-contract.ts | 7 | export function expectInboundContextContract(ctx: MsgContext) { | CODE |
| LOW | test/helpers/envelope-timestamp.ts | 41 | export function formatLocalEnvelopeTimestamp(date: Date): string { | CODE |
| LOW | desktop/gateway-launcher.ts | 112 | export function createGatewayStartHandler(opts: GatewayStartHandlerOptions) { | CODE |
| LOW | desktop/renderer/src/stores/circles-store.ts | 37 | export function resetUnsupportedMethodsForTests(): void { | CODE |
| LOW | desktop/renderer/src/stores/gateway-store.ts | 105 | export function clearStoredGatewayCredentials(): void { | CODE |
| LOW | desktop/renderer/src/lib/gateway-origin.ts | 149 | export function persistGatewayCredentials(params: { url: string; token: string }): void { | CODE |
| LOW | desktop/renderer/src/lib/step-up.ts | 30 | export async function isPlatformAuthenticatorAvailable(): Promise<boolean> { | CODE |
| LOW | docs/agents/interceptors-author-guide.md | 88 | export function registerBuiltinInterceptors(): void { | CODE |
| LOW | extensions/device-pair/index.ts | 210 | function parsePossiblyNoisyJsonObject(raw: string): Record<string, unknown> { | CODE |
| LOW | extensions/twitch/src/status.ts | 30 | export function collectTwitchStatusIssues( | CODE |
| LOW | extensions/twitch/src/send.ts | 51 | export async function sendMessageTwitchInternal( | CODE |
| LOW | extensions/twitch/src/client-manager-registry.ts | 38 | export function getOrCreateClientManager( | CODE |
| LOW | extensions/twitch/src/client-manager-registry.ts | 104 | export function getRegisteredClientManagerCount(): number { | CODE |
| LOW | extensions/hol-guard/index.ts | 39 | async function inspectCommandWithHolGuard( | CODE |
| LOW | extensions/hol-guard/index.ts | 59 | export function createHolGuardBeforeToolCallHandler(inspect: GuardInspector) { | CODE |
| LOW | …kaggle/bitterbot_memory_py/tests/test_memory_facade.py | 24 | def test_facade_smoke_full_turn(mem: BitterbotMemory) -> None: | CODE |
| LOW⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 27 | def test_pack_unpack_roundtrip() -> None: | CODE |
| LOW⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 37 | def test_hash_embedder_dim_and_norm() -> None: | CODE |
| LOW⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 45 | def test_hash_embedder_overlap_increases_similarity() -> None: | CODE |
| LOW⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 60 | def test_hash_embedder_handles_empty_input() -> None: | CODE |
| LOW⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 71 | def test_ensure_embeddings_populates_only_missing(store: MemoryStore) -> None: | CODE |
| LOW⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 86 | def test_ensure_embeddings_persists_correct_dim(store: MemoryStore) -> None: | CODE |
| LOW⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 95 | def test_ensure_embeddings_per_model_isolation(store: MemoryStore) -> None: | CODE |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 136 | def test_retriever_returns_topk_by_relevance(populated_store: MemoryStore) -> None: | CODE |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 143 | def test_retriever_returns_empty_for_no_corpus(store: MemoryStore) -> None: | CODE |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 185 | def test_retriever_rrf_score_decreases_with_rank(populated_store: MemoryStore) -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 15 | def test_action_with_xy_coords() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 21 | def test_action_with_colon_xy_format() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 27 | def test_action_with_parenthesized_xy() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 33 | def test_action_without_tag_falls_back_to_token_scan() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 39 | def test_reset_token_recognized() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 44 | def test_unparseable_response_defaults_to_directional() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 50 | def test_click_without_coords_defaults_to_center() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 56 | def test_rule_observed_extracted() -> None: | CODE |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 66 | def test_hypothesis_update_extracted() -> None: | STRING |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 75 | def test_xy_out_of_range_falls_back() -> None: | STRING |
| LOW⚡ | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 83 | def test_action_token_is_case_insensitive() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 17 | def test_hash_grid_is_stable_and_unique() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 26 | def test_grid_to_ascii_dimensions() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 34 | def test_grid_to_ascii_distinct_glyphs_per_value() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 41 | def test_pixel_diff_zero_when_identical() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 46 | def test_pixel_diff_counts_changes() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 54 | def test_diff_region_none_when_identical() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 59 | def test_diff_region_bounding_box() -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 70 | def test_color_histogram_counts() -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 76 | def test_connected_components_basic() -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 87 | def test_connected_components_distinguishes_colors() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 108 | def test_connected_components_skips_background() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 113 | def test_connected_components_centroid_and_bounding_box() -> None: | CODE |
| LOW⚡ | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 122 | def test_connected_components_min_size_filter() -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 30 | def test_choose_action_returns_parsed_kind(mem: BitterbotMemory) -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 40 | def test_choose_action_logs_transition_after_first_turn(mem: BitterbotMemory) -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 51 | def test_choose_action_records_rule_when_emitted(mem: BitterbotMemory) -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 65 | def test_choose_action_updates_hypothesis_when_emitted(mem: BitterbotMemory) -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 80 | def test_on_episode_end_records_event_and_resets_buffer(mem: BitterbotMemory) -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 96 | def test_on_episode_end_refutes_hypothesis_on_loss(mem: BitterbotMemory) -> None: | CODE |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 106 | def test_pixel_delta_triggers_curiosity_event(mem: BitterbotMemory) -> None: | CODE |
| LOW | …/bitterbot_memory_py/tests/test_arc_adapter_offline.py | 15 | def test_module_imports_without_arcengine() -> None: | CODE |
| LOW | …/bitterbot_memory_py/tests/test_arc_adapter_offline.py | 24 | def test_make_arc_agent_class_raises_when_arcengine_missing() -> None: | CODE |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_curiosity.py | 11 | def test_unseen_pair_returns_max_novelty(store: MemoryStore) -> None: | CODE |
| 2348 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/skill-evolution/two-node-transfer.test.ts | 129 | // ── Node A: evolve, gate, canary, graduate ──────────────────────────── | COMMENT |
| MEDIUM | test/skill-evolution/two-node-transfer.test.ts | 174 | // ── Node A: publish with a signed trailer ───────────────────────────── | COMMENT |
| MEDIUM | test/skill-evolution/two-node-transfer.test.ts | 216 | // ── Node B: ingest, review, accept into staging ─────────────────────── | COMMENT |
| MEDIUM | test/skill-evolution/two-node-transfer.test.ts | 236 | // ── Node B: re-gate on B's private suite, strict canary ─────────────── | COMMENT |
| MEDIUM | test/skill-evolution/two-node-transfer.test.ts | 292 | // ── Node B: strict window, then stable ──────────────────────────────── | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 2 | # ============================================================================= | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 6 | # ============================================================================= | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 28 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 30 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 72 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 74 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 92 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 94 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 166 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 168 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 241 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 243 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 266 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 268 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 297 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 299 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 320 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 322 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 356 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 358 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 392 | # ============================================================================= | COMMENT |
| MEDIUM | desktop/setup-local-env.sh | 394 | # ============================================================================= | COMMENT |
| MEDIUM | benchmarks/arc-agi-3/kaggle/submit_kaggle.py | 36 | # ── Kaggle dataset / model paths ─────────────────────────────────── | COMMENT |
| MEDIUM | benchmarks/arc-agi-3/kaggle/submit_kaggle.py | 56 | # ── Pre-flight ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | benchmarks/arc-agi-3/kaggle/submit_kaggle.py | 194 | # ── vLLM ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | benchmarks/arc-agi-3/kaggle/submit_kaggle.py | 239 | # ── Main ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 24 | # ── BLOB packing helpers ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 34 | # ── HashEmbedder ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 68 | # ── ensure_embeddings ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 105 | # ── HybridRetriever ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ggle/bitterbot_memory_py/tests/test_knowledge_graph.py | 22 | # ── Entity upserts ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ggle/bitterbot_memory_py/tests/test_knowledge_graph.py | 79 | # ── Entity queries ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …ggle/bitterbot_memory_py/tests/test_knowledge_graph.py | 113 | # ── Relationship upserts ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …ggle/bitterbot_memory_py/tests/test_knowledge_graph.py | 186 | # ── Relationship queries ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …ggle/bitterbot_memory_py/tests/test_knowledge_graph.py | 227 | # ── Stats ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 25 | # ── Knowledge Graph: entities ──────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 42 | # ── Knowledge Graph: relationships ─────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 61 | # ── ARC-AGI-3 transition log ───────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 78 | # ── Hormonal state ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 91 | # ── Hypotheses (epistemic directives) ──────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 101 | # ── Vector embeddings (BLOB-packed float32 little-endian) ──────── | COMMENT |
| MEDIUM | …/kaggle/bitterbot_memory_py/bitterbot_memory/memory.py | 45 | # ── Retrieval / rule lifecycle ──────────────────────────────── | COMMENT |
| MEDIUM | …/kaggle/bitterbot_memory_py/bitterbot_memory/memory.py | 67 | # ── Transition logging / novelty ────────────────────────────── | COMMENT |
| MEDIUM | …/kaggle/bitterbot_memory_py/bitterbot_memory/memory.py | 84 | # ── Hypotheses ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/kaggle/bitterbot_memory_py/bitterbot_memory/memory.py | 99 | # ── Hormonal state ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …/kaggle/bitterbot_memory_py/bitterbot_memory/memory.py | 107 | # ── Lifecycle ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …itterbot_memory_py/bitterbot_memory/knowledge_graph.py | 160 | # ── Entity CRUD ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …itterbot_memory_py/bitterbot_memory/knowledge_graph.py | 238 | # ── Relationship CRUD ────────────────────────────────────────── | COMMENT |
| MEDIUM | …itterbot_memory_py/bitterbot_memory/knowledge_graph.py | 359 | # ── Stats / introspection ────────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/frame.py | 21 | # ── 16-color ASCII palette ───────────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/frame.py | 49 | # ── Hash + ASCII ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/frame.py | 72 | # ── Diff ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/frame.py | 109 | # ── Connected components ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …3/kaggle/bitterbot_memory_py/bitterbot_memory/frame.py | 187 | # ── Color histogram ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ggle/bitterbot_memory_py/bitterbot_memory/retrieval.py | 50 | # ── BLOB <-> ndarray helpers ──────────────────────────────────────── | COMMENT |
| 219 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .detect-secrets.cfg | 1 | # detect-secrets exclusion patterns (regex) | COMMENT |
| LOW | docker-compose.yml | 1 | # Bitterbot with Docker Compose: works with zero edits (PLAN-56 Phase 2). | COMMENT |
| LOW | docker-compose.yml | 21 | # Every setting below has a default. Put overrides in a `.env` file next to | COMMENT |
| LOW | docker-compose.yml | 61 | # Pair the first browser that signs in with the token (once), so a fresh | COMMENT |
| LOW | tsdown.config.ts | 21 | // (including rolldown warnings) fatal in CI. | COMMENT |
| LOW | deploy/guest-page/deploy.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | deploy/vps/cloud-init.yaml | 1 | #cloud-config | COMMENT |
| LOW | deploy/relay-fleet/main.tf | 1 | # Bitterbot relay-fleet — Terraform module for DigitalOcean | COMMENT |
| LOW | deploy/relay-fleet/cloud-init.yaml | 1 | #cloud-config | COMMENT |
| LOW | deploy/relay-fleet/scripts/update-dnsaddr.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | deploy/relay-fleet/scripts/update-orchestrator.sh | 1 | #!/bin/bash | COMMENT |
| LOW | deploy/relay-fleet/scripts/fleet-stats.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | desktop/renderer/src/stores/circles-store.ts | 21 | // re-exported here so existing `from "../../stores/circles-store"` imports | COMMENT |
| LOW | …top/renderer/src/components/circles/MermaidDiagram.tsx | 1 | import { useEffect, useState } from "react"; | COMMENT |
| LOW | desktop/renderer/src/components/circles/InvitePanel.tsx | 1 | import { X } from "lucide-react"; | COMMENT |
| LOW | …top/renderer/src/components/circles/CanvasActivity.tsx | 1 | import { Check, Sparkles, X } from "lucide-react"; | COMMENT |
| LOW | …top/renderer/src/components/circles/CircleMarkdown.tsx | 1 | import type { Components } from "react-markdown"; | COMMENT |
| LOW | desktop/renderer/src/lib/deep-link.ts | 1 | // bitterbot:// deep-link handling for the Tauri desktop shell. | COMMENT |
| LOW | desktop/renderer/src/lib/updater.ts | 1 | // Auto-updater hook for the Tauri desktop shell. | COMMENT |
| LOW | desktop/src-tauri/src/computer_use.rs | 1 | // Computer-use IPC commands. | COMMENT |
| LOW | desktop/src-tauri/src/main.rs | 1 | // Bitterbot Desktop Shell — Tauri 2 entry point | COMMENT |
| LOW | desktop/src-tauri/src/main.rs | 61 | COMMENT | |
| LOW | benchmarks/arc-agi-3/runners/run-ablation.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | benchmarks/longmemeval/run-full-hardmode.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/create-dmg.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/install.sh | 21 | # that carries this platform's tarball AND checksums.txt AND its .minisig | COMMENT |
| LOW | scripts/sandbox-browser-entrypoint.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/docker-entrypoint.sh | 1 | #!/bin/sh | COMMENT |
| LOW | scripts/auth-monitor.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/FUNDING.yml | 1 | # Sponsor button for this repository (GitHub renders it from this file on the | COMMENT |
| LOW | .github/dependabot.yml | 1 | # PLAN-41 Phase 1 (p0-11): dependency update hygiene. Weekly, batched, and | COMMENT |
| LOW | .github/workflows/docker-publish.yml | 1 | # GHCR publish (PLAN-41 ghcr-missing). CI already proves the image builds | COMMENT |
| LOW | .github/workflows/desktop-release.yml | 1 | name: Desktop Release | COMMENT |
| LOW | .github/workflows/npm-publish.yml | 1 | # Publish the `bitterbot` package to npm (npm trusted publishing, OIDC). | COMMENT |
| LOW | .github/workflows/npm-publish.yml | 21 | # No NPM_TOKEN exists anywhere: npm trusts this workflow file | COMMENT |
| LOW | .github/workflows/release-tarball.yml | 1 | # Signed per-platform release tarballs + install.sh (PLAN-56 Phase 3a). | COMMENT |
| LOW | .github/workflows/release-tarball.yml | 21 | # complete release until this one is, and never 404s mid-release. | COMMENT |
| LOW | .github/workflows/release-please.yml | 1 | # PLAN-41 D-A: SemVer version cut via release-please (manifest mode). | COMMENT |
| LOW | .github/workflows/ci.yml | 261 | [ "$(stat -c %u /tmp/flydata)" = "1000" ] | COMMENT |
| LOW | orchestrator/Cargo.toml | 61 | # `test-util` (not part of tokio's "full") provides the paused-clock test | COMMENT |
| LOW | orchestrator/src/computer.rs | 1 | //! Headless OS-control primitives for the orchestrator daemon. | COMMENT |
| LOW | orchestrator/src/ipc.rs | 41 | pub region_hint: Option<String>, | COMMENT |
| LOW | orchestrator/src/main.rs | 41 | /// Bearer token for HTTP API authentication. | COMMENT |
| LOW | orchestrator/src/main.rs | 61 | /// server (serve as relay for NAT'd peers), auto (detect from node tier). | COMMENT |
| LOW | orchestrator/src/skill_receipts.rs | 1 | //! Distinct-skill accounting for received skill gossip. | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 41 | /// Signed, expiring capacity descriptors; never workload inputs or credentials. | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 81 | COMMENT | |
| LOW | orchestrator/src/swarm/mod.rs | 161 | #[serde(skip_serializing_if = "Option::is_none")] | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 261 | #[serde(default)] | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 281 | #[serde(default)] | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 301 | // ── Relay/NAT counters ──────────────────────────────────────────── | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 1441 | // gateway's per-frame decode + circle scan (security pass | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 1701 | "pubkey": pubkey_b64, | COMMENT |
| LOW | orchestrator/src/swarm/mod.rs | 3541 | /// reasoning behind the `stats_interval` comment is executable rather than | COMMENT |
| LOW | src/test-utils/vitest-mock-fn.ts | 1 | // Centralized Vitest mock type for harness modules under `src/`. | COMMENT |
| LOW | src/infra/start-all.test.ts | 1 | import { describe, expect, it } from "vitest"; | COMMENT |
| LOW | src/memory/manager-sync-ops.ts | 281 | }); | COMMENT |
| LOW | src/memory/manager.ts | 3061 | } | COMMENT |
| LOW | src/memory/manager.ts | 3221 | return call ? { evolutionLlmCall: call } : {}; | COMMENT |
| 38 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/marketplace/a2a-integration.md | 498 | // Step 1: initial request (expect 402) | COMMENT |
| LOW | docs/marketplace/a2a-integration.md | 513 | // Step 2: read pricing from the JSON-RPC error body | COMMENT |
| LOW | docs/marketplace/a2a-integration.md | 524 | // Step 3: pay on-chain | COMMENT |
| LOW | docs/marketplace/a2a-integration.md | 552 | // Step 4: wait for confirmation, then retry with payment proof | COMMENT |
| LOW | docs/gateway/remote-gateway-readme.md | 36 | ### Step 1: Add SSH Config | COMMENT |
| LOW⚡ | docs/gateway/remote-gateway-readme.md | 50 | ### Step 2: Copy SSH Key | COMMENT |
| LOW⚡ | docs/gateway/remote-gateway-readme.md | 58 | ### Step 3: Set Gateway Token | COMMENT |
| LOW⚡ | docs/gateway/remote-gateway-readme.md | 64 | ### Step 4: Start SSH Tunnel | COMMENT |
| LOW⚡ | docs/gateway/remote-gateway-readme.md | 70 | ### Step 5: Connect | COMMENT |
| LOW⚡ | benchmarks/longmemeval/runner.ts | 166 | // Step 0: Reset memory for this question (clean slate per item) | COMMENT |
| LOW⚡ | benchmarks/longmemeval/runner.ts | 169 | // Step 1: Convert all sessions into a single chronological document | COMMENT |
| LOW⚡ | benchmarks/longmemeval/runner.ts | 173 | // Step 2: Ingest the document into memory | COMMENT |
| LOW⚡ | benchmarks/longmemeval/runner.ts | 176 | // Step 3: Search for relevant context | COMMENT |
| LOW | benchmarks/longmemeval/runner.ts | 195 | // Step 4: Generate answer | COMMENT |
| LOW⚡ | scripts/setup-auth-system.sh | 15 | # Step 1: Check current auth status | COMMENT |
| LOW⚡ | scripts/setup-auth-system.sh | 20 | # Step 2: Set up long-lived token | COMMENT |
| LOW | scripts/setup-auth-system.sh | 41 | # Step 3: Set up auth monitoring | COMMENT |
| LOW | scripts/setup-auth-system.sh | 84 | # Step 4: Termux widget setup | COMMENT |
| LOW | skills/skill-creator/SKILL.md | 222 | ### Step 1: Understanding the Skill with Concrete Examples | COMMENT |
| LOW | skills/skill-creator/SKILL.md | 239 | ### Step 2: Planning the Reusable Skill Contents | COMMENT |
| LOW | skills/skill-creator/SKILL.md | 263 | ### Step 3: Initializing the Skill | COMMENT |
| LOW | skills/skill-creator/SKILL.md | 294 | ### Step 4: Edit the Skill | COMMENT |
| LOW | skills/skill-creator/SKILL.md | 335 | ### Step 5: Packaging a Skill | COMMENT |
| LOW | skills/skill-creator/SKILL.md | 361 | ### Step 6: Iterate | COMMENT |
| LOW | src/discord/voice-message.ts | 242 | // Step 1: Request upload URL from Discord | COMMENT |
| LOW | src/discord/voice-message.ts | 265 | // Step 2: Upload the file to Discord's CDN | COMMENT |
| LOW | src/discord/voice-message.ts | 279 | // Step 3: Send the message with voice message flag and metadata | COMMENT |
| LOW⚡ | src/memory/skill-seekers-adapter.ts | 332 | // Step 1: native scraper for URLs it can handle | COMMENT |
| LOW⚡ | src/memory/skill-seekers-adapter.ts | 337 | // Step 2: upstream probe (cached) | COMMENT |
| LOW | src/memory/skill-seekers-adapter.ts | 670 | // Step 1: direct URL extraction | COMMENT |
| LOW | src/memory/skill-seekers-adapter.ts | 695 | // Step 2: web search fallback | COMMENT |
| LOW | src/memory/consolidation.ts | 522 | // Step 1: Compute pairwise cosine (cached) and k-NN for each chunk | COMMENT |
| LOW | src/memory/consolidation.ts | 547 | // Step 2: For near-miss pairs, count shared neighbors | COMMENT |
| LOW | src/agents/tools/deep-recall-tool.ts | 496 | // Step 1: Quick memory_search first — if high-confidence results, skip RLM | COMMENT |
| LOW⚡ | src/agents/tools/deep-recall-tool.ts | 535 | // Step 2: Resolve sub-model | COMMENT |
| LOW⚡ | src/agents/tools/deep-recall-tool.ts | 544 | // Step 3: Live data-access APIs — the context snapshot below is only a | COMMENT |
| LOW | src/agents/tools/deep-recall-tool.ts | 639 | // Step 4: Execute RLM | COMMENT |
| LOW | src/agents/tools/deep-recall-tool.ts | 767 | // Step 5: Trigger hormonal event based on result + Plan 7 self-improvement | COMMENT |
| LOW | src/agents/embedded-runner/mid-turn-budget.ts | 217 | // Step 2: progressive compression (deterministic truncation), on top of | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmarks/arc-agi-3/kaggle/submit_kaggle.py | 19 | CODE | |
| LOW | benchmarks/arc-agi-3/kaggle/scripts/local_smoke.py | 14 | CODE | |
| LOW | …kaggle/bitterbot_memory_py/tests/test_memory_facade.py | 5 | CODE | |
| LOW | …arc-agi-3/kaggle/bitterbot_memory_py/tests/conftest.py | 3 | CODE | |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 8 | CODE | |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_retrieval.py | 13 | CODE | |
| LOW | …kaggle/bitterbot_memory_py/tests/test_action_parser.py | 3 | CODE | |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_frame.py | 3 | CODE | |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_agent.py | 3 | CODE | |
| LOW | …/bitterbot_memory_py/tests/test_arc_adapter_offline.py | 8 | CODE | |
| LOW | …/bitterbot_memory_py/tests/test_arc_adapter_offline.py | 21 | CODE | |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_curiosity.py | 3 | CODE | |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_store.py | 3 | CODE | |
| LOW | …3/kaggle/bitterbot_memory_py/tests/test_vllm_client.py | 3 | CODE | |
| LOW | …i-3/kaggle/bitterbot_memory_py/tests/test_epistemic.py | 3 | CODE | |
| LOW | …c-agi-3/kaggle/bitterbot_memory_py/tests/test_rules.py | 3 | CODE | |
| LOW | …ggle/bitterbot_memory_py/tests/test_knowledge_graph.py | 3 | CODE | |
| LOW | …gi-3/kaggle/bitterbot_memory_py/tests/test_hormonal.py | 3 | CODE | |
| LOW | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 16 | CODE | |
| LOW | …3/kaggle/bitterbot_memory_py/bitterbot_memory/store.py | 21 | CODE | |
| LOW | …ggle/bitterbot_memory_py/bitterbot_memory/epistemic.py | 16 | CODE | |
| LOW | …/bitterbot_memory_py/bitterbot_memory/action_parser.py | 19 | CODE | |
| LOW | …/kaggle/bitterbot_memory_py/bitterbot_memory/memory.py | 14 | CODE | |
| LOW | …itterbot_memory_py/bitterbot_memory/knowledge_graph.py | 15 | CODE | |
| LOW | …aggle/bitterbot_memory_py/bitterbot_memory/__init__.py | 9 | CODE | |
| LOW | …aggle/bitterbot_memory_py/bitterbot_memory/__init__.py | 10 | CODE | |
| LOW | …aggle/bitterbot_memory_py/bitterbot_memory/__init__.py | 10 | CODE | |
| LOW | …3/kaggle/bitterbot_memory_py/bitterbot_memory/rules.py | 15 | CODE | |
| LOW | …kaggle/bitterbot_memory_py/bitterbot_memory/prompts.py | 16 | CODE | |
| LOW | …3/kaggle/bitterbot_memory_py/bitterbot_memory/frame.py | 13 | CODE | |
| LOW | …ggle/bitterbot_memory_py/bitterbot_memory/retrieval.py | 16 | CODE | |
| LOW | …3/kaggle/bitterbot_memory_py/bitterbot_memory/agent.py | 24 | CODE | |
| LOW | …aggle/bitterbot_memory_py/bitterbot_memory/hormonal.py | 19 | CODE | |
| LOW | …aggle/bitterbot_memory_py/bitterbot_memory/embedder.py | 18 | CODE | |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/vllm_client.py | 12 | CODE | |
| LOW | …ggle/bitterbot_memory_py/bitterbot_memory/curiosity.py | 18 | CODE | |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/arc_adapter.py | 21 | CODE | |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/arc_adapter.py | 39 | CODE | |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/arc_adapter.py | 77 | CODE | |
| LOW | benchmarks/longmemeval-v2/checkpoint_plumbing.py | 6 | CODE | |
| LOW | benchmarks/longmemeval-v2/run.py | 2 | CODE | |
| LOW | benchmarks/longmemeval-v2/run.py | 14 | CODE | |
| LOW | benchmarks/longmemeval-v2/test_harness.py | 1 | CODE | |
| LOW | benchmarks/longmemeval-v2/test_harness.py | 2 | CODE | |
| LOW | benchmarks/longmemeval-v2/test_harness.py | 5 | CODE | |
| LOW | benchmarks/longmemeval-v2/protocol.py | 4 | CODE | |
| LOW | benchmarks/longmemeval-v2/core.py | 2 | CODE | |
| LOW | benchmarks/longmemeval-v2/plumbing.py | 5 | CODE | |
| LOW | benchmarks/longmemeval-v2/prepare.py | 6 | CODE | |
| LOW | benchmarks/longmemeval-v2/prepare.py | 8 | CODE | |
| LOW | benchmarks/longmemeval-v2/diagnostics/score_pilot.py | 6 | CODE | |
| LOW | benchmarks/longmemeval-v2/diagnostics/score_pilot.py | 6 | CODE | |
| LOW | benchmarks/longmemeval-v2/diagnostics/score_pilot.py | 7 | CODE | |
| LOW | benchmarks/longmemeval-v2/diagnostics/small_pilot.py | 7 | CODE | |
| LOW | skills/model-usage/scripts/model_usage.py | 8 | CODE | |
| LOW | skills/model-usage/scripts/model_usage.py | 12 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | src/agents/rlm/rlm.test.ts | 172 | print(matches.length); | CODE |
| HIGH⚡ | src/agents/rlm/rlm.test.ts | 173 | print(matches[0]); | CODE |
| HIGH⚡ | src/agents/rlm/rlm.test.ts | 182 | print(chunks.length); | CODE |
| HIGH⚡ | src/agents/rlm/rlm.test.ts | 183 | print(chunks[0].length); | CODE |
| HIGH | src/agents/rlm/rlm.test.ts | 219 | print(answer); | CODE |
| HIGH | src/agents/rlm/rlm.test.ts | 227 | print(JSON.stringify(stats)); | CODE |
| HIGH | src/agents/rlm/rlm.test.ts | 238 | print(lines); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | benchmarks/longmemeval/runner.ts | 166 | // Step 0: Reset memory for this question (clean slate per item) | COMMENT |
| LOW⚡ | benchmarks/longmemeval/runner.ts | 169 | // Step 1: Convert all sessions into a single chronological document | COMMENT |
| LOW⚡ | benchmarks/longmemeval/runner.ts | 173 | // Step 2: Ingest the document into memory | COMMENT |
| LOW⚡ | benchmarks/longmemeval/runner.ts | 176 | // Step 3: Search for relevant context | COMMENT |
| LOW | benchmarks/longmemeval/runner.ts | 195 | // Step 4: Generate answer | COMMENT |
| LOW⚡ | scripts/setup-auth-system.sh | 15 | # Step 1: Check current auth status | COMMENT |
| LOW⚡ | scripts/setup-auth-system.sh | 20 | # Step 2: Set up long-lived token | COMMENT |
| LOW | scripts/setup-auth-system.sh | 41 | # Step 3: Set up auth monitoring | COMMENT |
| LOW | scripts/setup-auth-system.sh | 84 | # Step 4: Termux widget setup | COMMENT |
| LOW | src/discord/voice-message.ts | 242 | // Step 1: Request upload URL from Discord | COMMENT |
| LOW | src/discord/voice-message.ts | 265 | // Step 2: Upload the file to Discord's CDN | COMMENT |
| LOW | src/discord/voice-message.ts | 279 | // Step 3: Send the message with voice message flag and metadata | COMMENT |
| LOW⚡ | src/memory/skill-seekers-adapter.ts | 332 | // Step 1: native scraper for URLs it can handle | COMMENT |
| LOW⚡ | src/memory/skill-seekers-adapter.ts | 337 | // Step 2: upstream probe (cached) | COMMENT |
| LOW | src/memory/skill-seekers-adapter.ts | 670 | // Step 1: direct URL extraction | COMMENT |
| LOW | src/memory/skill-seekers-adapter.ts | 695 | // Step 2: web search fallback | COMMENT |
| LOW | src/memory/consolidation.ts | 522 | // Step 1: Compute pairwise cosine (cached) and k-NN for each chunk | COMMENT |
| LOW | src/memory/consolidation.ts | 547 | // Step 2: For near-miss pairs, count shared neighbors | COMMENT |
| LOW | src/agents/tools/deep-recall-tool.ts | 496 | // Step 1: Quick memory_search first — if high-confidence results, skip RLM | COMMENT |
| LOW⚡ | src/agents/tools/deep-recall-tool.ts | 535 | // Step 2: Resolve sub-model | COMMENT |
| LOW⚡ | src/agents/tools/deep-recall-tool.ts | 544 | // Step 3: Live data-access APIs — the context snapshot below is only a | COMMENT |
| LOW | src/agents/tools/deep-recall-tool.ts | 639 | // Step 4: Execute RLM | COMMENT |
| LOW | src/agents/tools/deep-recall-tool.ts | 767 | // Step 5: Trigger hormonal event based on result + Plan 7 self-improvement | COMMENT |
| LOW | src/agents/embedded-runner/mid-turn-budget.ts | 217 | // Step 2: progressive compression (deterministic truncation), on top of | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/payments/ap2/mandate.ts | 345 | params.payment.claims.cnf.eip155Address.toLowerCase() !== | CODE |
| CRITICAL | src/payments/ap2/mandate.ts | 346 | params.intent.claims.cnf.eip155Address.toLowerCase() | CODE |
| CRITICAL | src/payments/ap2/mandate.ts | 362 | !allowed.includes(params.payment.claims.payee.id.toLowerCase()) | CODE |
| CRITICAL | src/security/audit.ts | 576 | typeof params.cfg.gateway?.remote?.url === "string" ? params.cfg.gateway.remote.url.trim() : ""; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/tools/plugin.md | 270 | "region": { "label": "Region", "placeholder": "us-east-1" } | CODE |
| LOW | docs/automation/hooks.md | 571 | {"timestamp":"2026-01-16T15:45:22.000Z","action":"stop","sessionKey":"agent:main:main","senderId":"user@example.com","so | CODE |
| LOW | docs/gateway/configuration-reference.md | 338 | allowFrom: ["+15555550123", "user@example.com", "chat_id:123"], | CODE |
| LOW | docs/gateway/configuration-examples.md | 526 | email: "user@example.com", | CODE |
| LOW | skills/himalaya/references/message-composition.md | 34 | To: "John Doe" <john@example.com> | CODE |
| LOW⚡ | skills/himalaya/references/configuration.md | 9 | email = "user@example.com" | CODE |
| LOW⚡ | skills/himalaya/references/configuration.md | 18 | backend.login = "user@example.com" | CODE |
| LOW⚡ | skills/himalaya/references/configuration.md | 27 | message.send.backend.login = "user@example.com" | CODE |
| LOW | skills/himalaya/references/configuration.md | 143 | email = "user@example.com" | CODE |
| LOW | skills/peekaboo/SKILL.md | 123 | peekaboo type "user@example.com" --app Safari | CODE |
| LOW | skills/notte/SKILL.md | 122 | --email "user@example.com" \ | CODE |
| LOW | src/memory/canonical-facts.test.ts | 1114 | expect(isCanonicalFactVisibleInScope("project:acme", "Acme Corp")).toBe(false); | CODE |
| LOW | src/memory/kg-relationship-extract.test.ts | 154 | expect(typeEntityName("Acme Corp")).toBe("organization"); | CODE |
| LOW | src/memory/correction-capture.test.ts | 336 | expect(r("project:acme-corp", "Acme Corp", "in acme corp use x")).toBe("project:acme-corp"); | CODE |
| LOW | src/memory/reindex-carryover.aux-tables.test.ts | 158 | next.exec(`INSERT INTO canonical_facts VALUES ('seed', 'user.name', 'placeholder')`); | CODE |
| LOW | …y/dream-modes/synthesize-interceptor-candidate.test.ts | 32 | rationale: "lorem ipsum", | CODE |
| LOW | …y/dream-modes/synthesize-interceptor-candidate.test.ts | 46 | rationale: "lorem ipsum", | CODE |
| LOW | src/config/schema.ts | 78 | Pick<ConfigUiHint, "label" | "help" | "advanced" | "sensitive" | "placeholder"> | CODE |
| LOW | src/security/external-content.ts | 266 | * sender: "user@example.com", | COMMENT |
| LOW | src/agents/embedded-runner.engine-hooks.test.ts | 199 | const filler = (label: string) => `${label} ${"lorem ipsum dolor sit amet ".repeat(4_500)}`; | CODE |
| LOW | src/agents/embedded-runner.engine-hooks.test.ts | 199 | const filler = (label: string) => `${label} ${"lorem ipsum dolor sit amet ".repeat(4_500)}`; | CODE |
| LOW | …key.falls-back-provider-default-per-dm-not.e2e.test.ts | 33 | dms: { "user@example.com": { historyLimit: 7 } }, | CODE |
| LOW | src/agents/runtime/compaction/summary/test-fixtures.ts | 42 | export function textOfTokens(tokens: number, seed = "lorem ipsum "): string { | CODE |
| LOW | …ents/runtime/session/heartbeat-elision.review3.test.ts | 36 | const filler = (label: string) => `${label} ${"lorem ipsum dolor sit amet ".repeat(150)}`; | CODE |
| LOW | …ents/runtime/session/heartbeat-elision.review3.test.ts | 36 | const filler = (label: string) => `${label} ${"lorem ipsum dolor sit amet ".repeat(150)}`; | CODE |
| LOW | src/agents/runtime/session/session.test.ts | 208 | const filler = (label: string) => `${label} ${"lorem ipsum dolor sit amet ".repeat(150)}`; | CODE |
| LOW | src/agents/runtime/session/session.test.ts | 208 | const filler = (label: string) => `${label} ${"lorem ipsum dolor sit amet ".repeat(150)}`; | CODE |
| LOW | src/browser/teaching-capture.ts | 125 | element?.getAttribute("placeholder") || | CODE |
| LOW | src/hooks/bundled/command-logger/HOOK.md | 34 | {"timestamp":"2026-01-16T15:45:22.000Z","action":"stop","sessionKey":"agent:main:main","senderId":"user@example.com","so | CODE |
| LOW | src/commands/openai-codex-oauth.test.ts | 50 | email: "user@example.com", | CODE |
| LOW | src/imessage/targets.test.ts | 68 | allowFrom: ["user@example.com"], | CODE |
| LOW | src/services/x402-verify.ts | 252 | // blocks fake-token Transfer events emitted by attacker contracts. | COMMENT |
| LOW | src/services/x402-verify.test.ts | 318 | it("rejects Transfer log emitted by a non-USDC contract (#38 fake-token)", async () => { | CODE |
| LOW | src/gateway/auth.test.ts | 276 | allowUsers: ["admin@example.com", "nick@example.com"], | CODE |
| LOW | src/gateway/auth.test.ts | 301 | allowUsers: ["admin@example.com", "nick@example.com"], | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …le/bitterbot_memory_py/bitterbot_memory/arc_adapter.py | 179 | except Exception: | CODE |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/arc_adapter.py | 211 | except Exception: | CODE |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/arc_adapter.py | 223 | except Exception: | CODE |
| LOW | benchmarks/longmemeval-v2/core.py | 94 | except Exception: | CODE |
| LOW | benchmarks/longmemeval-v2/core.py | 154 | except Exception as exc: | CODE |
| LOW | benchmarks/longmemeval-v2/core.py | 246 | except Exception as exc: | CODE |
| LOW | skills/model-usage/scripts/model_usage.py | 82 | except Exception: | CODE |
| LOW | skills/model-usage/scripts/model_usage.py | 250 | except Exception as exc: | CODE |
| LOW | skills/skill-creator/scripts/init_skill.py | 280 | except Exception as e: | CODE |
| LOW | skills/skill-creator/scripts/init_skill.py | 292 | except Exception as e: | CODE |
| LOW | skills/skill-creator/scripts/init_skill.py | 300 | except Exception as e: | CODE |
| LOW | skills/skill-creator/scripts/package_skill.py | 81 | except Exception as e: | CODE |
| MEDIUM | skills/nano-banana-pro/scripts/generate_image.py | 69 | print("Error: No API key provided.", file=sys.stderr) | CODE |
| MEDIUM | skills/nano-banana-pro/scripts/generate_image.py | 92 | print(f"Error: Too many input images ({len(args.input_images)}). Maximum is 14.", file=sys.stderr) | CODE |
| LOW | skills/nano-banana-pro/scripts/generate_image.py | 105 | except Exception as e: | CODE |
| MEDIUM | skills/nano-banana-pro/scripts/generate_image.py | 106 | print(f"Error loading input image '{img_path}': {e}", file=sys.stderr) | CODE |
| MEDIUM⚡ | skills/nano-banana-pro/scripts/generate_image.py | 175 | print("Error: No image was generated in the response.", file=sys.stderr) | CODE |
| LOW⚡ | skills/nano-banana-pro/scripts/generate_image.py | 178 | except Exception as e: | CODE |
| MEDIUM⚡ | skills/nano-banana-pro/scripts/generate_image.py | 179 | print(f"Error generating image: {e}", file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/protocol/aubaine-v1/README.md | 40 | ## The three things that make it scaffolding-agnostic | COMMENT |
| MEDIUM | docs/concepts/context.md | 77 | ## What counts toward the context window | COMMENT |
| MEDIUM | docs/reference/token-use.md | 28 | ## What counts in the context window | COMMENT |
| MEDIUM | docs/gateway/troubleshooting.md | 405 | ### 2) Bind and auth guardrails are stricter | COMMENT |
| MEDIUM | docs/gateway/configuration.md | 299 | See [Multi-Agent](/concepts/multi-agent) and [full reference](/gateway/configuration-reference#multi-agent-routing) | CODE |
| MEDIUM | docs/gateway/security/index.md | 646 | ## Per-agent access profiles (multi-agent) | COMMENT |
| MEDIUM | benchmarks/longmemeval-v2/test_recovery.py | 110 | # Fault injection tests checkpoint orchestration, not answer quality. | COMMENT |
| MEDIUM | src/services/wallet-service.ts | 491 | // PLAN-48 Phase 4 scaffold. Surfaces the spend-permission parameters the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | benchmarks/arc-agi-3/runners/run-ablation.sh | 5 | # 1. baseline-partner-template — no Bitterbot MCP at all (FUTURE: requires a separate harness; this script currently | COMMENT |
| MEDIUM | .github/workflows/skills-ablation.yml | 3 | # PLAN-45 5.1 (D-6, I10): the skill ablation harness. The self-test runs | COMMENT |
| MEDIUM | .github/workflows/skills-ablation.yml | 42 | # the harness exits non-zero rather than publishing a baseline-only report. | COMMENT |
| MEDIUM | src/tasks/judge.ts | 72 | "## Executed checks (harness-run, deterministic — treat as ground truth)", | CODE |
| MEDIUM | src/cli/completion-cli.ts | 511 | // For a robust implementation, usually one maps out the tree. | COMMENT |
| MEDIUM | src/cli/completion-cli.ts | 660 | // Actually, a robust fish completion often requires defining a function to check current line. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/observability.md | 50 | export OTEL_EXPORTER_OTLP_HEADERS=x-honeycomb-team=YOUR_API_KEY | CODE |
| HIGH | skills/moltbook/SKILL.md | 63 | Authorization: Bearer YOUR_API_KEY | CODE |
| HIGH | skills/trello/SKILL.md | 22 | export TRELLO_API_KEY="your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …3/kaggle/bitterbot_memory_py/bitterbot_memory/frame.py | 122 | CODE | |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/vllm_client.py | 118 | CODE | |
| LOW | benchmarks/longmemeval-v2/run.py | 32 | CODE | |
| LOW | benchmarks/longmemeval-v2/run.py | 169 | CODE | |
| LOW | benchmarks/longmemeval-v2/core.py | 213 | CODE | |
| LOW | benchmarks/longmemeval-v2/capacity_pilot.py | 48 | CODE | |
| LOW | benchmarks/longmemeval-v2/prepare.py | 20 | CODE | |
| LOW | benchmarks/longmemeval-v2/diagnostics/score_pilot.py | 16 | CODE | |
| LOW | benchmarks/longmemeval-v2/diagnostics/small_pilot.py | 101 | CODE | |
| LOW | skills/model-usage/scripts/model_usage.py | 122 | CODE | |
| LOW | skills/skill-creator/scripts/init_skill.py | 227 | CODE | |
| LOW | skills/skill-creator/scripts/package_skill.py | 20 | CODE | |
| LOW | skills/nano-banana-pro/scripts/generate_image.py | 32 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …le/bitterbot_memory_py/bitterbot_memory/vllm_client.py | 138 | except (urllib.error.URLError, TimeoutError): | CODE |
| HIGH | benchmarks/longmemeval-v2/capacity_pilot.py | 34 | except (OSError,ValueError,KeyError):pass | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | deploy/relay-fleet/.terraform.lock.hcl | 1 | # This file is maintained automatically by "terraform init". | COMMENT |
| MEDIUM | scripts/create-dmg.sh | 4 | # Create a styled DMG containing the app bundle + /Applications symlink. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | skills/skill-creator/scripts/init_skill.py | 256 | Initialize a new skill directory with template SKILL.md. Args: skill_name: Name of the skill p | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy/relay-fleet/scripts/update-dnsaddr.sh | 21 | # Usage: | COMMENT |
| LOW | deploy/relay-fleet/scripts/fleet-stats.sh | 12 | # Usage: | COMMENT |
| LOW | scripts/create-dmg.sh | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/auth-monitor.sh | 38 | # Check if we notified recently | COMMENT |
| LOW | scripts/auth-monitor.sh | 46 | # Check if we can still use bitterbot | COMMENT |
| LOW | skills/skill-creator/scripts/init_skill.py | 271 | # Check if directory already exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aggle/bitterbot_memory_py/bitterbot_memory/__init__.py | 12 | __all__ = ["BitterbotMemory", "MemoryStore", "open_store"] | CODE |
| LOW | …3/kaggle/bitterbot_memory_py/bitterbot_memory/agent.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/vllm_client.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …le/bitterbot_memory_py/bitterbot_memory/arc_adapter.py | 41 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/auto-reply/chunk.test.ts | 354 | const text = "```python\ndef my_function():\n x = 1\n\n y = 2\n return x + y\n```"; | CODE |
| LOW | src/auto-reply/chunk.test.ts | 359 | const fence = "```python\ndef my_function():\n x = 1\n\n y = 2\n return x + y\n```"; | CODE |
| LOW | src/gateway/server-http.ts | 544 | async function handleRequest(req: IncomingMessage, res: ServerResponse) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …bitterbot_longmemeval_oracle_biological_evaluated.json | 708 | "hypothesis": "I don't have enough information to answer this question.\n\nThe conversation excerpts mention your | CODE |