self-hosted, distributed Durable Objects
This report summarizes scanner evidence for denoland/celld, a Rust project with 5,421 GitHub stars. SynthScan examined 157,093 lines of code across 238 source files, recording 645 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 4.5 (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.
Can maintainers explain intent, assumptions, and trade-offs? 594 finding(s).
Are imports declared and package/API names verified? 1 finding(s).
Are wrappers, guards, and repeated structures necessary? 57 finding(s).
Which changes need focused human review? 645 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 645 distinct pattern matches across 4 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 | crates/ltx/src/paged_vfs.rs | 1 | //! paged_vfs.rs — a SQLite VFS that faults main-db pages in from the bucket. | COMMENT |
| LOW | crates/ltx/src/paged_vfs.rs | 21 | //! hydrated, and a run that arrives with a fault only fills pages not yet | COMMENT |
| LOW | crates/ltx/src/paged_vfs.rs | 81 | reader: Arc<dyn PageReader>, | COMMENT |
| LOW | crates/ltx/src/paged_vfs.rs | 161 | // background hydration step never stalls a foreground fault. | COMMENT |
| LOW | crates/ltx/src/replica.rs | 1 | //! replica.rs — single-replica sync loop + restore orchestration. | COMMENT |
| LOW | crates/ltx/src/replica.rs | 21 | //! `ltx/0/`. The snapshot level (`SnapshotLevel = 9`, | COMMENT |
| LOW | crates/ltx/src/replica.rs | 61 | /// The compaction level which full snapshots are held at. | COMMENT |
| LOW | crates/ltx/src/replica.rs | 221 | /// | COMMENT |
| LOW | crates/ltx/src/replica.rs | 341 | } | COMMENT |
| LOW | crates/ltx/src/replica.rs | 361 | /// `Replica`; our synchronous `Db` does not, so the orchestration lives here | COMMENT |
| LOW | crates/ltx/src/replica.rs | 801 | COMMENT | |
| LOW | crates/ltx/src/replica.rs | 921 | /// and reconstructs the full SQLite database image. | COMMENT |
| LOW | crates/ltx/src/wal.rs | 1 | //! wal.rs — SQLite WAL header/frame parsing + cumulative SQLite checksums. | COMMENT |
| LOW | crates/ltx/src/wal.rs | 21 | //! [16..20] salt-1 | COMMENT |
| LOW | crates/ltx/src/wal.rs | 61 | COMMENT | |
| LOW | crates/ltx/src/wal.rs | 81 | /// `0x377f0682` nor `0x377f0683`. | COMMENT |
| LOW | crates/ltx/src/wal.rs | 101 | /// `offset (<n>) must be greater than the wal header size (<m>)` — passed to | COMMENT |
| LOW | crates/ltx/src/wal.rs | 121 | }, | COMMENT |
| LOW | crates/ltx/src/wal.rs | 181 | COMMENT | |
| LOW | crates/ltx/src/wal.rs | 201 | /// bytes from `tail_base` onward — the shape a tail read produces without | COMMENT |
| LOW | crates/ltx/src/wal.rs | 241 | salt2: 0, | COMMENT |
| LOW | crates/ltx/src/wal.rs | 441 | COMMENT | |
| LOW | crates/ltx/src/lz4_block.rs | 1 | //! Byte-compatible LZ4 block compression for `superfly/ltx` v0.5.2. | COMMENT |
| LOW | crates/ltx/src/error.rs | 1 | //! error.rs — thiserror-based error model + `Result` alias. | COMMENT |
| LOW | crates/ltx/src/error.rs | 21 | /// No snapshot is available for restore. | COMMENT |
| LOW | crates/ltx/src/error.rs | 41 | /// Corresponds to `ErrLTXMissing` in litestream.go:36. | COMMENT |
| LOW | crates/ltx/src/error.rs | 61 | /// The object store refused the credential (HTTP 403). | COMMENT |
| LOW | crates/ltx/src/error.rs | 261 | /// | COMMENT |
| LOW | crates/ltx/src/lib.rs | 1 | #![warn(clippy::disallowed_methods, clippy::disallowed_types)] | COMMENT |
| LOW | crates/ltx/src/lib.rs | 101 | COMMENT | |
| LOW | crates/ltx/src/lib.rs | 221 | /// A 64-bit LTX rolling / file checksum. | COMMENT |
| LOW | crates/ltx/src/lib.rs | 321 | Error::Other(format!("invalid position checksum: {:?}", checksum_str).into()) | COMMENT |
| LOW | crates/ltx/src/lib.rs | 381 | // repeated separators, resolves `.`/`..`, and strips trailing slashes. A | COMMENT |
| LOW | crates/ltx/src/lib.rs | 401 | /// `pub(crate)` so `replica_url::clean_replica_url_path` can reuse Go's | COMMENT |
| LOW | crates/ltx/src/lib.rs | 521 | // | COMMENT |
| LOW | crates/ltx/src/lib.rs | 541 | COMMENT | |
| LOW | crates/ltx/src/ltx.rs | 1 | //! ltx.rs — LTX (Lite Transaction) file reader/writer + CRC64-ISO checksums. | COMMENT |
| LOW | crates/ltx/src/ltx.rs | 41 | // Wrap a format error as LTXCorrupted, matching litestream's classification | COMMENT |
| LOW | crates/ltx/src/bundle.rs | 1 | //! The bundle envelope: a container of verbatim L0 LTX files, never a | COMMENT |
| LOW | crates/ltx/src/db.rs | 1 | //! db.rs — SQLite database lifecycle: WAL-mode setup, the long-running read-lock | COMMENT |
| LOW | crates/ltx/src/db.rs | 21 | //! - `open`/`init`: WAL-mode DSN, `wal_autocheckpoint(0)`, control tables, read | COMMENT |
| LOW | crates/ltx/src/db.rs | 141 | salt2: u32, | COMMENT |
| LOW | crates/ltx/src/db.rs | 221 | /// True when this call snapshotted (the full-database path). | COMMENT |
| LOW | crates/ltx/src/db.rs | 241 | /// writes and fsyncs through the SQLite VFS. | COMMENT |
| LOW | crates/ltx/src/db.rs | 261 | pub checkpoint_busy_errors: u64, | COMMENT |
| LOW | crates/ltx/src/db.rs | 301 | pub busy_timeout: Duration, | COMMENT |
| LOW | crates/ltx/src/db.rs | 321 | /// whose sealing write could not restart the WAL: the backfilled frames | COMMENT |
| LOW | crates/ltx/src/db.rs | 341 | /// `NotFound` on a later one), not probed with `mkdir` on every sync. | COMMENT |
| LOW | crates/ltx/src/db.rs | 361 | /// True for exactly the two control tables above, compared without case the | COMMENT |
| LOW | crates/ltx/src/db.rs | 381 | pub const DEFAULT_BUSY_TIMEOUT: Duration = Duration::from_secs(1); | COMMENT |
| LOW | crates/ltx/src/db.rs | 661 | /// open, but an application-level sweep of `sqlite_schema` can drop them | COMMENT |
| LOW | crates/ltx/src/db.rs | 761 | // With nCkpt still zero, its next write chooses fresh salts, so | COMMENT |
| LOW | crates/ltx/src/db.rs | 921 | COMMENT | |
| LOW | crates/ltx/src/db.rs | 1001 | /// the checkpoint policy. | COMMENT |
| LOW | crates/ltx/src/paged.rs | 1 | //! paged.rs — read-on-demand paging from replica objects. | COMMENT |
| LOW | crates/ltx/src/paged.rs | 41 | /// overflow chain out — so a sequential read costs one round-trip per run | COMMENT |
| LOW | crates/ltx/src/paged.rs | 301 | /// range cost about the same), and SQLite asks for pages one at a time, so | COMMENT |
| LOW | crates/ltx/src/paged.rs | 401 | /// The database's page count at the pinned cut. The VFS sizes the local file | COMMENT |
| LOW | crates/ltx/src/replica_url.rs | 1 | //! replica_url.rs — parse `s3://` and `file://` replica URLs + S3 endpoint | COMMENT |
| LOW | crates/ltx/src/client/epochs.rs | 1 | //! A restore view over the epochs of one cell. | COMMENT |
| 527 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/ltx/src/paged_vfs.rs | 126 | // ── file methods ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/paged_vfs.rs | 335 | // ── vfs methods ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/wal.rs | 60 | // ── Errors ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/wal.rs | 185 | // ── WalReader ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/error.rs | 70 | // ── LTXError ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/error.rs | 152 | // ── Chain-walking helpers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/error.rs | 218 | // ── Marker error types for downcast detection ───────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/error.rs | 257 | // ── Public constructor ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/lib.rs | 45 | // ── Crate-root re-exports — the ergonomic public surface ──────────────── | COMMENT |
| MEDIUM⚡ | crates/ltx/src/lib.rs | 113 | // ── Naming constants ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/ltx/src/lib.rs | 121 | // ── SQLite checkpoint modes ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/ltx/src/lib.rs | 130 | // ── SQLite WAL size constants ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/lib.rs | 146 | // ── TXID ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/lib.rs | 219 | // ── Checksum ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/lib.rs | 234 | // ── Pos ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/lib.rs | 329 | // ── SQLite checksum ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/lib.rs | 375 | // ── Forward-slash path cleaning (Go stdlib `path`) ──────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/lib.rs | 520 | // ── LTX path helpers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 16 | // ── Constants (ltx@v0.5.2 ltx.go:18-55) ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 64 | // ── CRC64-ISO (checksum.go:177 `crc64.MakeTable(crc64.ISO)`) ────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 105 | // ── Header / PageHeader / Trailer ───────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 347 | // ── FileInfo ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 381 | // ── Decoder ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 483 | // ── Encoder (round-trip; byte-fidelity vs the real binary is D1's job) ──────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 533 | // ── small byte / varint helpers ────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/ltx.rs | 545 | // ── Tests ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/ltx/src/db.rs | 293 | // ── Tunables (db.go:131-197) ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/ltx/src/db.rs | 303 | // ── Anti-feedback-loop bookkeeping (issues #896/#927/#997) ────────────── | COMMENT |
| MEDIUM⚡ | crates/ltx/src/db.rs | 303 | // ── Anti-feedback-loop bookkeeping (issues #896/#927/#997) ────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 541 | // ── Paths ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 614 | // ── Read-lock takeover (checkpoint prevention) ───────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 658 | // ── WAL bootstrap ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 828 | // ── Position ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 988 | // ── Capture loop ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 1746 | // ── Checkpointing ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 2057 | // ── CRC64 ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 2078 | // ── Snapshot ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/db.rs | 2157 | // ── free functions ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/replica_url.rs | 17 | // ── Query (a tiny ordered multimap, like Go's url.Values) ───────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/replica_url.rs | 92 | // ── Scheme + URL parsing ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/replica_url.rs | 240 | // ── S3 Access Point ARN parsing ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/replica_url.rs | 332 | // ── Endpoint detection (S3 provider/local heuristics) ───────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/client/object_store.rs | 123 | // ── Config ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/client/object_store.rs | 407 | // ── ParseHost ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ltx/src/client/object_store.rs | 546 | // ── Client ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/celld/node_log.rs | 513 | // ── The record ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/celld/node_log.rs | 743 | // ── Wire types for the peer endpoints ─────────────────────────────────────── | COMMENT |
| MEDIUM | crates/celld/node_log.rs | 1139 | // ── The follower side ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/celld/node_log.rs | 2566 | // ── The leader side ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/celld/node_log.rs | 3896 | // ── Recovery and the takeover interlock ───────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | crates/celld/assets.rs | 189 | self.inner.index.config.binding.as_deref() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/celld/js/node_stream.js | 462 | function getOwnPropertyValueOrDefault(options, key, defaultValue) { | CODE |
| LOW | crates/celld/js/node_stream.js | 2960 | return function pipeOnDrainFunctionResult() { | CODE |
| LOW | crates/celld/js/node_util.js | 557 | function validateThisInternalField(object, fieldKey, className) { | CODE |
| LOW | crates/celld/js/node_util.js | 3023 | function formatWithOptionsInternal(inspectOptions, args) { | CODE |
| LOW | crates/celld/js/node_util.js | 3631 | function findLooseMatchingPrimitives(prim) { | CODE |
| LOW | crates/celld/js/node_util.js | 4194 | function transferableAbortController() { | CODE |
| LOW | crates/celld/js/node_crypto.js | 1449 | function processGeneratePrimeOptions(options) { | CODE |