Skip to content

v1.2.9

Choose a tag to compare

@nataliapc nataliapc released this 15 Apr 20:09
· 10 commits to main since this release

What's New

Unit Test Suite

  • Vitest test framework added — The project now includes a full unit test suite using Vitest. Run tests with npm test, watch mode with npm run test:watch, and coverage reports with npm run test:coverage.
  • Command queue tests — Covers sendCommand() serialization, reply parsing (success/error/HTML entities), concurrent command queuing, 10-second timeout behavior, buffer desync prevention, and error recovery after failures.
  • Lifecycle tests — Covers emu_close, forceClose, resetIO, destroy, emu_isInBasic, and emu_status, including race conditions and the safeResolve pattern.
  • Tool tests — Covers keyboard sendText encoding, screenshot fallback logic, and replay save/load path handling.
  • Utility tests — Covers all pure-function modules: async helpers, encoding/decoding, filesystem utilities, keyboard matrix and key combo builder, network utilities, CPU/VDP/palette/breakpoint/replay parsers, path normalization, and response validation.
  • Platform detection tests — Covers detectOpenMSXExecutable() for Linux, macOS, and Windows path resolution.

SKILL.md — BASIC Programming Best Practices

  • Best practices for MSX BASIC — The mcp-openmsx-usage skill now includes explicit guidance for BASIC programming workflows: always use \r (CR) as line terminator, always look up BASIC command syntax via the vector DB or BASIC Wiki resource before use, and prefer basic_programming tools over emu_keyboard.sendText for automatic speed optimization and input encoding.

Dependency Update

  • sharp moved to dependenciessharp is pinned to ^0.34.5 (previously >=0.32.0) and moved from optionalDependencies to regular dependencies for consistent behaviour across platforms.
  • vitest and @vitest/coverage-v8 added as dev dependencies.

Documentation

  • Added AGENTS.md with full project overview, structure reference, coding conventions, and test strategy for AI agent use.