Codex Report — 2025-10-09T23:57:49Z

Objective

  • Align the DrawIO RDF export plugin’s UI and download metadata with its Turtle output format.

  • Reinstate golden regression coverage in Bun by porting the legacy rdflib isomorphism checks to the Pyodide-backed pipeline.

Materials Reviewed

  • src/main/webapp/plugins/rdfexport/src/rdfexport.ts

  • src/main/webapp/plugins/rdfexport/tests/rdfexport.test.ts

  • Legacy pytest suite under src/main/webapp/plugins/rdfexport/legacy/tests/test_patched_parser.py

  • Turtle and N-Triples fixtures within src/main/webapp/plugins/rdfexport/tests/{fixtures,baselines}

Actions

  1. UI parity update: Adjusted the plugin resource string, default filename, format identifier, and MIME type so the menu entry and saved file all advertise Turtle (.ttl, text/turtle).

  2. Bundled artifact refresh: Mirrored the same string, extension, and MIME updates in the compiled rdfexport.js bundle to keep runtime output consistent without rerunning the build pipeline.

  3. Regression harness: Augmented the Bun test harness to locate .nt baselines, export Turtle via Pyodide, and execute the rdflib isomorphism/normalisation routine lifted from the pytest suite (filtering OWL ontology declarations) for every DrawIO fixture.

  4. Fixture iteration: Updated the test loop to skip only fixtures lacking .nt baselines and tightened expectations around Turtle file naming and MIME typing.

  5. Environment preparation: Synced Python dependencies with uv, pulled Pyodide assets, and ensured .venv is on PATH so bun run test can exercise the regenerated legacy checks locally.

Testing

  • bun run check

  • bun run test

Follow-up Notes

  • Future changes to Turtle serialisation should keep the normalisation helper in sync with the Python version to avoid false negatives.

  • The Pyodide asset download adds ~335 MB; cache retention would speed up subsequent CI runs.