Codex Report — 2025-10-21T12:00:00Z
Objective
Replace the legacy CURIE splitter override with one that validates prefixes via rdflib namespace expansion while preserving the meta builder sanity harness.
Extend the pytest suite to exercise the new validation path and surface failures for unknown or malformed CURIEs.
Materials Reviewed
src/main/webapp/plugins/rdfexport/legacy/overrides/curie_validator.pysrc/main/webapp/plugins/rdfexport/legacy/draw_io_parser.pysrc/main/webapp/plugins/rdfexport/legacy/tests/test_patched_parser.pysrc/main/webapp/plugins/rdfexport/meta_builder/drawio_meta_builder.py
Actions
Preserved sanity override – Moved the previous demonstration override into
legacy/tests/sanity_overrides/curie_validator_sanity_check_override.pyso the meta builder sanity check remains available without colliding with the production override.CURIE validation override – Replaced
_split_curie/_ensure_known_curiewith implementations that hydrate a temporary rdflib namespace manager from the active prefixes, callexpand_curie, and raise the parser’sNotInKnownExceptionwhen expansion fails.Pytest coverage – Added
legacy/tests/test_curie_validator.pyto assert that valid prefixes survive and invalid CURIEs raise errors, including a monkeypatch guard that confirmsNamespaceManager.expand_curieis invoked.Changelog update – Recorded the override change and accompanying tests under the plugin’s
[Unreleased]notes.Regression run – Synced Bun/uv/Pyodide tooling, regenerated the parser via meta builder, and captured the full Bun regression log for archival.
Testing
bun installbun run setup:uvbun run setup:pyodidebun run check(fails: pre-existing ruff/prettier findings in docs/chats and docs/aicode)bun run test:log:linux
Follow-up — 2025-10-21T15:45:00Z
Objective
Ensure DrawIO literals that merely contain colons continue to serialize while malformed CURIE-like values (for example
picoL:) are rejected by the rdflib-backed validator.Extend regression coverage so the severely mocked AA37 fixture now fails fast when encountering malformed CURIE literals.
Actions
Literal CURIE validation – Updated the override that fuels
individual_blocksso datatype literals invoke rdflib’s namespace expansion when they look like CURIEs, while skipping prose strings that contain whitespace after the colon.Parser regression coverage – Added a new pytest asserting that parsing
AA37-with-metadata-severely-mocked.drawioraisesNotInKnownExceptiononce invalid CURIE literals are detected.Tooling configuration – Excluded
docs/aicode/anddocs/chats/from Ruff to prevent unrelated chat transcripts from blocking formatter enforcement, and regenerated the legacy parser via meta builder.
Testing
bun run check(fails: legacy Prettier diffs in docs/aicode and docs/chats)bun run test:log:linux