Reference-corrected 2026-08-26 against main @ 6d41777. (a) has landed; (b)'s stated blocker is obsolete but its deliverable remains open.
Deferred (pre-existing) finding from the PR #161 code review — surfaced by the python reviewer. The two binding parity suites have drifted. Two follow-up gaps:
(a) napi parity: mds::type_mismatch
-> LANDED. Verified done at 6d41777; no work remains.
crates/mds-napi/__test__/index.spec.mjs:402-416 — test 'D2: type_mismatch from @if cross-type comparison carries a non-null span' — compiles '---\nx: 3\n---\n@if x == "3":\nyes\n@end\n' and asserts err.code === 'mds::type_mismatch' plus span offset/length/line/column. Mirrors the Python case at crates/mds-python/tests/test_parity.py:127-128 (NAPI_ERROR_PARITY). Landed in PR #196 (3aef465, 2026-07-19) — ten days after this issue was filed (2026-07-09), which is why it went unnoticed.
(b) python parity: @extends merged frontmatter — STILL OPEN, rationale obsolete
The stated blocker no longer exists. This issue says the Python binding "lacks compile_virtual plumbing". It does not — compile_virtual is fully plumbed:
crates/mds-python/src/lib.rs:1446-1458 (implementation)
crates/mds-python/python/markdown_script/__init__.py:37, :69 (export)
crates/mds-python/python/markdown_script/_markdown_script.pyi:225 (stub)
- exercised at
crates/mds-python/tests/test_functional.py:136, :159 and tests/test_source_map.py
The deliverable is still missing. There is no @extends merged-frontmatter parity case in the Python suite. grep '@extends' crates/mds-python/tests/*.py returns only test_parity.py:123 (a stray-@extends error-code case) and test_concurrency.py:161 (malformed-input fuzz). Nothing exercises #154 deep-merged frontmatter through inheritance.
Rescoped ask: add an @extends merged-FM parity case to the Python suite using the now-available compile_virtual. Model it on the napi inheritance coverage at crates/mds-napi/__test__/index.spec.mjs:613-690 (INH-1/INH-2).
Notes
Reference-corrected 2026-08-26 against main @ 6d41777 — locations and completion state only; scope and acceptance criteria unchanged.
Deferred (pre-existing) finding from the PR #161 code review — surfaced by the python reviewer. The two binding parity suites have drifted. Two follow-up gaps:
(a) napi parity:mds::type_mismatch-> LANDED. Verified done at
6d41777; no work remains.crates/mds-napi/__test__/index.spec.mjs:402-416— test'D2: type_mismatch from @if cross-type comparison carries a non-null span'— compiles'---\nx: 3\n---\n@if x == "3":\nyes\n@end\n'and assertserr.code === 'mds::type_mismatch'plus span offset/length/line/column. Mirrors the Python case atcrates/mds-python/tests/test_parity.py:127-128(NAPI_ERROR_PARITY). Landed in PR #196 (3aef465, 2026-07-19) — ten days after this issue was filed (2026-07-09), which is why it went unnoticed.(b) python parity:
@extendsmerged frontmatter — STILL OPEN, rationale obsoleteThe stated blocker no longer exists. This issue says the Python binding "lacks
compile_virtualplumbing". It does not —compile_virtualis fully plumbed:crates/mds-python/src/lib.rs:1446-1458(implementation)crates/mds-python/python/markdown_script/__init__.py:37,:69(export)crates/mds-python/python/markdown_script/_markdown_script.pyi:225(stub)crates/mds-python/tests/test_functional.py:136,:159andtests/test_source_map.pyThe deliverable is still missing. There is no
@extendsmerged-frontmatter parity case in the Python suite.grep '@extends' crates/mds-python/tests/*.pyreturns onlytest_parity.py:123(a stray-@extendserror-code case) andtest_concurrency.py:161(malformed-input fuzz). Nothing exercises #154 deep-merged frontmatter through inheritance.Rescoped ask: add an
@extendsmerged-FM parity case to the Python suite using the now-availablecompile_virtual. Model it on the napi inheritance coverage atcrates/mds-napi/__test__/index.spec.mjs:613-690(INH-1/INH-2).Notes
basePathimport resolution in Windows CI) is tracked in test(napi): exercise string-sourcebasePathimport resolution in Windows CI #148.