docs: v0.4.3 docs bundle — spec §4.6 filesystem constraints, §5 error-code registry, §7.8 reserved field; SECURITY.md debug-panics roster; RELEASING.md partial-failure runbook; bug template; KB refresh (#327, #328, #313) - #394
Merged
Conversation
…6 — relative form, NUL bytes, symlink rejection, root containment, path encoding — and point SECURITY.md at them (#327)
…7.9, fix the MdsError JSDoc example code (#313)
…pe its release-build claim; add the partial-failure recovery runbook; fix the Unreleased and publish-ordering notes (#313)
…zards in the mds-lint KB; complete the feature index; refresh mds-cli and mds-lint KBs against current code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release-surface trigger
This PR touches
crates/mds-python/tests/test_parity.py, one of the sixRELEASE_SURFACEpaths, sorelease.ymlruns automatically on thepull_requestevent andverify-pr-checks.mjsrequiresVersion gate,Stage + verify platform packagesandRehearse PyPI publish (no upload); the CI-history gate is step-skipped onpull_request, so one manualgh workflow run release.yml --ref docs/d2-v043-docs-bundlefollows CI completion. TwoReleaseruns on this head are expected.What changed (7 commits)
7c80354spec §4.6 "Filesystem constraints" subsection (relative form, empty path, NUL bytes, symlink rejection, root containment, path encoding, segment count — codes, messages, pinning tests) + SECURITY.md pointer (spec §4.6 Imports "Rules:" omits symlink rejection — spec/implementation drift on a security control #327)44df359spec §7.8:fmt.sort_frontmatter_keysdocumented as reserved and currently inert (Question: should spec §7.8 document fmt.sort_frontmatter_keys, a deliberately inert config field? #328)6f26d1aspec §5 "Error Codes" registry — 26mds-corecodes (eachcode(mds::…)attribute inerror.rs, verified 26 unique, each used once) + 4 binding-only codes; §7.9 cross-reference;packages/mds/src/types.tsJSDoc andpackages/bundler-utils/__test__/errors.spec.mjstest-helper default corrected from the nonexistentmds::undefined_variabletomds::undefined_var(docs: post-tag runbook, security roster, spec additions (v0.4.1 amendments) #313 iii)34b58c7SECURITY.mddebug-panicsroster corrected tomds-napi/mds-wasm/mds-python(wasmds-core) with the release-build claim scoped to the named build commands; RELEASING.md partial-failure recovery runbook + three drift fixes (CI-watch hint, publish-npm → publish-python is sequential perrelease.ymlneeds:,[Unreleased]wording) (docs: post-tag runbook, security roster, spec additions (v0.4.1 amendments) #313 i, ii)4ac7ba5bug_report.yml: component dropdown 9 → 11 (Python, Rspack loader), version/environment field text; CHANGELOG### Internalentry; package-lock consistency check recorded (docs: post-tag runbook, security roster, spec additions (v0.4.1 amendments) #313 iv, v)64728a5test_parity.pycomment "9 lint rules" → "10 lint rules" (thelegacy_interpolationrule always setshelpandspan; the assertion is unchanged); mds-lint KB three-byte format hazards 11 → 14; mds-cli KB six subcommands + watch debounce model + atomic-write contract;.devflow/features/index.mdcompleted 5 → 9 features25ec3be(droppable)crates/mds-core/tests/spec_error_codes.rs— pins the §5 registry toerror.rscode()strings; 3 tests incl. an in-suite negative control (mds::definitely_not_a_codemust NOT be documented); RED demonstrated once on a mangled registry cell, then GREENRelated issues
Closes #327
Closes #328
Closes #313
#313 acceptance criteria → commit: (i) RELEASING.md partial-failure runbook →
34b58c7; (ii) SECURITY.md debug-panics roster →34b58c7; (iii) spec §5 error-code registry →6f26d1a; (iv) bug_report.yml →4ac7ba5; (v) package-lock consistency check →4ac7ba5.package-lock consistency (#313 v)
The root
"name": "mdl"inpackage-lock.jsonis npm's checkout-directory default: the rootpackage.jsonisprivate: truewith noname, and it is never published. The lock was verified withnpm ciandnpm ls --all(tree-ok) plusnode scripts/verify-versions.mjsand left untouched — no regeneration (transitive-churn risk right before the version bump) and no rootnamepin.Security scan
Snyk code scan unavailable (MCP ENOENT); the
security/snykCI check is SCA-only.Gates (local, on
25ec3be)cargo fmt --all --check,cargo clippy --workspace --all-targets -- -D warnings,cargo clippy -p mds-cli --all-targets --features startup-race-probe -- -D warnings,cargo +1.88 check,RUSTDOCFLAGS="-D warnings" cargo doc -p mds-core -p mds-cli --no-deps: cleancargo nextest run -p mds-core -p mds-cli: 2364 passed (baseline 2361 + the 3 new pin tests);cargo test --doc -p mds-core: 53 passednpm run test:gates: 220 pass / 0 fail (5 spec files);node scripts/verify-ledger-citations.mjs: ✓ 551 files / 1217 tokens;node scripts/verify-no-control-bytes.mjs: ✓ 566 filesnpm run build -w @mdscript/mds,npm run build -w @mdscript/bundler-utils && npm test -w @mdscript/bundler-utils: 91/91maturin develop+pytest -m "not perf",.venvPython 3.13.1): 250 passedallsurface cells, two scoped RELEASING.md facts); no added line outside.devflow/features/**carries a ledger-id token;.devflow/features/index.mdre-emits only pre-existing, current-meaning ids from KB descriptions