Today, on 2026-05-29, mjEdit-Editor Community SLA-20260529.001-0.1.0 was released. The packages can be downloaded directly:

Downloads

What’s new?

Release Notes — mjEdit 0.1.0

Version: 0.1.0
Date: 2026-05-29
Build: SLA-20260529.001-0.1.0

05/26/2026 — REST API Demo Plugin

User Story: us-20260526-DEV-VANILLA-OSS

New features:

  • REST API Demo Plugin (plugins/restapi_demo_plugin/):

    • demo_server.py: FastAPI server on port 8765 (localhost only), endpoints: GET /health, GET /project/report, GET /controls/report — Path traversal protection via os.path.realpath() + whitelist
    • api_client.py: HTTP client only with urllib (no external dependencies), Regex check: only http://localhost: and http://127.0.0.1: allowed
    • restapi_gui.py: PySide6 tab with QThread worker for non-blocking requests, QTableWidget for results, shiboken6.isValid() checks
    • plugin.py: Full plugin lifecycle with server management
  • Example Plugin updated:

    • plugin.py: Completely rewritten (v2.0.0), bilingual comments
    • example_gui.py: Full PySide6 implementation with QTableWidget

Tests: 24 tests in tests/test_restapi_demo_plugin.py (all passed)

  • 6 security tests (path traversal, localhost enforcement)
  • 6 scan function tests (directory scan, OSCAL detection)
  • 7 API client security tests (URL validation, offline behavior)
  • 5 plugin lifecycle tests