Skip to content

Commit f40d22e

Browse files
committed
feat: production hardening — encryption, whitelist security, integration tests, coverage, error handling
CRITICAL SECURITY FIXES: - Encrypt stored credentials with AES-256-GCM (machine-specific key) - Replace blocklist with whitelist-based command security - Allowed commands: git, npm, node, python, ls, cat, grep, find, echo, etc. - Unknown commands require explicit approval - Blocked patterns: eval(), exec(), rm -rf /, curl|sh, fork bombs, etc. CODE QUALITY: - Remove ALL silent error swallowing (30 instances replaced with proper logging) - Added logger imports to all files that needed them - Removed placeholder files (state.json, mcp.json) - Added vitest.config.ts with coverage thresholds (60% lines, 50% branches) - Added @vitest/coverage-v8 dependency TESTING: - Created comprehensive E2E integration tests (41 new tests) - Tests cover: tool executor, security whitelist, encryption, session manager, settings manager, rate limiter, MCP manager, file lock, plugin loader - Total: 403 tests across 13 test files, 100% pass rate - Coverage enforcement in CI workflow CI/CD: - Updated CI to run tests with coverage - Upload coverage reports as artifacts - Updated release workflow with coverage step All changes maintain backward compatibility.
1 parent f2c350b commit f40d22e

30 files changed

+1303
-242
lines changed

.github/workflows/ci.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,15 @@ jobs:
3232
- name: Build
3333
run: npm run build
3434

35-
- name: Run tests
36-
run: npm test
35+
- name: Run tests with coverage
36+
run: npm run test:coverage
37+
38+
- name: Upload coverage report
39+
uses: actions/upload-artifact@v4
40+
if: always()
41+
with:
42+
name: coverage-report
43+
path: coverage/
3744

3845
- name: Verify dist output
3946
run: |

dist/bin/localcode.js

Lines changed: 7 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/bin/localcode.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/providers/client.js

Lines changed: 15 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/providers/client.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/sessions/manager.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/sessions/manager.js

Lines changed: 13 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)