Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
308 commits
Select commit Hold shift + click to select a range
8bb0f28
feat: dual HTTP transport β€” legacy SSE, security headers, rate limiti…
Mar 5, 2026
ce67991
docs: add Legacy SSE endpoints, security features to HTTP Transport s…
Mar 5, 2026
25656ed
chore: update dependencies and security patches
Mar 7, 2026
ad23af5
perf: performance audit remediation β€” 8 optimizations across adapters…
Mar 7, 2026
3458ff7
Security audit remediation: 7 findings across CI, transport, validati…
Mar 7, 2026
7e9a478
feat: add MCP tool icons (2025-11-25 spec) - 8 group icons + server i…
Mar 9, 2026
45e9f80
feat: add introspection (6 tools) and migration (6 tools) groups with…
Mar 9, 2026
76cd13f
Add introspection/migration tools: tests, NativeSqliteAdapter fix, RE…
Mar 9, 2026
49817fc
Add 3 diagnostic tools: storage_analysis, index_audit, query_plan (in…
Mar 9, 2026
bf7f573
fix: correct introspection/migration tool counts and Efficiency Tip i…
Mar 9, 2026
36aefc0
Add Playwright E2E test suite for dual HTTP/SSE transport
Mar 9, 2026
cdbe11b
Add Playwright artifacts to .gitignore
Mar 9, 2026
a3b8fb7
Add vitest.config.ts to exclude Playwright e2e specs from Vitest
Mar 9, 2026
905bd70
refactor: split 6 large tool files into sub-directories with barrel e…
Mar 9, 2026
4d01701
docs: Add social preview image layout
Mar 9, 2026
0cfecdf
refactor: split Tier 2 files into modular directory structures
Mar 9, 2026
2952a7e
chore: update dependencies and security patches
Mar 10, 2026
8c858b5
fix: wrap index tool Schema.parse() calls in try/catch for structured…
Mar 10, 2026
81fcaf7
fix: move CreateIndex columns min(1) from schema to handler for struc…
Mar 10, 2026
61dee3c
fix: JSON tool Zod validation - structured handler errors for invalid…
Mar 10, 2026
92a127d
fix: wrap Schema.parse() in try/catch for 3 core table handlers (crea…
Mar 10, 2026
3b5c7b4
fix(admin): wrap 6 admin tool handlers in try-catch for structured Zo…
Mar 10, 2026
844d44c
fix(admin): move append_insight min-length check to handler level
Mar 10, 2026
6853e94
fix(admin): catch Zod validation errors in 5 admin tool handlers
Mar 10, 2026
7367b85
fix(geo): wrap Schema.parse() inside try-catch for 4 Haversine tools
Mar 10, 2026
c439869
fix(introspection): wrap Schema.parse in try/catch for all 9 handlers
Mar 10, 2026
72c8558
fix(introspection): remove min(1) refinement leak from QueryPlanSchema
Mar 10, 2026
d959e6f
fix: migration tool Zod validation leaks and code mode log alias mapping
Mar 10, 2026
8c646e7
fix: text/FTS tool Zod validation leaks (17 tools)
Mar 10, 2026
ec72bd9
fix: move geo lat/lon range validation from Zod schema to handler level
Mar 10, 2026
1f93a88
fix: resolve unsafe input references in catch blocks (fts.ts, search.ts)
Mar 10, 2026
5a8553d
fix: make GeoDistanceOutputSchema accommodate error responses
Mar 10, 2026
acd3aed
fix(stats): move Zod refinements to handler-level validation for hist…
Mar 10, 2026
3000973
fix(core): add empty query validation and Schema.parse try/catch to r…
Mar 10, 2026
6ad438a
fix: sqlite_json_normalize_column WASM _rowid_ compatibility
Mar 10, 2026
1146aaa
fix: update 11 stale security tests to structured error assertions
Mar 10, 2026
fd32a7f
fix: index_stats structured errors + 7 FTS test assertion migrations
Mar 10, 2026
279b7fa
fix: introspection tools WASM FTS5 crash - wrap per-table queries in …
Mar 11, 2026
d2cf845
docs: promote Code Mode as recommended config, consolidate JSON examples
Mar 11, 2026
1e50c46
docs: remove inline comments from code blocks for clean copy-paste
Mar 11, 2026
f838c06
Adjust hero line in readmes.
Mar 11, 2026
0babf56
test(e2e): expand Playwright suite from 17 to 39 tests
Mar 11, 2026
7d9eba0
Add performance benchmark suite (9 benchmarks)
Mar 11, 2026
dfcf047
docs: fix MCP protocol version, resource URI template, add E2E badge,…
Mar 11, 2026
ea70099
fix: histogram empty table phantom bucket & vector dimension mismatch…
Mar 11, 2026
207a657
fix: vector DDL-based dimension enforcement, search skipped reporting…
Mar 11, 2026
d7d9d81
fix: error classification for INSERT column errors and text validate …
Mar 11, 2026
3329c6e
fix: specific error codes for TABLE_NOT_FOUND and COLUMN_NOT_FOUND in…
Mar 11, 2026
6c3c9a4
fix: regression UNKNOWN_ERROR code + json_set/remove no-op warnings
Mar 11, 2026
51223c4
fix(introspection): add DROP INDEX medium risk detection to migration…
Mar 11, 2026
583826c
chore: Modularize SQLite adapters, extract helpers, and restructure v…
Mar 11, 2026
f89e8a4
perf: comprehensive performance audit optimizations (R-1, B-1, DK-2, …
Mar 11, 2026
c43ea78
security: audit remediation β€” hono fix, HTTP timeouts, SHA-pinned CI,…
Mar 11, 2026
b530a9d
Audit fixes: rename PascalCase files, harden Zod schemas, consolidate…
Mar 11, 2026
5d57598
Code quality audit fixes: dedup validateColumnExists, narrow Database…
Mar 11, 2026
e792c4c
E2E Phase 2: prompts, streamable-http, wasm, errors specs + auth impo…
Mar 11, 2026
4194f29
chore: code quality audit fixes
Mar 11, 2026
aa225c9
audit: typed errors in native adapter, normalizeParams dedup
Mar 11, 2026
bbeab9d
refactor: code quality audit β€” dedup extension loading, migration map…
Mar 11, 2026
b3b4474
Transport feature backport from postgres-mcp: trustProxy, HSTS opt-in…
Mar 11, 2026
df71b52
Code quality: query executor extraction, middleware test import fix
Mar 11, 2026
18024e6
docs: synchronize security features across README and DOCKER_README
Mar 11, 2026
2d96764
audit: fix 3 moderate findings β€” error handling, PRAGMA dedup, extens…
Mar 11, 2026
b23a8b8
audit: typed error classes, base ensureConnected, transaction extract…
Mar 11, 2026
0c2e59c
refactor: extract shared helpers, query executor, type adapters, and …
Mar 11, 2026
a6e9bb1
Fix code quality audit findings (logger split, JSONRPC constant, tabl…
Mar 11, 2026
383f3da
refactor: replace generic Error instances with DbMcpError across code…
Mar 11, 2026
548d703
chore: implement performance audit fixes
Mar 11, 2026
c982a89
feat: payload efficiency flags + 100 payload contract tests
Mar 12, 2026
5b17124
refactor: optimize server instructions for agent consumption
Mar 12, 2026
6e0d3c1
feat: OAuth 2.1 module refinements β€” middleware, scopes, discovery, a…
Mar 12, 2026
4269771
Harmonize error handling standards and update documentation
Mar 12, 2026
e748620
feat: complete error handling migration - formatHandlerError + ErrorF…
Mar 12, 2026
c524d7d
feat(e2e): add init round-trip and SSE client round-trip protocol tests
Mar 12, 2026
ed35c9e
feat(auth): add --auth-token bearer middleware and expose OAuth 2.1 C…
Mar 12, 2026
ff0da32
docs: update README and DOCKER_README with auth CLI flags and env vars
Mar 12, 2026
773d2f2
Fix broken multi-line imports in ErrorResponseFields migration (4 files)
Mar 12, 2026
1ab79ed
Fix broken imports from ErrorResponseFields migration (5 files)
Mar 12, 2026
d47977f
Rename formatHandlerError to formatHandlerErrorResponse for cross-ser…
Mar 12, 2026
ae3b896
docs: correct tool group count in READMEs
Mar 12, 2026
491ff45
chore: refactor large files to address complexity audit findings
Mar 12, 2026
aba2e4a
chore: code quality audit fixes
Mar 12, 2026
7970a46
chore: code quality audit fixes
Mar 12, 2026
03006f4
perf: audit improvements (source maps, sandbox logging, schema cache)
Mar 12, 2026
4d12a80
security: mitigate sql injection risk and harden schemas
Mar 12, 2026
e9978af
fix: core tools zod output schema validation leaks
Mar 12, 2026
0b06e09
fix: JSON tool schema validation leaks and numeric parameter coercion
Mar 12, 2026
52f4f48
Fix raw JSONB serialization in sqlite_json_query
Mar 12, 2026
011cbbb
chore: unified audit fixes β€” SHA-pin CI actions, remove Dockerfile LA…
Mar 13, 2026
513c3fd
mcp-builder compliance: annotations, error mixin, DNS rebinding, titl…
Mar 13, 2026
d159e2a
mcp-builder D7: configurable instruction level via CLI and env var
Mar 13, 2026
00c0d03
chore: track test-database docs and test plans, ignore only generated…
Mar 14, 2026
e22211f
chore: update dependencies and security patches
Mar 14, 2026
a7cdcf2
docs: fix stale instruction-level token estimates (measured: ~1K/~1.2…
Mar 14, 2026
c6fbde9
test: add missing Zod sweep for sqlite_pragma_settings and sqlite_exe…
Mar 14, 2026
43a597c
Wire --enable-hsts CLI flag and MCP_ENABLE_HSTS env var to HTTP trans…
Mar 14, 2026
26b0dcd
docs: add custom tool selection examples to README and DOCKER_README
Mar 14, 2026
aeb8ce6
test(e2e): port 32 HTTP transport tests from memory-journal-mcp
Mar 14, 2026
1144e48
test: port integration test scripts + fix tool annotations
Mar 14, 2026
2130005
refactor: mcp-builder compliance - rename formatter, wire argsSchema,…
Mar 14, 2026
493b347
test: add Code Mode agent-driven test plan (12 phases, 58 tests)
Mar 15, 2026
0eb5aa6
fix(json): replace z.coerce.number() with z.preprocess() for limit/sa…
Mar 15, 2026
3ff6ad9
chore: update dependencies and security patches
Mar 15, 2026
8a013a7
fix(migration): replace z.coerce.number() with z.preprocess() for id/…
Mar 15, 2026
4007068
fix: prevent LIMIT 1000 injection on PRAGMA/EXPLAIN statements in sql…
Mar 15, 2026
f1cd883
chore: enhance reset-database.ps1 with backup cleanup and stale artif…
Mar 15, 2026
d307cd3
docs: fix formatting in test-tools.md and remove stale gitignore note
Mar 15, 2026
7439072
fix: add missing tables to reset-database.ps1 artifact allowlist
Mar 15, 2026
17b2eac
fix: text/FTS output schema validation leaks and numeric input coercion
Mar 15, 2026
edc7549
feat: align server instructions with --tool-filter (reduce wasted tok…
Mar 15, 2026
968124c
fix: add z.preprocess coercion to stats and window tool numeric params
Mar 15, 2026
cb0ae7f
fix: make required window params optional in schema for coercion safety
Mar 15, 2026
b88c61b
refactor: replace push-based instructions with pull-based sqlite://he…
Mar 15, 2026
cabfab7
docs: update README/DOCKER_README with help resources, rewrite test s…
Mar 15, 2026
cd61f8e
docs: update test documentation for help resource architecture
Mar 15, 2026
ff23ada
refactor: rename test-database to test-server
Mar 15, 2026
e21be62
fix: restore test-database.sql references and add agent experience test
Mar 15, 2026
d84692b
docs: update code-map.md for help resource architecture
Mar 15, 2026
eee0a8e
docs: restructure agent experience test into 4 shortcut-based passes
Mar 15, 2026
3e36260
docs: add geo, admin, introspection/migration passes to agent experie…
Mar 15, 2026
5619336
docs: add explicit tool group annotations to agent experience test pa…
Mar 15, 2026
4f2815b
docs: fix README gitignore claim, update scenario count
Mar 15, 2026
faac282
test: add pre-flight check prompt
Mar 15, 2026
4886fb9
fix: update benchmark imports for refactored auth module paths
Mar 15, 2026
7cc33c2
Add note to direct mcp testing that *temp files may not be cleaned up…
Mar 15, 2026
def92ce
fix: add z.preprocess coercion for numeric and enum params in vector …
Mar 15, 2026
5bd866c
fix(vector): coerce wrong-type array params and validate batch dimens…
Mar 15, 2026
6478bbd
fix: admin group Zod coercion leaks, refinement leaks, and missing tr…
Mar 15, 2026
b3c194e
fix: restore indexes/views/triggers in backupβ†’restore cycle, standard…
Mar 15, 2026
fa7ba18
fix: add empty path validation for backup/restore/verify, fix admin t…
Mar 15, 2026
c18b9b8
fix: resolve EXTENSIONS_DIR from project root instead of fragile rela…
Mar 15, 2026
ccad74e
fix(admin): pragma_settings validation leak, error field consistency,…
Mar 15, 2026
2927879
fix: normalize path slashes in pragma_database_list to suppress misle…
Mar 15, 2026
ce4c373
fix: append_insight error field consistency, test prompt annotation i…
Mar 15, 2026
fea917a
fix: move ExecuteCodeSchema.parse() inside try/catch and make metrics…
Mar 15, 2026
a8a4665
Refined instructions for cleanup of temp files in direct MCP call tes…
Mar 15, 2026
c912f07
fix: add z.preprocess() coercion for numeric/enum params in geo and S…
Mar 15, 2026
9a63198
docs: add required enum coercion pattern to test-tools.md Zod leak se…
Mar 15, 2026
5864b30
docs: update code-map with SpatiaLite file split and utility entries
Mar 15, 2026
f8aab4d
fix: add boolean coercion to SpatiaLite schema params (forceReload, e…
Mar 15, 2026
9d94d41
fix(geo): replace internal error leak in spatialite_query with user-f…
Mar 15, 2026
d524b63
fix: add excludeSystemTables filter to 4 introspection tools, elevate…
Mar 15, 2026
869ac37
docs: update code-map with SpatiaLite filter utility cross-references
Mar 15, 2026
ee95e72
docs: elevate payload issues to blocking in all test prompt files
Mar 15, 2026
c762de6
fix(geo): validate sqlite_spatialite_index action enum in handler
Mar 15, 2026
190148f
fix(introspection): add excludeSystemTables to dependency_graph and t…
Mar 15, 2026
9aedf32
fix(geo): resolve output schema leaks in geo_distance and geo_nearby
Mar 15, 2026
e412445
fix(geo): remove .strict() from SpatiaLite schemas and standardize er…
Mar 15, 2026
6499545
fix: remove .strict() from all tool input schemas across all groups
Mar 15, 2026
9a307e4
fix(json): add missing fields to json_valid and json_validate_path ou…
Mar 15, 2026
f634585
fix(admin): add missing fields to optimize, vacuum, and analyze_csv_s…
Mar 15, 2026
6a7b043
docs(test-tools): add output schema validation testing guidance
Mar 15, 2026
1376214
docs(test): improve clarity and structure of test prompt files
Mar 15, 2026
f296d36
docs: simplify test-tools checklist
Mar 15, 2026
4d0b2aa
fix: add introspection/migration help resources, fix 11 phantom tool …
Mar 16, 2026
419d147
docs: enrich help resources with full code examples from old tool-ref…
Mar 16, 2026
e05f009
docs: enhance CONTRIBUTING.md with project-specific conventions and w…
Mar 16, 2026
0e60dcf
chore: remove leftover deps.json temp file from dependency audit
Mar 16, 2026
f26c84e
docs: update stale file path comments in tool-constants.ts to match c…
Mar 16, 2026
44a2aa1
fix(json): resolve outputFormat enum leak and align output schemas
Mar 16, 2026
fc496cf
fix(json): add missing warning field to JsonSetOutputSchema and JsonR…
Mar 16, 2026
44bdd43
fix(json): add undefined guards for value/mergeData/data params in 5 …
Mar 16, 2026
4df1ca5
fix(text): coerce text_substring start param, add truncated to text_v…
Mar 16, 2026
600b7f7
docs: update temp table cleanup note with code mode examples
Mar 16, 2026
60069e1
fix(vector): reject invalid metric values instead of silent cosine fa…
Mar 16, 2026
b7a21ef
test(e2e): add 6 spec files (~209 tests) automating manual agent prompts
Mar 16, 2026
cfa26d1
fix(e2e): resolve rate-limit flakiness with 10x limit bump and client…
Mar 16, 2026
6d6b38a
fix(admin): catch raw MCP error in analyze_csv_schema, fix error fiel…
Mar 16, 2026
bd41ce1
wire output schemas to 7 transaction tool definitions
Mar 16, 2026
c9133bd
test prompt: add orphaned output schema detection as ⚠️ finding
Mar 16, 2026
c92847e
fix: 100% output schema consistency β€” wire, consolidate, delete dead …
Mar 16, 2026
40918fd
fix: rename valueColumn β†’ column for window tool consistency, add tex…
Mar 16, 2026
5254c28
fix(e2e): correct window test params, auto-seed E2E database
Mar 16, 2026
55880f6
docs: sync code-map.md with recent schema wiring and refactor changes
Mar 16, 2026
41cd58d
refactor(e2e): point Playwright at test-server/test.db directly
Mar 16, 2026
fff0b11
test(e2e): add introspection, CSV, and SpatiaLite payload specs
Mar 16, 2026
5b3a910
fix(core): add try/catch to listTables handler, filter _mcp_ internal…
Mar 16, 2026
b145735
fix(e2e): configure extension paths for native server
Mar 16, 2026
c389cd2
refactor(core): rename tableName to table in core tool schemas and tests
Mar 16, 2026
fcad666
test(e2e): update core tool calls from tableName to table
Mar 16, 2026
681f78f
fix(core): add try/catch to sqlite_create_table; add native-only E2E …
Mar 16, 2026
5f7d17b
feat: add backward-compatible parameter aliases and E2E tests for hel…
Mar 16, 2026
0b7a3a2
fix: stale valueColumn/tableName references in help content, codemode…
Mar 16, 2026
b167b6b
Refine test-tools.md instructions to implement architectually consist…
Mar 16, 2026
b3d5605
fix: add table/column existence validation to window function tools
Mar 16, 2026
3a8c2b9
fix: chi-square accepts categorical columns, window tools pre-validat…
Mar 16, 2026
1628e1c
refactor: extract inline hypothesis output schema to centralized stat…
Mar 16, 2026
a7fca6a
refactor: consolidate all inline output schemas into centralized outp…
Mar 16, 2026
4ac021d
docs: codify centralized output-schema-only convention in code-map.md
Mar 16, 2026
af0ffec
docs: add inline output schema detection check to test protocol
Mar 16, 2026
adef29b
fix(vector): output schema alignment + dimension validation fallback
Mar 16, 2026
539e955
fix(admin): relocate AppendInsightOutputSchema, add DbstatOutputSchem…
Mar 16, 2026
8d6d784
fix(vector): add missing skipped/warning fields to VectorSearchOutput…
Mar 16, 2026
cbbad19
fix(codemode): fail-closed readonly guard + SpatiaLite annotations
Mar 16, 2026
1930e4d
fix(text): resolve 4 Zod enum leaks and add 5 missing output schemas
Mar 17, 2026
b010aed
fix: cross-group enum coercion audit β€” 8 z.enum leaks in stats, text,…
Mar 17, 2026
69dfa93
fix(text): resolve enum validation leaks in text_trim mode and phonet…
Mar 17, 2026
7e3c26e
fix(stats): replace coerceEnum with coerceEnumValues factory for 3 op…
Mar 17, 2026
d0986a4
fix(text): replace coerceEnum with coerceEnumValues factory for FTS e…
Mar 17, 2026
481672a
fix: advanced_search techniques array enum leak β€” handler-side valida…
Mar 17, 2026
7e884cf
fix(stats): auto-exclude long-content columns in sqlite_stats_top_n p…
Mar 17, 2026
8ffe454
fix: stats_summary text column handling + describe alias remapping
Mar 17, 2026
aee1623
fix(admin): use error field instead of message for CSV tool failure p…
Mar 17, 2026
508d288
fix(admin): use error field instead of message for CSV tool failure p…
Mar 17, 2026
20bae94
fix(admin): wrap sqlite_vacuum executeQuery in try/catch and add WASM…
Mar 17, 2026
59adae1
fix(geo): required numeric params return structured errors for wrong-…
Mar 17, 2026
100fc9f
refactor: centralize introspection output schemas + fix query plan co…
Mar 17, 2026
df4dfe1
refactor: centralize migration output schemas to output-schemas/migra…
Mar 17, 2026
82b8288
fix(window): enum coercion for rankType and direction params
Mar 17, 2026
f4fdd6e
fix: FTS tools return TABLE_NOT_FOUND instead of generic DB_QUERY_FAI…
Mar 17, 2026
ce2f804
fix: add readOnly annotations to 6 window function tools for code mod…
Mar 17, 2026
221e283
fix(window): normalize lag_lead direction to case-insensitive
Mar 17, 2026
055f318
fix: auto-refine generic error codes in DbMcpError when suggestion pa…
Mar 17, 2026
426c6b7
fix: add missing write annotations to 7 transaction tools, add annota…
Mar 17, 2026
886704e
fix: add missing error codes to vector_distance and vector_get responses
Mar 17, 2026
15fa076
fix: make 24 output schema domain fields optional for error path tole…
Mar 17, 2026
767de51
test: close 11 E2E gaps identified by manual prompt audit
Mar 17, 2026
4ba1fab
fix: correct output shape assumptions in introspection and integratio…
Mar 17, 2026
38bd5ae
fix: code mode rate limit env var + simplify integration pipeline test
Mar 17, 2026
c4a9115
fix: use sqlite_create_table for DDL in integration pipeline test
Mar 17, 2026
ad72771
test: add 13 resource + prompt depth assertions from manual test audit
Mar 17, 2026
d85ed5e
fix: add VIEW_NOT_FOUND, FILE_NOT_FOUND error codes and CSV validatio…
Mar 17, 2026
6a410d5
test: add 13 resource + prompt depth assertions, fix health check
Mar 17, 2026
2e2b48e
fix: add missing error codes to admin tool error responses
Mar 17, 2026
4c17ae1
chore: update dependencies and security patches
Mar 18, 2026
08a666d
fix: add missing error codes to admin tool error responses, improve t…
Mar 18, 2026
29ce165
fix: views resource test - DB actually has 6 views
Mar 18, 2026
8cb5bfe
fix(transactions): add structured error codes to transactionExecute f…
Mar 18, 2026
30ade4d
fix(introspection): disjoint root/leaf tables, error codes, FK-aware …
Mar 18, 2026
b9aa883
fix(introspection): apply storage analysis limit after system table f…
Mar 18, 2026
71a38b7
fix: add structured error codes to all migration tool error responses
Mar 18, 2026
672ff38
fix(migration): recorded status, rollback guard, duplicate version wa…
Mar 18, 2026
016c1e4
fix(migration): block duplicate versions, validate comment-only rollb…
Mar 18, 2026
adf91fa
fix(migration): SHA-256 dedup scope, recorded history filter, recorde…
Mar 18, 2026
9c3065f
fix: add MALFORMED_JSON error suggestion for misidentified column nam…
Mar 18, 2026
f0aebd2
fix: add missing code/category to WASM limitation error responses in …
Mar 18, 2026
f12cb85
docs: rewrite CONTRIBUTING.md with improved visual hierarchy and stru…
Mar 18, 2026
1494ddc
docs: add Code of Conduct with formatting fixes and contact info
Mar 18, 2026
b7c59bb
docs: comprehensive SECURITY.md with full security surface coverage
Mar 18, 2026
771a8bd
chore: minor test-server cleanup
Mar 18, 2026
83f5d43
docs: update code-map.md to reflect all UNRELEASED changes
Mar 18, 2026
d67e4c7
docs: adopt stronger marketing wording from postgres-mcp for What Set…
Mar 18, 2026
d0499a9
docs: sync DOCKER_README What Sets Us Apart wording with main README
Mar 18, 2026
e954dde
ci: update Docker Hub short description with 139 tools and Code Mode
Mar 18, 2026
c0ccae3
test: add Tier 6 test suite - spatialite, vtable, verify, restore, an…
Mar 18, 2026
556730f
test: add Tier 7 tests (json-operations, vector) β€” 90% line coverage
Mar 18, 2026
e229aa5
v1.1.0 - Security, structured errors, introspection/migration tools, …
Mar 18, 2026
bc3fcdc
fix: address CodeQL and Copilot review findings for v1.1.0
Mar 18, 2026
d66db0a
test: add coverage tests for codemode, DML CTE, introspection risks, …
Mar 18, 2026
5977286
v1.1.0 - Security, Structured Errors & Developer Experience
Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
66 changes: 53 additions & 13 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# Dependencies (rebuilt in container)
node_modules/

# Build artifacts (rebuilt in container)
dist/
build/
out/
*.tsbuildinfo

# Git
.git/
.gitignore
Expand All @@ -6,23 +15,31 @@
# GitHub
.github/

# Development
# Development files
.env
.env.*
.vscode/
.idea/
!.env.example
.dev.vars
*.log

# Dependencies (rebuilt in container)
node_modules/
# IDE/Editor
.gemini/
.vscode/
.idea/
*.swp
*.swo
*~

# Build artifacts (rebuilt in container)
dist/
# OS files
.DS_Store
Thumbs.db

# Test files
tests/
__tests__/
test-database/
coverage/
test-results.json
*.test.ts
*.spec.ts
vitest.config.ts
Expand All @@ -39,11 +56,10 @@ docs/
!README.md
!LICENSE

# IDE/Editor
.DS_Store
Thumbs.db
*.swp
*.swo
# Node and caching
.npm/
.eslintcache/
.nyc_output/

# Config files not needed in container
eslint.config.js
Expand All @@ -53,6 +69,30 @@ eslint.config.js
# Extensions (user provides these)
extensions/

# MCP Registry tokens
# MCP Registry tokens and config
.mcpregistry_github_token
.mcpregistry_registry_token
server.json

# Docker (self-reference)
Dockerfile
.dockerignore
docker-compose*.yml

# NPM packaging config
.npmignore

# Alternative lock files
yarn.lock
pnpm-lock.yaml

# Release notes
releases/

# Temporary files
tmp/
temp/
*.tmp

# Assets
social-preview.png
8 changes: 4 additions & 4 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
matrix:
language: ["javascript-typescript"]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Check for JS/TS files
id: check-files
run: |
Expand All @@ -32,14 +32,14 @@ jobs:
else
echo "has_code=false" >> $GITHUB_OUTPUT
fi
- uses: github/codeql-action/init@v4
- uses: github/codeql-action/init@0d579ffd059c29b07949a3cce3983f0780820c98 # v4
if: steps.check-files.outputs.has_code == 'true'
with:
languages: ${{ matrix.language }}
queries: security-extended,security-and-quality
- uses: github/codeql-action/autobuild@v4
- uses: github/codeql-action/autobuild@0d579ffd059c29b07949a3cce3983f0780820c98 # v4
if: steps.check-files.outputs.has_code == 'true'
- uses: github/codeql-action/analyze@v4
- uses: github/codeql-action/analyze@0d579ffd059c29b07949a3cce3983f0780820c98 # v4
if: steps.check-files.outputs.has_code == 'true'
with:
category: "/language:${{matrix.language}}"
Expand Down
35 changes: 18 additions & 17 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ github.event.workflow_run.head_sha }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3

- name: Build image for scanning (local only)
uses: docker/build-push-action@v6
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
with:
context: .
file: Dockerfile
Expand Down Expand Up @@ -95,7 +95,8 @@ jobs:
echo "πŸ”„ Continuing build - scan timeout is not a security failure"
else
echo "⚠️ Docker Scout scan failed with exit code $exit_code"
echo "πŸ”„ Continuing build - will rely on Trivy for security validation"
echo "❌ Security gate failed β€” cannot validate image safety"
exit 1
fi
fi

Expand Down Expand Up @@ -126,15 +127,15 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ github.event.workflow_run.head_sha }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKER_USERNAME }}
Expand All @@ -152,7 +153,7 @@ jobs:

- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
Expand All @@ -163,7 +164,7 @@ jobs:

- name: Build and push platform image
id: build
uses: docker/build-push-action@v6
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7
with:
context: .
file: Dockerfile
Expand All @@ -183,7 +184,7 @@ jobs:
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: digests-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }}
path: /tmp/digests/*
Expand All @@ -208,22 +209,22 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ github.event.workflow_run.head_sha }}

- name: Download digests
uses: actions/download-artifact@v7
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKER_USERNAME }}
Expand All @@ -240,7 +241,7 @@ jobs:

- name: Extract metadata for manifest
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
Expand All @@ -263,15 +264,15 @@ jobs:
# Update Docker Hub description
- name: Update Docker Hub Description
if: github.ref == 'refs/heads/main'
uses: peter-evans/dockerhub-description@v5
uses: peter-evans/dockerhub-description@37930b1c2abaa49bbe596cd826c3c89aef350131 # v5
continue-on-error: true
timeout-minutes: 5
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ${{ env.IMAGE_NAME }}
readme-filepath: ./DOCKER_README.md
short-description: "SQLite MCP Server with OAuth 2.1, HTTP/SSE, 122 Tools, and Smart Tool Filtering."
short-description: "SQLite MCP Server β€” 139 Tools, Code Mode, OAuth 2.1, Dual-Transport HTTP/SSE & Smart Tool Filtering"

- name: Deployment Summary
if: github.ref == 'refs/heads/main'
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: E2E Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: lts/*
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Install Playwright Browsers
run: npx playwright install --with-deps

- name: Build
run: npm run build

- name: Run E2E tests
run: npm run test:e2e

- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
retention-days: 7
51 changes: 46 additions & 5 deletions .github/workflows/lint-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,23 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: ${{ matrix.node-version }}
cache: "npm"

- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: node_modules
key: node-modules-${{ matrix.node-version }}-${{ hashFiles('package-lock.json') }}

- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: npm ci

- name: Run ESLint
Expand All @@ -45,10 +53,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: "24.x"
cache: "npm"
Expand All @@ -58,4 +66,37 @@ jobs:

- name: Run npm audit
run: npm audit --audit-level=moderate
continue-on-error: true

benchmarks:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: "24.x"
cache: "npm"

- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: node_modules
key: node-modules-24.x-${{ hashFiles('package-lock.json') }}

- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
run: npm ci

- name: Run benchmarks
run: npm run bench 2>&1 | tee benchmark-results.txt

- name: Upload benchmark results
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: benchmark-results-${{ github.sha }}
path: benchmark-results.txt
retention-days: 30
4 changes: 2 additions & 2 deletions .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
# For release events, checkout the tag; for workflow_dispatch, use ref input or default to latest tag
ref: ${{ github.event.release.tag_name || format('v{0}', github.event.inputs.version) || github.ref }}

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: "24.x"
registry-url: "https://registry.npmjs.org"
Expand Down
Loading
Loading