@@ -1,632 +0,0 @@
> trueref@0.0.1 test:unit
> vitest
[1m [44m DEV [49m [22m [34mv4.1.0 [39m [90m/home/moze/Sources/trueref [39m
[2m19:10:26 [22m [36m [1m[vite] [22m [39m (client) Re-optimizing dependencies because lockfile has changed
[31m❯ [39m [30m [42m server [49m [39m src/lib/server/embeddings/embedding.service.test.ts [2m( [22m [2m0 test [22m [2m) [22m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/parser/code.parser.test.ts [2m( [22m [2m20 tests [22m [2m) [22m [32m 22 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/services/version.service.test.ts [2m( [22m [2m19 tests [22m [2m) [22m [32m 37 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/services/repository.service.test.ts [2m( [22m [2m37 tests [22m [2m) [22m [32m 57 [2mms [22m [39m
[90mstderr [2m | src/lib/server/crawler/local.crawler.test.ts [2m > [22m [2mLocalCrawler.crawl() — config file detection [2m > [22m [2mgracefully handles a malformed config file
[22m [39m[LocalCrawler] Failed to parse config file: /tmp/trueref-test-ptITIP/trueref.json
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/config/config-parser.test.ts [2m( [22m [2m50 tests [22m [2m) [22m [32m 21 [2mms [22m [39m
[90mstderr [2m | src/lib/server/pipeline/indexing.pipeline.test.ts [2m > [22m [2mIndexingPipeline [2m > [22m [2mmarks job as failed and repo as error when pipeline throws
[22m [39m[IndexingPipeline] Job c44d7e22-6127-49e7-82b7-eb724726c888 failed: crawl failed
[90mstderr [2m | src/lib/server/pipeline/indexing.pipeline.test.ts
[22m [39m[JobQueue] No pipeline configured — cannot process jobs.
[90mstderr [2m | src/lib/server/pipeline/indexing.pipeline.test.ts
[22m [39m[JobQueue] No pipeline configured — cannot process jobs.
[90mstderr [2m | src/lib/server/pipeline/indexing.pipeline.test.ts
[22m [39m[JobQueue] No pipeline configured — cannot process jobs.
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/search/search.service.test.ts [2m( [22m [2m43 tests [22m [2m) [22m [32m 43 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/pipeline/indexing.pipeline.test.ts [2m( [22m [2m20 tests [22m [2m) [22m [32m 42 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/crawler/gitignore-parser.test.ts [2m( [22m [2m29 tests [22m [2m) [22m [32m 11 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/crawler/github-tags.test.ts [2m( [22m [2m10 tests [22m [2m) [22m [32m 9 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/routes/api/v1/api-contract.integration.test.ts [2m( [22m [2m4 tests [22m [2m) [22m [32m 48 [2mms [22m [39m
[31m❯ [39m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m( [22m [2m19 tests [22m [2m | [22m [31m19 failed [39m [2m) [22m [32m 50 [2mms [22m [39m
[31m [31m× [31m inserts and retrieves a repository [39m [32m 12 [2mms [22m [39m
[31m [31m× [31m allows nullable optional fields [39m [32m 3 [2mms [22m [39m
[31m [31m× [31m supports all state enum values [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m inserts a version linked to a repository [39m [32m 4 [2mms [22m [39m
[31m [31m× [31m cascades delete when parent repository is deleted [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m inserts a document [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m cascades delete when repository is deleted [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m inserts a code snippet [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m inserts an info snippet [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m cascades delete when document is deleted [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m stores a Float32Array embedding as blob [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m cascades delete when snippet is deleted [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m creates a job with default queued status [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m supports all status enum values [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m stores JSON array fields correctly [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m stores and retrieves key-value settings [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m FTS table exists and is queryable [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m insert trigger keeps FTS in sync [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m delete trigger removes entry from FTS [39m [32m 2 [2mms [22m [39m
[31m❯ [39m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m( [22m [2m33 tests [22m [2m | [22m [31m16 failed [39m [2m) [22m [32m 52 [2mms [22m [39m
[32m✓ [39m returns 1.0 for identical vectors [32m 2 [2mms [22m [39m
[32m✓ [39m returns 0.0 for orthogonal vectors [32m 0 [2mms [22m [39m
[32m✓ [39m returns -1.0 for opposite vectors [32m 0 [2mms [22m [39m
[32m✓ [39m returns 0 for zero-magnitude vector [32m 0 [2mms [22m [39m
[32m✓ [39m throws when dimensions do not match [32m 1 [2mms [22m [39m
[32m✓ [39m computes correct similarity for non-trivial vectors [32m 0 [2mms [22m [39m
[32m✓ [39m returns empty array for empty inputs [32m 1 [2mms [22m [39m
[32m✓ [39m fuses a single list preserving order [32m 1 [2mms [22m [39m
[32m✓ [39m deduplicates items appearing in multiple lists [32m 0 [2mms [22m [39m
[32m✓ [39m boosts items appearing in multiple lists [32m 0 [2mms [22m [39m
[32m✓ [39m assigns higher rrfScore to higher-ranked items [32m 0 [2mms [22m [39m
[32m✓ [39m handles three lists correctly [32m 0 [2mms [22m [39m
[32m✓ [39m produces positive rrfScores [32m 0 [2mms [22m [39m
[31m [31m× [31m returns empty array when no embeddings exist [39m [32m 10 [2mms [22m [39m
[31m [31m× [31m returns results sorted by descending cosine similarity [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m respects the limit parameter [39m [32m 4 [2mms [22m [39m
[31m [31m× [31m only returns snippets from the specified repository [39m [32m 2 [2mms [22m [39m
[31m [31m× [31m handles embeddings with negative values [39m [32m 1 [2mms [22m [39m
[32m✓ [39m returns FTS5 results when embeddingProvider is null [32m 2 [2mms [22m [39m
[32m✓ [39m returns FTS5 results when alpha = 0 [32m 1 [2mms [22m [39m
[32m✓ [39m returns empty array when FTS5 query is blank and no provider [32m 1 [2mms [22m [39m
[32m✓ [39m falls back to FTS5 when noop provider returns empty embeddings [32m 2 [2mms [22m [39m
[31m [31m× [31m returns results when hybrid mode is active (alpha = 0.5) [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m deduplicates snippets appearing in both FTS5 and vector results [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m respects the limit option [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m returns vector-ranked results when alpha = 1 [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m results include snippet and repository metadata [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m all results belong to the requested repository [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m filters by snippet type when provided [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m uses alpha = 0.5 when not specified [39m [32m 1 [2mms [22m [39m
[31m [31m× [31m filters by versionId — excludes snippets from other versions [39m [32m 3 [2mms [22m [39m
[31m [31m× [31m searchMode=keyword never calls provider.embed() [39m [32m 3 [2mms [22m [39m
[31m [31m× [31m searchMode=semantic uses only vector search [39m [32m 2 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/api/formatters.test.ts [2m( [22m [2m20 tests [22m [2m) [22m [32m 9 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/pipeline/diff.test.ts [2m( [22m [2m9 tests [22m [2m) [22m [32m 8 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/api/library-id.test.ts [2m( [22m [2m8 tests [22m [2m) [22m [32m 6 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/api/token-budget.test.ts [2m( [22m [2m7 tests [22m [2m) [22m [32m 6 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/parser/markdown.parser.test.ts [2m( [22m [2m14 tests [22m [2m) [22m [32m 9 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/vitest-examples/greet.spec.ts [2m( [22m [2m1 test [22m [2m) [22m [32m 3 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/crawler/local.crawler.test.ts [2m( [22m [2m50 tests [22m [2m) [22m [33m 658 [2mms [22m [39m
[32m✓ [39m [30m [42m server [49m [39m src/mcp/index.test.ts [2m( [22m [2m7 tests [22m [2m) [22m [33m 985 [2mms [22m [39m
[32m✓ [39m [30m [43m client (chromium) [49m [39m src/lib/vitest-examples/Welcome.svelte.spec.ts [2m( [22m [2m1 test [22m [2m) [22m [32m 9 [2mms [22m [39m
[90mstderr [2m | src/lib/server/crawler/github.crawler.test.ts [2m > [22m [2mcrawl() [2m > [22m [2mskips files that fail to download without throwing
[22m [39m[GitHubCrawler] Could not download: src/index.ts — skipping.
[32m✓ [39m [30m [42m server [49m [39m src/lib/server/crawler/github.crawler.test.ts [2m( [22m [2m50 tests [22m [2m) [22m [33m 6082 [2mms [22m [39m
[33m [2m✓ [22m [39m retries on failure and returns eventual success [33m 3003 [2mms [22m [39m
[33m [2m✓ [22m [39m throws after exhausting all attempts [33m 3003 [2mms [22m [39m
[31m⎯⎯⎯⎯⎯⎯ [39m [1m [41m Failed Suites 1 [49m [22m [31m⎯⎯⎯⎯⎯⎯⎯ [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/embeddings/embedding.service.test.ts [2m [ src/lib/server/embeddings/embedding.service.test.ts ] [22m
[31m [1mError [22m: Transform failed with 1 error:
/home/moze/Sources/trueref/src/lib/server/embeddings/embedding.service.test.ts:408:2: ERROR: "await" can only be used inside an "async" function [39m
Plugin: [35mvite:esbuild [39m
File: [36m/home/moze/Sources/trueref/src/lib/server/embeddings/embedding.service.test.ts [39m:408:2
[33m
"await" can only be used inside an "async" function
406 | });
407 |
408 | await service.embedSnippets([snippetId]);
| ^
409 |
410 | const retrieved = service.getEmbedding(snippetId);
[39m
[90m [2m❯ [22m failureErrorWithLog node_modules/vite/node_modules/esbuild/lib/main.js: [2m1748:15 [22m [39m
[90m [2m❯ [22m node_modules/vite/node_modules/esbuild/lib/main.js: [2m1017:50 [22m [39m
[90m [2m❯ [22m responseCallbacks.<computed> node_modules/vite/node_modules/esbuild/lib/main.js: [2m884:9 [22m [39m
[90m [2m❯ [22m handleIncomingPacket node_modules/vite/node_modules/esbuild/lib/main.js: [2m939:12 [22m [39m
[90m [2m❯ [22m Socket.readFromStdout node_modules/vite/node_modules/esbuild/lib/main.js: [2m862:7 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/36]⎯ [22m [39m
[31m⎯⎯⎯⎯⎯⎯ [39m [1m [41m Failed Tests 35 [49m [22m [31m⎯⎯⎯⎯⎯⎯⎯ [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mrepositories table [2m > [22minserts and retrieves a repository
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mrepositories table [2m > [22mallows nullable optional fields
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mrepositories table [2m > [22msupports all state enum values
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m63:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m63:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mrepository_versions table [2m > [22minserts a version linked to a repository
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mrepository_versions table [2m > [22mcascades delete when parent repository is deleted
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m109:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m109:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mdocuments table [2m > [22minserts a document
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mdocuments table [2m > [22mcascades delete when repository is deleted
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m151:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m151:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22msnippets table [2m > [22minserts a code snippet
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22msnippets table [2m > [22minserts an info snippet
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22msnippets table [2m > [22mcascades delete when document is deleted
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m195:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m195:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22msnippet_embeddings table [2m > [22mstores a Float32Array embedding as blob
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22msnippet_embeddings table [2m > [22mcascades delete when snippet is deleted
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m271:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m271:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mindexing_jobs table [2m > [22mcreates a job with default queued status
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mindexing_jobs table [2m > [22msupports all status enum values
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m350:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m350:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mrepository_configs table [2m > [22mstores JSON array fields correctly
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m391:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m391:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22msettings table [2m > [22mstores and retrieves key-value settings
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m422:13 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m422:13 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mFTS5 virtual table (snippets_fts) [2m > [22mFTS table exists and is queryable
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mFTS5 virtual table (snippets_fts) [2m > [22minsert trigger keeps FTS in sync
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/db/schema.test.ts [2m > [22mFTS5 virtual table (snippets_fts) [2m > [22mdelete trigger removes entry from FTS
[31m [1mDrizzleError [22m: Failed to run the query '
INSERT INTO `__new_snippet_embeddings`("snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at") SELECT "snippet_id", "profile_id", "model", "dimensions", "embedding", "created_at" FROM `snippet_embeddings`;' [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/src/sqlite-core/session.ts: [2m271:9 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/src/sqlite-core/dialect.ts: [2m864:14 [22m [39m
[90m [2m❯ [22m migrate node_modules/src/better-sqlite3/migrator.ts: [2m10:12 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m 30| [39m [90m// Run migrations from the generated migration folder. [39m
[90m 31| [39m [35mconst [39m migrationsFolder [33m= [39m [34mjoin [39m( [35mimport [39m [33m. [39mmeta [33m. [39mdirname [33m, [39m [32m'migrations' [39m) [33m; [39m
[90m 32| [39m [34mmigrate [39m(db [33m, [39m { migrationsFolder }) [33m; [39m
[90m | [39m [31m^ [39m
[90m 33| [39m
[90m 34| [39m // Apply FTS5 DDL using exec() which handles multi-statement SQL with…
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m442:21 [22m [39m
[31m [1mCaused by: SqliteError [22m: no such column: "profile_id" - should this be a string literal in single-quotes? [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareQuery node_modules/drizzle-orm/better-sqlite3/session.js: [2m23:30 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.prepareOneTimeQuery node_modules/drizzle-orm/sqlite-core/session.js: [2m141:17 [22m [39m
[90m [2m❯ [22m BetterSQLiteSession.run node_modules/drizzle-orm/sqlite-core/session.js: [2m154:19 [22m [39m
[90m [2m❯ [22m SQLiteSyncDialect.migrate node_modules/drizzle-orm/sqlite-core/dialect.js: [2m604:21 [22m [39m
[90m [2m❯ [22m migrate node_modules/drizzle-orm/better-sqlite3/migrator.js: [2m4:14 [22m [39m
[36m [2m❯ [22m createTestDb src/lib/server/db/schema.test.ts: [2m32:2 [22m [39m
[90m [2m❯ [22m src/lib/server/db/schema.test.ts: [2m442:21 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ [22m [39m
[31m [1mSerialized Error: [22m [39m [90m{ code: 'SQLITE_ERROR' } [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mVectorSearch [2m > [22mreturns empty array when no embeddings exist
[31m [1mSqliteError [22m: no such column: se.profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m VectorSearch.vectorSearch src/lib/server/search/vector.search.ts: [2m100:24 [22m [39m
[90m 98| [39m }
[90m 99| [39m
[90m100| [39m const rows = this.db.prepare<unknown[], RawEmbeddingRow>(sql).all(..…
[90m | [39m [31m^ [39m
[90m101| [39m
[90m102| [39m [35mconst [39m scored [33m: [39m [33mVectorSearchResult [39m[] [33m= [39m rows [33m. [39m [34mmap [39m((row) [33m=> [39m {
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m289:22 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mVectorSearch [2m > [22mreturns results sorted by descending cosine similarity
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m302:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mVectorSearch [2m > [22mrespects the limit parameter
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m321:4 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mVectorSearch [2m > [22monly returns snippets from the specified repository
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m340:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mVectorSearch [2m > [22mhandles embeddings with negative values
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m352:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mreturns results when hybrid mode is active (alpha = 0.5)
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m430:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mdeduplicates snippets appearing in both FTS5 and vector results
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m449:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mrespects the limit option
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m471:4 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mreturns vector-ranked results when alpha = 1
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m503:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mresults include snippet and repository metadata
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m528:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mall results belong to the requested repository
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m556:4 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mfilters by snippet type when provided
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m591:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22muses alpha = 0.5 when not specified
[31m [1mSqliteError [22m: table snippet_embeddings has no column named profile_id [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m seedEmbedding src/lib/server/search/hybrid.search.service.test.ts: [2m112:4 [22m [39m
[90m110| [39m [35mconst [39m f32 [33m= [39m [35mnew [39m [33mFloat32Array [39m(values) [33m; [39m
[90m111| [39m client
[90m112| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m113| [39m [32m`INSERT OR REPLACE INTO snippet_embeddings
[90m114| [39m (snippet_id, profile_id, model, dimensions, embedding, create…
[90m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m616:3 [22m [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22mfilters by versionId — excludes snippets from other versions
[31m [1mSqliteError [22m: no such table: embedding_profiles [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m647:5 [22m [39m
[90m645| [39m [90m// Create embedding profile [39m
[90m646| [39m client
[90m647| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m648| [39m `INSERT INTO embedding_profiles (id, provider_kind, title, enabled…
[90m649| [39m VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22msearchMode=keyword never calls provider.embed()
[31m [1mSqliteError [22m: table snippets_fts has no column named id [39m
[90m [2m❯ [22m Database.exec node_modules/better-sqlite3/lib/methods/wrappers.js: [2m9:14 [22m [39m
[36m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m734:10 [22m [39m
[90m732| [39m }) [33m; [39m
[90m733| [39m
[90m734| [39m client [33m. [39m [34mexec [39m(
[90m | [39m [31m^ [39m
[90m735| [39m `INSERT INTO snippets_fts (id, repository_id, version_id, title, br…
[90m736| [39m VALUES ('${snippetId}', '${repoId}', NULL, NULL, NULL, 'keyword…
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[25/36]⎯ [22m [39m
[41m [1m FAIL [22m [49m [30m [42m server [49m [39m src/lib/server/search/hybrid.search.service.test.ts [2m > [22mHybridSearchService [2m > [22msearchMode=semantic uses only vector search
[31m [1mSqliteError [22m: no such table: embedding_profiles [39m
[90m [2m❯ [22m Database.prepare node_modules/better-sqlite3/lib/methods/wrappers.js: [2m5:21 [22m [39m
[36m [2m❯ [22m src/lib/server/search/hybrid.search.service.test.ts: [2m772:5 [22m [39m
[90m770| [39m [90m// Create profile [39m
[90m771| [39m client
[90m772| [39m [33m. [39m [34mprepare [39m(
[90m | [39m [31m^ [39m
[90m773| [39m `INSERT INTO embedding_profiles (id, provider_kind, title, enabled…
[90m774| [39m VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)` [39m
[31m [2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/36]⎯ [22m [39m
[2m Test Files [22m [1m [31m3 failed [39m [22m [2m | [22m [1m [32m19 passed [39m [22m [90m (22) [39m
[2m Tests [22m [1m [31m35 failed [39m [22m [2m | [22m [1m [32m416 passed [39m [22m [90m (451) [39m
[2m Start at [22m 19:10:26
[2m Duration [22m 6.93s [2m (transform 7.37s, setup 0ms, import 9.29s, tests 8.17s, environment 11ms) [22m
[1m [41m FAIL [49m [22m [31mTests failed. Watching for file changes... [39m
[2mpress [22m [1mh [22m [2m to show help [22m [2m, [22m [2mpress [22m [1mq [22m [2m to quit [22m
[31mCancelling test run. Press CTRL+c again to exit forcefully.
[39m