Add Phase 0 test harness (vitest + ESLint) and fix build config

- Add vitest unit tests for Zustand app store state transitions (6 tests)
- Add mock speech-engine WebSocket protocol integration test (spawns server.py --mock on a free port)
- Add ESLint 10 flat config with typescript-eslint; add typecheck/lint/test scripts to package.json
- Fix pre-existing tsc -b breakage via noEmit in tsconfig.node.json; add dedicated tsconfig.tests.json project for Node-side tests
- Track src-tauri/Cargo.lock for reproducible Rust builds; enable protocol-asset Tauri feature
- Ignore generated artifacts (*.tsbuildinfo, src-tauri/gen/, emitted vite.config.js/.d.ts); remove stale emitted vite config copies
- Update AGENTS.md agent guide (demo scope lock, roadmap, verification commands)
- Add HANDOFF.md documenting Phase 0 state and remaining steps for the next agent
This commit is contained in:
2026-10-03 22:33:47 +07:00
parent 9eff88215c
commit 654033fba3
15 changed files with 7824 additions and 61 deletions

View File

@@ -0,0 +1,11 @@
import js from '@eslint/js';
import tseslint from 'typescript-eslint';
const tsFiles = ['**/*.{ts,tsx}'];
export default [
{ ignores: ['dist/', 'node_modules/', 'src-tauri/target/', 'speech-engine/.venv/'] },
{ files: tsFiles, ...js.configs.recommended },
// typescript-eslint entries come last so their overrides of core rules win.
...tseslint.configs.recommended.map((entry) => ({ files: tsFiles, ...entry })),
];