mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
This report summarizes scanner evidence for tobi/qmd, a TypeScript project with 30,316 GitHub stars. SynthScan examined 72,397 lines of code across 204 source files, recording 374 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 8.3 (Moderate 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? 184 finding(s).
Are imports declared and package/API names verified? 30 finding(s).
Are wrappers, guards, and repeated structures necessary? 245 finding(s).
Which changes need focused human review? 374 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 374 distinct pattern matches across 17 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 |
|---|---|---|---|---|
| MEDIUM⚡ | example-index.yml | 12 | # ─── Global context ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | example-index.yml | 17 | # ─── Terminal hyperlinks (optional) ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | example-index.yml | 22 | # ─── Model overrides (optional) ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | example-index.yml | 31 | # ─── Collections ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | example-index.yml | 34 | # ── Basic: just a path and a pattern ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | example-index.yml | 41 | # ── Hierarchical context: path-prefix → description ──────────────────────── | COMMENT |
| MEDIUM | example-index.yml | 52 | # ── Auto-update: run a command before re-indexing ────────────────────────── | COMMENT |
| MEDIUM | example-index.yml | 63 | # ── Ignore patterns: exclude files from indexing ─────────────────────────── | COMMENT |
| MEDIUM | example-index.yml | 79 | # ── Exclude from default searches ────────────────────────────────────────── | COMMENT |
| MEDIUM | example-index.yml | 89 | # ── Everything together ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 37 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 39 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 75 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 77 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 154 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 156 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 255 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 257 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 328 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/eval_retrieval.py | 330 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 25 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 27 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 86 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 88 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 136 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 138 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 263 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 265 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | finetune/reward.py | 644 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | finetune/reward.py | 646 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 662 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/reward.py | 664 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/dataset/schema.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finetune/dataset/schema.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finetune/dataset/schema.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finetune/dataset/schema.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finetune/dataset/schema.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finetune/dataset/schema.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | finetune/dataset/schema.py | 138 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | finetune/dataset/schema.py | 140 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | finetune/jobs/eval_common.py | 15 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval_common.py | 17 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval_common.py | 242 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval_common.py | 244 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval.py | 81 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval.py | 83 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval.py | 308 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval.py | 310 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval.py | 362 | # ============================================================================= | COMMENT |
| MEDIUM | finetune/jobs/eval.py | 364 | # ============================================================================= | COMMENT |
| MEDIUM | src/index.ts | 309 | // ── Search ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/index.ts | 323 | // ── Document Retrieval ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/index.ts | 334 | // ── Collection Management ─────────────────────────────────────────── | COMMENT |
| MEDIUM | src/index.ts | 367 | // ── Context Management ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/index.ts | 384 | // ── Indexing ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/index.ts | 404 | // ── Index Health ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/index.ts | 412 | // ── Lifecycle ─────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | finetune/train.py | 422 | CODE | |
| MEDIUM | finetune/train.py | 423 | CODE | |
| MEDIUM | finetune/train.py | 424 | CODE | |
| MEDIUM | finetune/train.py | 425 | CODE | |
| MEDIUM | finetune/train.py | 426 | CODE | |
| MEDIUM | finetune/train.py | 427 | CODE | |
| MEDIUM | finetune/train.py | 428 | CODE | |
| MEDIUM | finetune/train.py | 430 | CODE | |
| MEDIUM | finetune/train.py | 431 | CODE | |
| MEDIUM | finetune/train.py | 434 | CODE | |
| MEDIUM | finetune/train.py | 435 | CODE | |
| MEDIUM | finetune/train.py | 437 | CODE | |
| MEDIUM | finetune/train.py | 440 | CODE | |
| MEDIUM | finetune/train.py | 442 | CODE | |
| MEDIUM | finetune/train.py | 448 | CODE | |
| MEDIUM | finetune/train.py | 449 | CODE | |
| MEDIUM | finetune/train.py | 457 | CODE | |
| MEDIUM | finetune/train.py | 458 | CODE | |
| MEDIUM | finetune/train.py | 463 | CODE | |
| MEDIUM | finetune/train.py | 464 | CODE | |
| MEDIUM | finetune/train.py | 473 | CODE | |
| MEDIUM | finetune/train.py | 474 | CODE | |
| MEDIUM | finetune/train.py | 475 | CODE | |
| MEDIUM | finetune/train.py | 476 | CODE | |
| MEDIUM | finetune/train.py | 480 | CODE | |
| MEDIUM | finetune/train.py | 481 | CODE | |
| MEDIUM | finetune/train.py | 483 | CODE | |
| MEDIUM | finetune/train.py | 491 | CODE | |
| MEDIUM | finetune/train.py | 492 | CODE | |
| MEDIUM | finetune/train.py | 493 | CODE | |
| MEDIUM | finetune/train.py | 494 | CODE | |
| MEDIUM | finetune/train.py | 497 | CODE | |
| MEDIUM | finetune/train.py | 498 | CODE | |
| MEDIUM | finetune/train.py | 499 | CODE | |
| MEDIUM | finetune/train.py | 500 | CODE | |
| MEDIUM | finetune/train.py | 511 | CODE | |
| MEDIUM | finetune/train.py | 512 | CODE | |
| MEDIUM | finetune/train.py | 517 | CODE | |
| MEDIUM | finetune/train.py | 518 | CODE | |
| MEDIUM | finetune/train.py | 523 | CODE | |
| MEDIUM | finetune/train.py | 527 | CODE | |
| MEDIUM | finetune/train.py | 528 | CODE | |
| MEDIUM | finetune/train.py | 529 | CODE | |
| MEDIUM | finetune/train.py | 532 | CODE | |
| MEDIUM | finetune/train.py | 542 | CODE | |
| MEDIUM | finetune/train.py | 543 | CODE | |
| MEDIUM | finetune/train.py | 546 | CODE | |
| MEDIUM | finetune/train.py | 547 | CODE | |
| MEDIUM | finetune/train.py | 548 | CODE | |
| MEDIUM | finetune/train.py | 550 | CODE | |
| MEDIUM | finetune/train.py | 552 | CODE | |
| MEDIUM | finetune/train.py | 553 | CODE | |
| MEDIUM | finetune/train.py | 554 | CODE | |
| MEDIUM | finetune/train.py | 557 | CODE | |
| MEDIUM | finetune/train.py | 558 | CODE | |
| MEDIUM | finetune/train.py | 559 | CODE | |
| MEDIUM | finetune/train.py | 560 | CODE | |
| MEDIUM | finetune/train.py | 561 | CODE | |
| MEDIUM | finetune/train.py | 566 | CODE | |
| MEDIUM | finetune/train.py | 567 | CODE | |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/oxlint/anti-slop/shared/reflect-method.ts | 24 | export function isGlobalReflectMethodCall( | CODE |
| LOW | tools/oxlint/anti-slop/shared/dictionary-types.ts | 142 | function isEffectivelyEmptyTypeLiteral(type: ESTree.TSTypeLiteral): boolean { | CODE |
| LOW | tools/oxlint/anti-slop/shared/dictionary-types.ts | 146 | function isEffectivelyEmptyInterface( | CODE |
| LOW | tools/oxlint/anti-slop/shared/dictionary-types.ts | 158 | function resolvedSubstitutionArgument( | CODE |
| LOW | tools/oxlint/anti-slop/shared/dictionary-types.ts | 307 | export function classifyUnsafeDictionaryValue( | CODE |
| LOW | tools/oxlint/anti-slop/shared/dictionary-types.ts | 467 | export function isPopulatedObjectExpression(expression: ESTree.Expression): boolean { | CODE |
| LOW | tools/oxlint/anti-slop/shared/dictionary-types.ts | 480 | export function isKnownEvidenceExpression(expression: ESTree.Expression): boolean { | CODE |
| LOW | …ols/oxlint/anti-slop/shared/lexical-type-parameters.ts | 14 | function collectInferTypeParameterNames( | CODE |
| LOW | …ols/oxlint/anti-slop/shared/lexical-type-parameters.ts | 35 | export function lexicalTypeParameterNames( | CODE |
| LOW | tools/oxlint/anti-slop/rules/no-widen-then-assert.ts | 18 | function unwrapExpressionParentheses(expression: ESTree.Expression): ESTree.Expression { | CODE |
| LOW | tools/oxlint/anti-slop/rules/no-widen-then-assert.ts | 143 | function isDefinitelyNarrowerRecordType(type: ESTree.TSType): boolean { | CODE |
| LOW | tools/oxlint/anti-slop/rules/no-widen-then-assert.ts | 171 | function resolvedVariableForIdentifier( | CODE |
| LOW | …s/oxlint/anti-slop/rules/no-chained-type-assertions.ts | 6 | function isTypeAssertionExpression(node: ESTree.Node): node is TypeAssertionExpression { | CODE |
| LOW | …s/oxlint/anti-slop/rules/no-chained-type-assertions.ts | 10 | function unwrapParenthesizedExpression(expression: ESTree.Expression): ESTree.Expression { | CODE |
| LOW | …s/oxlint/anti-slop/rules/no-chained-type-assertions.ts | 27 | function isOutermostAssertionInChain(node: TypeAssertionExpression): boolean { | CODE |
| LOW | …s/oxlint/anti-slop/rules/no-chained-type-assertions.ts | 39 | function isForbiddenAssertionChain(node: TypeAssertionExpression): boolean { | CODE |
| LOW | tools/oxlint/anti-slop/rules/no-known-value-widening.ts | 125 | function isDictionaryAccumulatorTarget(destination: WideningTarget): boolean { | CODE |
| LOW | …/anti-slop/rules/no-conditional-empty-object-spread.ts | 16 | function isConditionalEmptyObjectSpread(node: ESTree.Expression): boolean { | CODE |
| LOW | …ls/oxlint/anti-slop/rules/no-unsafe-dictionary-type.ts | 60 | function isInsideTypeAliasDeclaration(node: ESTree.Node): boolean { | CODE |
| LOW | …ols/oxlint/anti-slop/rules/no-shape-in-symbol-names.ts | 6 | function containsForbiddenSymbolName(name: string): boolean { | CODE |
| LOW | test/metadata-search.test.ts | 291 | async function insertLongDocumentWithExcludedCopy(vectors: number[][]): Promise<void> { | CODE |
| LOW | test/store-cjk-fts.test.ts | 165 | const startIdx = storeSrc.indexOf("function rebuildFTSForCjkNormalization("); | CODE |
| LOW | finetune/convert_onnx.py | 294 | def write_transformers_js_config(onnx_dir: str, quantize_type: str = "q4"): | CODE |
| LOW⚡ | finetune/reward.py | 634 | def extract_query_from_prompt(prompt: str) -> str: | CODE |
| LOW | finetune/jobs/eval_common.py | 218 | def extract_query_from_prompt(prompt): | CODE |
| LOW | src/vec-layout.ts | 102 | export function createVectorMetadataTables(db: Database): void { | CODE |
| LOW | src/vec-layout.ts | 121 | export function createPartitionedVecTable(db: Database, dimensions: number): void { | CODE |
| LOW | src/vec-layout.ts | 190 | export function deletePartitionRowsOfHash(db: Database, hash: string): void { | CODE |
| LOW | src/metadata-format.ts | 56 | export function formatMetadataKeySummaries(result: ListMetadataResult, options: FormatMetadataOptions): string { | CODE |
| LOW | src/trust.ts | 106 | export function resolveConfigCollectionPath(rawPath: string, configPath: string): string { | CODE |
| LOW | src/trust.ts | 126 | export function isCollectionPathInsideProject(configPath: string, rawPath: string): boolean { | CODE |
| LOW | src/trust.ts | 272 | export function isLocalConfigTrustOptedIn(env: NodeJS.ProcessEnv = process.env): boolean { | CODE |
| LOW | src/metadata-store.ts | 165 | function isDocumentMetadataCurrent(db: Database, documentId: number): boolean { | CODE |
| LOW | src/metadata-store.ts | 180 | export function countDocumentsPendingMetadata(db: Database, collectionNames?: string[]): number { | CODE |
| LOW | src/metadata-store.ts | 515 | export function listMetadataCollectionSummaries(db: Database, keyLimit: number = DEFAULT_METADATA_KEY_LIMIT): Map<string | CODE |
| LOW | src/metadata-store.ts | 580 | export function countDocumentsWithMetadata(db: Database, collectionNames?: string[]): number { | CODE |
| LOW | src/collections.ts | 276 | export function getDefaultCollectionNames(): string[] { | CODE |
| LOW | src/store-migrations.ts | 173 | export function deleteVectorlessContentVectors(db: Database): number { | CODE |
| LOW | src/store-migrations.ts | 200 | function partitionedTableDimensions(db: Database): number | null | undefined { | CODE |
| LOW | src/llm.ts | 38 | export function setNodeLlamaCppModuleForTest(module: NodeLlamaCppModule | null): void { | CODE |
| LOW | src/llm.ts | 130 | export function setLlamaDirWritableForTest(writable: boolean | undefined): void { | CODE |
| LOW | src/llm.ts | 671 | export function resolveParallelismOverride(envValue = process.env.QMD_EMBED_PARALLELISM): number | undefined { | CODE |
| LOW | src/llm.ts | 714 | export function computeGpuContextPoolSize(options: { | CODE |
| LOW | src/llm.ts | 777 | async function disposeSequenceThenContext( | CODE |
| LOW | src/llm.ts | 2202 | export function isDarwinMetalMitigationActive(): boolean { | CODE |
| LOW | src/llm.ts | 2221 | export function isDarwinExitGuardInstalled(): boolean { | CODE |
| LOW | src/metadata.ts | 139 | function hasFrontmatterFileExtension(path: string): boolean { | CODE |
| LOW | src/store.ts | 418 | export function chunkDocumentWithBreakPoints( | CODE |
| LOW | src/store.ts | 564 | export function getRelativePathFromPrefix(path: string, prefix: string): string | null { | CODE |
| LOW | src/store.ts | 893 | function createSqliteVecUnavailableError(reason: string): Error { | CODE |
| LOW | src/store.ts | 1048 | function documentsFtsSchemaIsCurrent(db: Database): boolean { | CODE |
| LOW | src/store.ts | 1141 | function rebuildFTSForCjkNormalization(db: Database): void { | CODE |
| LOW | src/store.ts | 1758 | function deleteFileSyncStateForCollection(db: Database, collectionName: string, relPath: string): void { | CODE |
| LOW | src/store.ts | 2155 | function validatePositiveIntegerOption(name: string, value: number | undefined, fallback: number): number { | CODE |
| LOW | src/store.ts | 2179 | function isContentVectorColumnError(error: unknown): boolean { | CODE |
| LOW | src/store.ts | 2198 | function ensureContentVectorsStatusIndex(db: Database): void { | CODE |
| LOW | src/store.ts | 2211 | function runContentVectorColumnRepairs(db: Database): void { | CODE |
| LOW | src/store.ts | 2933 | export function getEmbeddingVectorSamples(db: Database, model: string, fingerprint: string, sampleSize: number = 3): Emb | CODE |
| LOW | src/store.ts | 2956 | export function getHashesNeedingEmbedding(db: Database, collection?: string, model: string = DEFAULT_EMBED_MODEL): numbe | CODE |
| LOW | src/store.ts | 2990 | export async function maybeAdoptLegacyEmbeddingFingerprint(store: Store, model: string = DEFAULT_EMBED_MODEL): Promise<L | CODE |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | migrate-schema.ts | 31 | // Step 1: Add collection column to documents | COMMENT |
| LOW⚡ | migrate-schema.ts | 36 | // Step 2: Populate collection names from collections table | COMMENT |
| LOW⚡ | migrate-schema.ts | 47 | // Step 3: Verify no NULL values | COMMENT |
| LOW⚡ | migrate-schema.ts | 57 | // Step 4: Create new documents table without collection_id | COMMENT |
| LOW | migrate-schema.ts | 76 | // Step 5: Copy data | COMMENT |
| LOW⚡ | migrate-schema.ts | 88 | // Step 6: Drop old table and rename new one | COMMENT |
| LOW⚡ | migrate-schema.ts | 94 | // Step 7: Recreate indices | COMMENT |
| LOW⚡ | migrate-schema.ts | 100 | // Step 8: Update FTS trigger to use collection name | COMMENT |
| LOW | finetune/convert_gguf.py | 117 | # Step 1: Load and merge | COMMENT |
| LOW⚡ | finetune/convert_gguf.py | 133 | # Step 2: Save merged model | COMMENT |
| LOW⚡ | finetune/convert_gguf.py | 139 | # Step 3: Setup llama.cpp | COMMENT |
| LOW⚡ | finetune/convert_gguf.py | 147 | # Step 4: Convert to FP16 GGUF | COMMENT |
| LOW | finetune/convert_gguf.py | 161 | # Step 5: Quantize | COMMENT |
| LOW | finetune/convert_gguf.py | 180 | # Step 6: Upload | COMMENT |
| LOW⚡ | src/store.ts | 6397 | // Step 4: RRF fusion — original-query FTS and vector lists get 2x weight; | COMMENT |
| LOW⚡ | src/store.ts | 6406 | // Step 5: Chunk documents, pick best chunk per doc for reranking. | COMMENT |
| LOW⚡ | src/store.ts | 6788 | // Step 3: RRF fusion — first list gets 2x weight (assume caller ordered by importance) | COMMENT |
| LOW⚡ | src/store.ts | 6798 | // Step 4: Chunk documents, pick best chunk per doc for reranking | COMMENT |
| LOW | src/store.ts | 6284 | // Step 1: BM25 probe — strong signal skips expensive LLM expansion | COMMENT |
| LOW | src/store.ts | 6300 | // Step 2: Expand query (or skip if strong signal) | COMMENT |
| LOW | src/store.ts | 6319 | // Step 3: Route searches by query type | COMMENT |
| LOW | src/store.ts | 6484 | // Step 6: Rerank chunks (NOT full bodies) | COMMENT |
| LOW | src/store.ts | 6498 | // Step 7: Blend RRF position score with reranker score | COMMENT |
| LOW | src/store.ts | 6550 | // Step 8: Dedup by file (safety net — prevents duplicate output) | COMMENT |
| LOW | src/store.ts | 6728 | // Step 1: Run FTS for all lex searches (sync, instant) | COMMENT |
| LOW | src/store.ts | 6747 | // Step 2: Batch embed and run vector searches for vec/hyde | COMMENT |
| LOW | src/store.ts | 6879 | // Step 5: Rerank chunks | COMMENT |
| LOW | src/store.ts | 6893 | // Step 6: Blend RRF position score with reranker score | COMMENT |
| LOW | src/store.ts | 6944 | // Step 7: Dedup by file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | migrate-schema.ts | 31 | // Step 1: Add collection column to documents | COMMENT |
| LOW⚡ | migrate-schema.ts | 36 | // Step 2: Populate collection names from collections table | COMMENT |
| LOW⚡ | migrate-schema.ts | 47 | // Step 3: Verify no NULL values | COMMENT |
| LOW⚡ | migrate-schema.ts | 57 | // Step 4: Create new documents table without collection_id | COMMENT |
| LOW | migrate-schema.ts | 76 | // Step 5: Copy data | COMMENT |
| LOW⚡ | migrate-schema.ts | 88 | // Step 6: Drop old table and rename new one | COMMENT |
| LOW⚡ | migrate-schema.ts | 94 | // Step 7: Recreate indices | COMMENT |
| LOW⚡ | migrate-schema.ts | 100 | // Step 8: Update FTS trigger to use collection name | COMMENT |
| LOW | finetune/convert_gguf.py | 117 | # Step 1: Load and merge | COMMENT |
| LOW⚡ | finetune/convert_gguf.py | 133 | # Step 2: Save merged model | COMMENT |
| LOW⚡ | finetune/convert_gguf.py | 139 | # Step 3: Setup llama.cpp | COMMENT |
| LOW⚡ | finetune/convert_gguf.py | 147 | # Step 4: Convert to FP16 GGUF | COMMENT |
| LOW | finetune/convert_gguf.py | 161 | # Step 5: Quantize | COMMENT |
| LOW | finetune/convert_gguf.py | 180 | # Step 6: Upload | COMMENT |
| LOW⚡ | src/store.ts | 6397 | // Step 4: RRF fusion — original-query FTS and vector lists get 2x weight; | COMMENT |
| LOW⚡ | src/store.ts | 6406 | // Step 5: Chunk documents, pick best chunk per doc for reranking. | COMMENT |
| LOW⚡ | src/store.ts | 6788 | // Step 3: RRF fusion — first list gets 2x weight (assume caller ordered by importance) | COMMENT |
| LOW⚡ | src/store.ts | 6798 | // Step 4: Chunk documents, pick best chunk per doc for reranking | COMMENT |
| LOW | src/store.ts | 6284 | // Step 1: BM25 probe — strong signal skips expensive LLM expansion | COMMENT |
| LOW | src/store.ts | 6300 | // Step 2: Expand query (or skip if strong signal) | COMMENT |
| LOW | src/store.ts | 6319 | // Step 3: Route searches by query type | COMMENT |
| LOW | src/store.ts | 6484 | // Step 6: Rerank chunks (NOT full bodies) | COMMENT |
| LOW | src/store.ts | 6498 | // Step 7: Blend RRF position score with reranker score | COMMENT |
| LOW | src/store.ts | 6550 | // Step 8: Dedup by file (safety net — prevents duplicate output) | COMMENT |
| LOW | src/store.ts | 6728 | // Step 1: Run FTS for all lex searches (sync, instant) | COMMENT |
| LOW | src/store.ts | 6747 | // Step 2: Batch embed and run vector searches for vec/hyde | COMMENT |
| LOW | src/store.ts | 6879 | // Step 5: Rerank chunks | COMMENT |
| LOW | src/store.ts | 6893 | // Step 6: Blend RRF position score with reranker score | COMMENT |
| LOW | src/store.ts | 6944 | // Step 7: Dedup by file | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | finetune/train_unsloth.py | 114 | except ImportError: | CODE |
| HIGH | finetune/train.py | 409 | except Exception: | CODE |
| HIGH | finetune/train.py | 628 | except Exception: | CODE |
| HIGH | finetune/train.py | 644 | except Exception: | CODE |
| HIGH | finetune/train.py | 202 | except ValueError: | CODE |
| HIGH | finetune/experiments/gepa/generate.py | 47 | except json.JSONDecodeError: | CODE |
| HIGH | finetune/experiments/gepa/dspy_gepa.py | 100 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finetune/train_unsloth.py | 169 | except Exception as e: | CODE |
| LOW | finetune/train_unsloth.py | 180 | except Exception as e: | CODE |
| MEDIUM | finetune/eval_retrieval.py | 368 | print(f"Error: Golden data file not found: {args.golden}", file=sys.stderr) | CODE |
| LOW | finetune/train.py | 279 | except Exception: | CODE |
| LOW | finetune/train.py | 409 | except Exception: | CODE |
| LOW | finetune/train.py | 454 | except Exception: | CODE |
| LOW | finetune/train.py | 628 | except Exception: | CODE |
| LOW | finetune/train.py | 644 | except Exception: | CODE |
| LOW | finetune/dataset/validate_schema.py | 38 | except Exception as e: | CODE |
| MEDIUM | finetune/dataset/prepare_data.py | 111 | print(f"Error: No files found matching: {args.input}") | CODE |
| MEDIUM | finetune/dataset/prepare_data.py | 117 | print(f"Error: Input file not found: {input_path}") | CODE |
| MEDIUM | finetune/dataset/analyze_data.py | 218 | print(f"Error: Could not find dataset at {input_path}") | CODE |
| LOW⚡ | finetune/dataset/schema.py | 133 | except Exception as e: | CODE |
| LOW | finetune/dataset/schema.py | 186 | except Exception: | CODE |
| LOW | finetune/dataset/schema.py | 220 | except Exception: | CODE |
| LOW | finetune/experiments/gepa/dspy_gepa.py | 100 | except Exception: | CODE |
| MEDIUM | finetune/experiments/gepa/dspy_gepa.py | 140 | print("Error: DSPy expects provider/model format for LM strings (e.g., xai/grok-4-1-fast-reasoning).") | CODE |
| LOW | finetune/experiments/gepa/example.py | 114 | except Exception as exc: | CODE |
| LOW | finetune/experiments/gepa/score.py | 32 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finetune/train_unsloth.py | 26 | CODE | |
| LOW | finetune/benchmark.py | 62 | CODE | |
| LOW | finetune/eval_retrieval.py | 79 | CODE | |
| LOW | finetune/eval_retrieval.py | 115 | CODE | |
| LOW | finetune/eval_retrieval.py | 332 | CODE | |
| LOW | finetune/reward.py | 90 | CODE | |
| LOW | finetune/reward.py | 140 | CODE | |
| LOW | finetune/reward.py | 267 | CODE | |
| LOW | finetune/reward.py | 408 | CODE | |
| LOW | finetune/dataset/analyze_data.py | 84 | CODE | |
| LOW | finetune/dataset/analyze_data.py | 196 | CODE | |
| LOW | finetune/dataset/schema.py | 142 | CODE | |
| LOW | finetune/experiments/gepa/generate.py | 32 | CODE | |
| LOW | finetune/jobs/eval_common.py | 42 | CODE | |
| LOW | finetune/jobs/eval_common.py | 67 | CODE | |
| LOW | finetune/jobs/eval.py | 108 | CODE | |
| LOW | finetune/jobs/eval.py | 133 | CODE | |
| LOW | finetune/jobs/eval.py | 204 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finetune/train_unsloth.py | 14 | CODE | |
| LOW | finetune/train_unsloth.py | 67 | CODE | |
| LOW | finetune/train_unsloth.py | 111 | CODE | |
| LOW | finetune/train.py | 44 | CODE | |
| LOW | finetune/convert_onnx.py | 44 | CODE | |
| LOW | finetune/convert_onnx.py | 45 | CODE | |
| LOW | finetune/dataset/validate_schema.py | 8 | CODE | |
| LOW | finetune/dataset/score_data.py | 8 | CODE | |
| LOW | finetune/dataset/prepare_data_lfm2.py | 14 | CODE | |
| LOW | finetune/dataset/schema.py | 16 | CODE | |
| LOW | finetune/experiments/gepa/generate.py | 4 | CODE | |
| LOW | finetune/experiments/gepa/dspy_gepa.py | 4 | CODE | |
| LOW | finetune/experiments/gepa/example.py | 4 | CODE | |
| LOW | finetune/experiments/gepa/optimizer.py | 4 | CODE | |
| LOW | finetune/experiments/lfm2/sft_lfm2.py | 38 | CODE | |
| LOW | finetune/jobs/eval.py | 23 | CODE | |
| LOW | finetune/jobs/eval.py | 26 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | example-index.yml | 1 | # QMD Collections Configuration | COMMENT |
| LOW | test/smoke-install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | test/store-cjk-fts.test.ts | 181 | // API. Any .all() used for the source-body scan must be paired with a | COMMENT |
| LOW | finetune/convert_gguf.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | finetune/train.py | 1 | # /// script | COMMENT |
| LOW | finetune/convert_onnx.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | finetune/experiments/lfm2/sft_lfm2.yaml | 1 | # SFT Training Config for QMD Query Expansion with LiquidAI LFM2 | COMMENT |
| LOW | finetune/experiments/lfm2/sft_lfm2.py | 1 | # /// script | COMMENT |
| LOW | finetune/experiments/grpo/grpo.py | 1 | # /// script | COMMENT |
| LOW | finetune/jobs/sft.py | 1 | # /// script | COMMENT |
| LOW | scripts/extract-changelog.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/release.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/llm.ts | 2161 | if (!defaultSessionManager) return true; | COMMENT |
| LOW | src/llm.ts | 2181 | // node/src/api/environment.cc). | COMMENT |
| LOW | src/store.ts | 941 | // produced, and that tokenizer splits document text on every separator. | COMMENT |
| LOW | src/store.ts | 1141 | function rebuildFTSForCjkNormalization(db: Database): void { | COMMENT |
| LOW | src/store.ts | 3621 | ): { id: number; hash: string; title: string } | null { | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/store.test.ts | 2869 | const padLine = "Lorem ipsum dolor sit amet\n"; | CODE |
| LOW | test/store.test.ts | 2869 | const padLine = "Lorem ipsum dolor sit amet\n"; | CODE |
| LOW | test/store.test.ts | 2883 | const padding = "Lorem ipsum dolor sit amet\n".repeat(200); | CODE |
| LOW | test/store.test.ts | 2883 | const padding = "Lorem ipsum dolor sit amet\n".repeat(200); | CODE |
| LOW | test/mcp.test.ts | 173 | body: "# Large Document\n\n" + "Lorem ipsum ".repeat(2000), // ~24KB | CODE |
| LOW | test/structured-search.test.ts | 360 | const filler = "lorem ipsum dolor sit amet consectetur adipiscing elit ".repeat(40); | CODE |
| LOW | test/structured-search.test.ts | 360 | const filler = "lorem ipsum dolor sit amet consectetur adipiscing elit ".repeat(40); | CODE |
| LOW | test/ast-chunking.test.ts | 116 | sections.push(`# Section ${i}\n\n${"Lorem ipsum dolor sit amet. ".repeat(40)}\n`); | CODE |
| LOW | test/ast-chunking.test.ts | 116 | sections.push(`# Section ${i}\n\n${"Lorem ipsum dolor sit amet. ".repeat(40)}\n`); | CODE |
| LOW | test/store-cjk-fts.test.ts | 229 | const bigBody = "lorem ipsum dolor sit amet ".repeat(450); // ~12 KB | CODE |
| LOW | test/store-cjk-fts.test.ts | 229 | const bigBody = "lorem ipsum dolor sit amet ".repeat(450); // ~12 KB | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | test/metadata-surfaces.test.ts | 446 | expect(secondPage.json.result.structuredContent.keys.map((summary: { key: string }) => summary.key)).toEqual(["topic | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/store-fts-separator-queries.test.ts | 63 | "gateway #1: feat: flash-and-forget gateway scaffold, compose stack + cloud-init provisioning (PIO-1384)"; | CODE |
| MEDIUM | finetune/experiments/lfm2/sft_lfm2.yaml | 5 | # Recommended for: agentic tasks, data extraction, RAG, creative writing. | COMMENT |
| MEDIUM | finetune/experiments/lfm2/sft_lfm2.yaml | 5 | # Recommended for: agentic tasks, data extraction, RAG, creative writing. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | finetune/train.py | 419 | print(" cd finetune && uv run python experiments/grpo/grpo.py") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | example-index.yml | 4 | # This file is the single source of truth for your collections. Every | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/smoke-install.sh | 6 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finetune/train.py | 266 | # Check if output looks like a HF Hub path (contains /) | COMMENT |