A modern replacement for Redis and Memcached
This report presents the forensic synthetic code analysis of dragonflydb/dragonfly, a C++ project with 30,868 GitHub stars. SynthScan v2.0 examined 157,766 lines of code across 639 source files, recording 998 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 6.9 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).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
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 998 distinct pattern matches across 16 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 |
|---|---|---|---|---|
| LOW | tools/plot_memtier_latency.py | 53 | def extract_latency_timeseries(data, operation, ignore_last_seconds=3): | CODE |
| LOW | tools/plot_memtier_latency.py | 132 | def plot_latency_chart_interactive(data, output_file="latency_chart.html", open_browser=True): | CODE |
| LOW⚡ | tools/release_notes_generator.py | 1062 | def _build_commit_user_content(commit: Commit) -> str: | CODE |
| LOW⚡ | tools/release_notes_generator.py | 1404 | def _normalize_blacklist_terms(raw_terms: list[str]) -> tuple[str, ...]: | CODE |
| LOW⚡ | tools/release_notes_generator.py | 1414 | def _canonicalize_blacklist_text(text: str) -> str: | CODE |
| LOW⚡ | tools/release_notes_generator.py | 1418 | def _matches_highlight_blacklist( | CODE |
| LOW | tools/release_notes_generator.py | 551 | def _dedupe_highlights_section(notes: str) -> str: | CODE |
| LOW | tools/release_notes_generator.py | 1448 | def _score_announce_candidate(analyzed_commit: AnalyzedCommit, promoted_theme_size: int) -> float: | CODE |
| LOW | tools/release_notes_generator.py | 1474 | def _select_announce_highlights( | CODE |
| LOW | tools/release_notes_generator.py | 1508 | def build_composition_payload( | CODE |
| LOW | tools/release_notes_generator.py | 1565 | def _build_release_notes_user_message(payload: CompositionPayload) -> str: | CODE |
| LOW | tools/release_notes_generator.py | 1609 | def _build_announce_user_message(payload: CompositionPayload) -> str: | CODE |
| LOW | tools/release_notes_generator.py | 1677 | def _build_release_notes_empty_output(payload: CompositionPayload) -> str: | CODE |
| LOW | tools/release_notes_generator.py | 1684 | def _build_announce_empty_output(payload: CompositionPayload) -> str: | CODE |
| LOW | tools/release_notes_generator.py | 1701 | def _post_process_release_notes(_backend_name: str, notes: str) -> str: | CODE |
| LOW⚡ | tools/release_notes_generator.py | 523 | def _parse_commit_analysis_json(text: str) -> CommitAnalysis: | STRING |
| LOW | tools/cluster_mgr.py | 241 | def build_config_from_existing(args): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 40 | def monotonically_increasing_port_number(): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 229 | async def wait_for_ft_index_creation(client, idx_name, timeout=5): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 255 | async def check_for_no_state_status(admin_clients): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 285 | async def test_cluster_commands_fails_when_not_emulate(self, async_client: aioredis.Redis): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 297 | def test_cluster_slots_command(self, df_server, cluster_client: RedisCluster): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 302 | def test_cluster_help_command(self, cluster_client: RedisCluster): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 320 | def test_cluster_slots_command(self, df_server, cluster_client: RedisCluster): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 362 | async def test_emulated_cluster_with_replicas(df_factory): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 466 | async def test_cluster_managed_service_info(df_factory): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 660 | async def test_cluster_slot_ownership_changes(df_factory: DflyInstanceFactory): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 1785 | async def test_cluster_replication_migration( | CODE |
| LOW | tests/dragonfly/cluster_test.py | 1859 | async def test_start_replication_during_migration( | CODE |
| LOW | tests/dragonfly/cluster_test.py | 1923 | async def test_keys_expiration_during_migration(df_factory: DflyInstanceFactory): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 1966 | async def test_snapshoting_during_migration( | CODE |
| LOW | tests/dragonfly/cluster_test.py | 2056 | async def test_cluster_migration_cancel(df_factory: DflyInstanceFactory): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 2112 | async def test_cluster_migration_huge_container(df_factory: DflyInstanceFactory): | CODE |
| LOW | tests/dragonfly/cluster_test.py | 2170 | async def test_cluster_migration_while_seeding( | CODE |
| LOW | tests/dragonfly/cluster_test.py | 2226 | async def test_cluster_migrations_sequence( | CODE |
| LOW | tests/dragonfly/cluster_test.py | 789 | async def test_cluster_replica_sets_non_owned_keys(df_factory: DflyInstanceFactory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 897 | async def test_cluster_flush_slots_after_config_change(df_factory: DflyInstanceFactory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1017 | async def test_cluster_blocking_command(df_server): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1060 | async def test_blocking_commands_cancel(df_factory, df_seeder_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1094 | async def test_cluster_native_client( | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1334 | async def test_cluster_flushall_during_migration( | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1386 | async def test_cluster_data_migration(df_factory: DflyInstanceFactory, interrupt: bool): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1461 | async def test_migration_serializer_expired_fields(df_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1503 | async def test_migration_with_key_ttl(df_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1546 | async def test_network_disconnect_during_migration(df_factory, proxy_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1605 | async def test_cluster_fuzzymigration( | STRING |
| LOW | tests/dragonfly/cluster_test.py | 1744 | async def test_cluster_config_reapply(df_factory: DflyInstanceFactory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2392 | async def test_replicate_disconnect_cluster( | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2460 | async def is_first_master_conn_down(conn): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2489 | def is_offset_eq_master_repl_offset(replication_info: str): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2509 | async def test_replicate_redis_cluster(redis_cluster, df_factory, df_seeder_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2565 | async def test_replicate_disconnect_redis_cluster( | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2654 | async def test_cluster_memory_consumption_migration(df_factory: DflyInstanceFactory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2703 | async def test_migration_timeout_on_sync(df_factory: DflyInstanceFactory, df_seeder_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2778 | async def test_migration_one_after_another(df_factory: DflyInstanceFactory, df_seeder_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2851 | async def test_migration_rebalance_node(df_factory: DflyInstanceFactory, df_seeder_factory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 2995 | async def test_cluster_sharded_pub_sub(df_factory: DflyInstanceFactory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 3039 | async def test_cluster_sharded_pubsub_shard_commands(df_factory: DflyInstanceFactory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 3081 | async def test_cluster_migration_errors_num(df_factory: DflyInstanceFactory): | STRING |
| LOW | tests/dragonfly/cluster_test.py | 3126 | async def test_cluster_sharded_pub_sub_migration(df_factory: DflyInstanceFactory): | STRING |
| 447 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/release_notes_generator.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| LOW | tools/generate-tls-files.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/packaging/generate_debian_package.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/local/monitoring/prometheus/prometheus.yml | 1 | # my global config | COMMENT |
| LOW | tools/replay/workers.go | 301 | } | COMMENT |
| LOW | tests/dragonfly/search_test.py | 1281 | assert result[0] == 10 | COMMENT |
| LOW | tests/dragonfly/search_test.py | 1301 | # "2", | COMMENT |
| LOW | tests/dragonfly/search_test.py | 1321 | # result = await async_client.execute_command( | COMMENT |
| LOW | tests/dragonfly/search_test.py | 1341 | # See: src/core/search/indices.cc:622 - GeoIndex::RadiusSearch doesn't sort results | COMMENT |
| LOW | tests/dragonfly/bull_sidekiq_test.py | 21 | # @dfly_args({"lock_on_hashtags": True}) | COMMENT |
| LOW | tests/integration/.run_ioredis_valid_test.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/fakeredis/test/test_mixins/test_scan.py | 81 | # key_to_remove = keys[0] | COMMENT |
| LOW | .claude/skills/benchmark/scripts/capture_result.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .claude/skills/benchmark/scripts/monitor_fill.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .claude/skills/benchmark/scripts/bench_server.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | contrib/charts/dragonfly/Chart.yaml | 1 | apiVersion: v2 | COMMENT |
| LOW | contrib/charts/dragonfly/values.yaml | 41 | podSecurityContext: {} | COMMENT |
| LOW | contrib/charts/dragonfly/values.yaml | 121 | # -- TLS certificate | COMMENT |
| LOW | contrib/charts/dragonfly/values.yaml | 201 | # kind: ClusterIssuer | COMMENT |
| LOW | .github/bullmq-skipped-tests.txt | 1 | # BullMQ tests excluded from CI runs against Dragonfly | COMMENT |
| LOW | .github/workflows/fuzz-pr.yml | 1 | # Run AFL++ fuzzing on PRs that touch C++ code. | COMMENT |
| LOW | fuzz/triage_crashes.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/core/oah_table.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/oah_table.h | 21 | #include "core/simd_op.h" | COMMENT |
| LOW | src/core/oah_set.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/cms.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/topk.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/topk.h | 21 | COMMENT | |
| LOW | src/core/topk.h | 41 | // degrade overall database throughput, hence the strict separation of concerns. | COMMENT |
| LOW | src/core/topk.h | 101 | // | COMMENT |
| LOW | src/core/top_keys.h | 1 | // Copyright 2025, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/top_keys.h | 21 | // increments, and does not use PMR allocators (which are required for strict memory | COMMENT |
| LOW | src/core/sharded_hash_map.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/sharded_hash_map.h | 21 | // Each shard contains an absl::flat_hash_map protected by two fiber-aware locks: | COMMENT |
| LOW | src/core/sharded_hash_map.h | 41 | // Thread safety guarantees: | COMMENT |
| LOW | src/core/sharded_hash_map.h | 121 | COMMENT | |
| LOW | src/core/oah_ptr.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/string_set.h | 1 | // Copyright 2022, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/dash_internal.h | 1 | // Copyright 2024, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/dash_internal.h | 1261 | // we extract local_depth bits from the left part of the hash. Since we extended local_depth, | COMMENT |
| LOW | src/core/dash_internal.h | 1281 | // of items with the same bucket id, say 0. Lots of items will go to the initial segment | COMMENT |
| LOW | src/core/dash_internal.h | 1501 | COMMENT | |
| LOW | src/core/glob_matcher.h | 1 | // Copyright 2025, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/glob_matcher.h | 41 | private: | COMMENT |
| LOW | src/core/compact_object.h | 1 | // Copyright 2024, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/compact_object.h | 261 | // For NONE_ENC: `encoded` is the user-visible bytes; the reply can stream | COMMENT |
| LOW | src/core/dict_builder.h | 1 | // Copyright 2025, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/dict_builder.h | 21 | unsigned step); | COMMENT |
| LOW | src/core/stream_node.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/flatbuffers.h | 1 | // Copyright 2024, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/tiering_types.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/bptree_set.h | 81 | ToRank(rank, &path); | COMMENT |
| LOW | src/core/size_tracking_channel.h | 1 | // Copyright 2023, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/dense_set.h | 1 | // Copyright 2022, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/dense_set.h | 21 | // dict requires to allocate dictEntry per each addition in addition to the supplied key. | COMMENT |
| LOW | src/core/qlist.h | 1 | // Copyright 2024, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/ptr_vector.h | 1 | // Copyright 2024, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/simd_op.h | 1 | // Copyright 2026, DragonflyDB authors. All rights reserved. | COMMENT |
| LOW | src/core/simd_op.h | 21 | COMMENT | |
| LOW | src/core/allocation_tracker.h | 1 | // Copyright 2024, DragonflyDB authors. All rights reserved. | COMMENT |
| 172 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tools/release_notes_generator.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/release_notes_generator.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/release_notes_generator.py | 1057 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/release_notes_generator.py | 1059 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 81 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 83 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 330 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 332 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 590 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 592 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 909 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 911 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 953 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 955 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 1029 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 1031 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 1314 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 1316 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 1791 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/release_notes_generator.py | 1793 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/release_notes_generator.py | 518 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tools/release_notes_generator.py | 520 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tools/pubsub/celery-test.py | 80 | # ------------------------ | COMMENT |
| MEDIUM⚡ | tools/pubsub/celery-test.py | 82 | # ------------------------ | COMMENT |
| MEDIUM⚡ | tools/pubsub/celery-test.py | 91 | # ------------------------ | COMMENT |
| MEDIUM⚡ | tools/pubsub/celery-test.py | 93 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 20 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 22 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 65 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 67 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 166 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 168 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 185 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 187 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 247 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 249 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 456 | # ------------------------ | COMMENT |
| MEDIUM | tools/pubsub/celery-test.py | 458 | # ------------------------ | COMMENT |
| MEDIUM | .github/bullmq-skipped-tests.txt | 8 | # ── DRAGONFLY BUG ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/bullmq-skipped-tests.txt | 18 | # ── FLAKY ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | fuzz/triage_crashes.sh | 18 | # ─── Colors ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | fuzz/triage_crashes.sh | 26 | # ─── Config ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | fuzz/triage_crashes.sh | 49 | # ─── Args ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | fuzz/triage_crashes.sh | 75 | # ─── Working directory ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | fuzz/triage_crashes.sh | 84 | # ─── Extract zip ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | fuzz/triage_crashes.sh | 89 | # ─── Find crash archives ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | fuzz/triage_crashes.sh | 101 | # ─── Locate replay_crash.py ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | fuzz/triage_crashes.sh | 110 | # ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | fuzz/triage_crashes.sh | 159 | # ─── Main loop ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | fuzz/triage_crashes.sh | 321 | # ─── Summary ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 122 | // ┌────────────────────┐ ┌───────────────────┐ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 125 | // └────────┬───────────┘ └────────┬──────────┘ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 128 | // ┌───────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 131 | // └────────────────────┬──────────────────────────┘ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 134 | // ┌───────────────────────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 137 | // └────────────────────┬──────────────────────────┘ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 139 | // ┌───────────┴───────────┐ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 141 | // ┌─────────────────┐ ┌──────────────────────┐ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 145 | // └────────┬────────┘ └──────────┬───────────┘ | COMMENT |
| MEDIUM⚡ | src/server/serializer_base.h | 148 | // ┌───────────────────────────────────────────────┐ | COMMENT |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/plot_memtier_latency.py | 152 | print("Error: No operation data found in JSON") | CODE |
| MEDIUM | tools/plot_memtier_latency.py | 384 | print("Error: No operation data found in JSON") | CODE |
| MEDIUM | tools/plot_memtier_latency.py | 573 | print(f"Error: Input file '{input_file}' not found!") | CODE |
| LOW | tools/defrag_mem_test.py | 100 | except Exception as e: | CODE |
| LOW | tools/defrag_mem_test.py | 159 | except Exception as e: | CODE |
| MEDIUM | tools/defrag_mem_test.py | 76 | def stats_check(connection, condition): | CODE |
| LOW | tools/release_notes_generator.py | 941 | except Exception: | CODE |
| LOW | tools/release_notes_generator.py | 1163 | except Exception as e: | CODE |
| LOW | tools/release_notes_generator.py | 2087 | except Exception as e: | CODE |
| LOW | tools/cluster_mgr.py | 70 | except Exception as e: | CODE |
| LOW | tools/defrag_db.py | 41 | except Exception as e: | STRING |
| MEDIUM | tools/defrag_db.py | 47 | print("Error recycling", recycled) | STRING |
| LOW | tools/pubsub/stress.py | 402 | except Exception as e: | CODE |
| LOW | tools/pubsub/celery-test.py | 121 | except Exception: | CODE |
| LOW | tools/pubsub/celery-test.py | 209 | except Exception: | CODE |
| LOW | tools/pubsub/celery-test.py | 234 | except Exception: | CODE |
| LOW | tools/pubsub/celery-test.py | 311 | except Exception: | CODE |
| LOW | tools/pubsub/celery-test.py | 379 | except Exception as e: | CODE |
| LOW | tests/dragonfly/cluster_test.py | 82 | except Exception: | CODE |
| LOW | tests/dragonfly/cluster_test.py | 3630 | except Exception: | STRING |
| LOW | tests/dragonfly/instance.py | 524 | except Exception: | CODE |
| LOW | tests/dragonfly/instance.py | 529 | except Exception as e: | CODE |
| LOW | tests/dragonfly/conftest.py | 67 | except Exception: | CODE |
| LOW | tests/dragonfly/conftest.py | 115 | except Exception: | CODE |
| LOW | tests/dragonfly/conftest.py | 125 | except Exception: | CODE |
| LOW | tests/dragonfly/conftest.py | 339 | except Exception: | CODE |
| LOW | tests/dragonfly/conftest.py | 341 | except Exception as e: | CODE |
| LOW | tests/dragonfly/search_benchmark_utils.py | 168 | except Exception as e: | CODE |
| LOW | tests/dragonfly/acl_family_test.py | 228 | except Exception as e: | CODE |
| LOW | tests/dragonfly/connection_test.py | 227 | except Exception: | STRING |
| LOW | tests/dragonfly/connection_test.py | 1403 | except Exception: | STRING |
| LOW | tests/dragonfly/connection_test.py | 1483 | except Exception: | STRING |
| LOW | tests/dragonfly/connection_test.py | 1498 | except Exception: | STRING |
| LOW | tests/dragonfly/utility.py | 737 | except Exception as e: | CODE |
| MEDIUM | tests/dragonfly/replication_test.py | 3238 | def replicate_inside_multi(): | CODE |
| LOW | tests/dragonfly/replication_test.py | 5044 | except Exception: | CODE |
| LOW | tests/dragonfly/replication_test.py | 5056 | except Exception: | CODE |
| LOW | tests/dragonfly/replication_test.py | 3937 | except Exception as e: | STRING |
| LOW | tests/dragonfly/replication_test.py | 3947 | except Exception: | STRING |
| LOW | tests/dragonfly/eval_test.py | 499 | except Exception: | CODE |
| LOW | tests/dragonfly/eval_test.py | 510 | except Exception: | CODE |
| LOW | tests/dragonfly/shutdown_test.py | 103 | except Exception as e: | CODE |
| MEDIUM | tests/dragonfly/search_test.py | 836 | def test_redis_om(df_server): | CODE |
| LOW⚡ | tests/dragonfly/search_test.py | 965 | except Exception: | CODE |
| LOW⚡ | tests/dragonfly/search_test.py | 969 | except Exception: | CODE |
| LOW⚡ | tests/dragonfly/search_test.py | 978 | except Exception: | CODE |
| LOW | tests/dragonfly/search_test.py | 1430 | except Exception as e: | CODE |
| LOW⚡ | tests/dragonfly/snapshot_test.py | 269 | except Exception: | CODE |
| LOW⚡ | tests/dragonfly/snapshot_test.py | 284 | except Exception as e: | CODE |
| LOW | tests/dragonfly/snapshot_test.py | 692 | except Exception: | CODE |
| LOW | tests/dragonfly/snapshot_test.py | 790 | except Exception: | CODE |
| LOW | tests/dragonfly/snapshot_test.py | 804 | except Exception: | CODE |
| MEDIUM | tests/dragonfly/snapshot_test.py | 265 | def save(): | CODE |
| MEDIUM | tests/dragonfly/snapshot_test.py | 280 | def save_operation(operation_id): | CODE |
| LOW | …fly/valkey_search/valkey_search_test_case_dragonfly.py | 91 | except Exception as e: | CODE |
| LOW⚡ | …fly/valkey_search/valkey_search_test_case_dragonfly.py | 107 | except Exception as e: | CODE |
| LOW | tests/dragonfly/valkey_search/util.py | 30 | except Exception: | CODE |
| LOW | tests/dragonfly/valkey_search/util.py | 55 | except Exception: | CODE |
| LOW | tests/dragonfly/valkey_search/util.py | 80 | except Exception: | CODE |
| LOW | tests/fakeredis/test/conftest.py | 15 | except Exception: | CODE |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/cache_testing.py | 3 | CODE | |
| LOW | tools/defrag_mem_test.py | 4 | CODE | |
| LOW | tools/defrag_mem_test.py | 5 | CODE | |
| LOW | tools/release_notes_generator.py | 30 | CODE | |
| LOW | tools/eviction/fill_db.py | 43 | CODE | |
| LOW | tests/dragonfly/seeder_test.py | 7 | CODE | |
| LOW | tests/dragonfly/seeder_test.py | 8 | CODE | |
| LOW | tests/dragonfly/server_family_test.py | 11 | CODE | |
| LOW | tests/dragonfly/acl_family_test.py | 6 | CODE | |
| LOW | tests/dragonfly/sentinel_test.py | 8 | CODE | |
| LOW | tests/dragonfly/sentinel_test.py | 9 | CODE | |
| LOW | tests/dragonfly/shutdown_test.py | 5 | CODE | |
| LOW | tests/dragonfly/set_test.py | 2 | CODE | |
| LOW | tests/dragonfly/set_test.py | 3 | CODE | |
| LOW | tests/dragonfly/set_test.py | 4 | CODE | |
| LOW | tests/dragonfly/json_test.py | 4 | CODE | |
| LOW | tests/dragonfly/config_test.py | 4 | CODE | |
| LOW | tests/dragonfly/config_test.py | 5 | CODE | |
| LOW | tests/dragonfly/cluster_mgr_test.py | 5 | CODE | |
| LOW | tests/dragonfly/tls_conf_test.py | 3 | CODE | |
| LOW | tests/integration/async.py | 14 | CODE | |
| LOW | tests/fakeredis/test/test_transactions.py | 1 | CODE | |
| LOW | tests/fakeredis/test/test_json/test_json.py | 5 | CODE | |
| LOW | tests/fakeredis/test/test_json/test_json_commands.py | 3 | CODE | |
| LOW | tests/fakeredis/test/test_mixins/test_set_commands.py | 1 | CODE | |
| LOW | …sts/fakeredis/test/test_mixins/test_string_commands.py | 1 | CODE | |
| LOW | …/fakeredis/test/test_mixins/test_sortedset_commands.py | 1 | CODE | |
| LOW | tests/fakeredis/test/test_mixins/test_scripting.py | 1 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 12 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 13 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 14 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 15 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 16 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 17 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 18 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 19 | CODE | |
| LOW | src/core/generate_bin_sizes.py | 4 | CODE | |
| LOW | src/core/generate_bin_sizes.py | 5 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/dragonfly/cluster_test.py | 47 | # Create a generator object | COMMENT |
| MEDIUM | tests/dragonfly/connection_test.py | 546 | # Create a publisher that sends constantly messages to the channel | STRING |
| MEDIUM | tests/dragonfly/replication_test.py | 2158 | # Create a new aux index on master | COMMENT |
| MEDIUM | tests/dragonfly/replication_test.py | 2766 | # Create an empty hashmap | STRING |
| MEDIUM | tests/dragonfly/replication_test.py | 2820 | # Create an empty hashmap | STRING |
| MEDIUM | tests/dragonfly/replication_test.py | 2869 | # Create a search index with HNSW vector field on the new master | STRING |
| MEDIUM | tests/dragonfly/search_test.py | 1031 | # Create an index with all field types on master | COMMENT |
| MEDIUM | tests/dragonfly/memory_test.py | 43 | # Create a Dragonfly and fill it up with `type` until it reaches `min_rss`, then make sure that | COMMENT |
| MEDIUM | …fly/valkey_search/valkey_search_test_case_dragonfly.py | 27 | """This class represents a Dragonfly instance as a valkey server node""" | STRING |
| MEDIUM | tests/dragonfly/valkey_search/__init__.py | 31 | # Create a mock module for valkey_search_test_case | COMMENT |
| MEDIUM⚡ | .github/workflows/docker-dev-release.yml | 134 | # Create a temporary container and copy the binary | COMMENT |
| MEDIUM⚡ | .github/workflows/docker-dev-release.yml | 139 | # Create a tar archive | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 166 | # Create a rule that automatically prints stacktrace upon segfault | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/parse_allocator_tracking_logs.py | 13 | CODE | |
| LOW | tools/defrag_mem_test.py | 76 | CODE | |
| LOW | tools/release_notes_generator.py | 675 | CODE | |
| LOW | tools/cluster_mgr.py | 111 | CODE | |
| LOW | tools/cache_logs_player.py | 22 | CODE | |
| LOW | tools/pubsub/stress.py | 109 | CODE | |
| LOW | tools/pubsub/stress.py | 381 | CODE | |
| LOW | tools/pubsub/stress.py | 150 | CODE | |
| LOW | tools/pubsub/stress.py | 229 | CODE | |
| LOW | tools/pubsub/stress.py | 153 | CODE | |
| LOW | tools/pubsub/celery-test.py | 97 | CODE | |
| LOW | tools/pubsub/celery-test.py | 190 | CODE | |
| LOW | tools/pubsub/celery-test.py | 252 | CODE | |
| LOW | tests/dragonfly/cluster_test.py | 1605 | CODE | |
| LOW | tests/dragonfly/cluster_test.py | 1687 | CODE | |
| LOW | tests/dragonfly/instance.py | 65 | CODE | |
| LOW | tests/dragonfly/conftest.py | 72 | CODE | |
| LOW | tests/dragonfly/tiering_test.py | 429 | CODE | |
| LOW | tests/dragonfly/tiering_test.py | 462 | CODE | |
| LOW | tests/dragonfly/connection_test.py | 256 | CODE | |
| LOW | tests/dragonfly/connection_test.py | 2613 | CODE | |
| LOW | tests/dragonfly/connection_test.py | 62 | CODE | |
| LOW | tests/dragonfly/connection_test.py | 2635 | CODE | |
| LOW | tests/dragonfly/utility.py | 270 | CODE | |
| LOW | tests/dragonfly/utility.py | 710 | CODE | |
| LOW | tests/dragonfly/utility.py | 982 | CODE | |
| LOW | tests/dragonfly/replication_test.py | 58 | CODE | |
| LOW | tests/dragonfly/seeder/__init__.py | 413 | CODE | |
| LOW | tests/dragonfly/seeder/__init__.py | 471 | CODE | |
| LOW | tests/fakeredis/test/test_hypothesis/base.py | 263 | CODE | |
| LOW | fuzz/resp_mutator.py | 373 | CODE | |
| LOW | fuzz/memcache_mutator.py | 83 | CODE | |
| LOW | fuzz/memcache_mutator.py | 176 | CODE | |
| LOW | fuzz/memcache_mutator.py | 236 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/dragonfly/replication_test.py | 3174 | # Step 1: Populate master with 100 streams, each containing 200 entries | STRING |
| LOW⚡ | tests/dragonfly/replication_test.py | 3183 | # Step 2: Trim each stream to a random size between 70 and 200 | STRING |
| LOW | tests/dragonfly/replication_test.py | 3197 | # Step 3: Trim all streams to 0 | STRING |
| LOW | .claude/skills/benchmark-report/SKILL.md | 11 | ## Step 0: Interview before writing | COMMENT |
| LOW | .claude/skills/benchmark-report/SKILL.md | 39 | ## Step 1: Scan and parse | COMMENT |
| LOW | .claude/skills/benchmark-report/SKILL.md | 65 | ## Step 2: Identify systems under test | COMMENT |
| LOW | .claude/skills/benchmark-report/SKILL.md | 79 | ## Step 3: Generate charts | COMMENT |
| LOW | .claude/skills/benchmark-report/SKILL.md | 92 | ## Step 4: Write the report | COMMENT |
| LOW | .claude/skills/reproduce-fuzz-crash/SKILL.md | 21 | ### Step 1: Parse the URL | COMMENT |
| LOW | .claude/skills/reproduce-fuzz-crash/SKILL.md | 31 | ### Step 2: Download artifacts | COMMENT |
| LOW | .claude/skills/reproduce-fuzz-crash/SKILL.md | 56 | ### Step 3: Determine mode | COMMENT |
| LOW | .claude/skills/reproduce-fuzz-crash/SKILL.md | 62 | ### Step 4: Check Dragonfly binary | COMMENT |
| LOW | .claude/skills/reproduce-fuzz-crash/SKILL.md | 78 | ### Step 5: Run triage_crashes.sh | COMMENT |
| LOW | .claude/skills/reproduce-fuzz-crash/SKILL.md | 88 | ### Step 6: Analyze and report | COMMENT |
| LOW | docs/build-from-source.md | 8 | ## Step 1 - install dependencies | COMMENT |
| LOW | docs/build-from-source.md | 38 | ## Step 2 - clone the project | COMMENT |
| LOW | docs/build-from-source.md | 44 | ## Step 3 - configure & build it | COMMENT |
| LOW | docs/build-from-source.md | 74 | ## Step 4 - voilà | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/plot_memtier_latency.py | 571 | # Check if input file exists | COMMENT |
| LOW | tools/balls_bins.py | 26 | # Check if any bin has K or more balls | COMMENT |
| LOW | tools/docker/healthcheck.sh | 10 | # Set trap to ensure cleanup runs on exit, regardless of how the script exits | COMMENT |
| LOW | tests/dragonfly/replication_test.py | 3844 | # Check if replica data is consistent | STRING |
| LOW⚡ | …fly/valkey_search/valkey_search_test_case_dragonfly.py | 102 | # Check if replicas are connected | COMMENT |
| LOW | tests/dragonfly/valkey_search/conftest.py | 9 | # Check if integration directory exists | COMMENT |
| LOW | tests/dragonfly/valkey_search/__init__.py | 13 | # Check if integration directory exists before attempting import | COMMENT |
| LOW | …ts/dragonfly/valkey_search/sync-valkey-search-tests.sh | 40 | # Check if the file doesn't already have 'from __future__ import annotations' | COMMENT |
| LOW⚡ | .github/workflows/docker-dev-release.yml | 124 | # Check if version starts with a release version (v*.*.*) | COMMENT |
| LOW | fuzz/memcache_mutator.py | 191 | # Check if this is a store command that has a data block | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/generate-tls-files.sh | 6 | # Example usage: | COMMENT |
| LOW | .claude/skills/benchmark/scripts/capture_result.sh | 8 | # Usage: | COMMENT |
| LOW | .claude/skills/benchmark/scripts/monitor_fill.sh | 8 | # Usage: | COMMENT |
| LOW | .claude/skills/benchmark/scripts/bench_server.sh | 12 | # Usage: | COMMENT |
| LOW | fuzz/triage_crashes.sh | 5 | # Usage: | COMMENT |
| LOW | src/common/heap_size.h | 10 | // Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/json_benchmark.py | 30 | r.execute_command('JSON.SET', key, '.', '{"a":123456, "b": "hello", "nested": {"abc": "ffffff", "bfb": null}}') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/release_notes_generator.py | 99 | # generated files, large refactors) would otherwise dominate the context window | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …sts/fakeredis/test/test_json/test_json_arr_commands.py | 24 | assert r.json().arrlen("fake-key") is None | CODE |
| LOW | src/redis/crc64.c | 139 | char li[] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed " | CODE |
| LOW | src/redis/crc64.c | 139 | char li[] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed " | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/dragonfly/connection_test.py | 1636 | CODE | |
| LOW | tests/dragonfly/utility.py | 514 | CODE | |
| LOW | tests/dragonfly/seeder/__init__.py | 152 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tools/release_notes_generator.py | 129 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/fakeredis/test/test_hypothesis/__init__.py | 1 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/dragonfly/replication_test.py | 3174 | # Step 1: Populate master with 100 streams, each containing 200 entries | STRING |
| LOW⚡ | tests/dragonfly/replication_test.py | 3183 | # Step 2: Trim each stream to a random size between 70 and 200 | STRING |
| LOW | tests/dragonfly/replication_test.py | 3197 | # Step 3: Trim all streams to 0 | STRING |