JSOM 3.1.1 — documentation fixes (no behaviour change)
Documentation fixes
3.1.0 shipped with documentation that had drifted from the code — a reader following the
README would have been misled in three ways:
- the README advertised a path cache that was deleted in 3.0.0, and framed numbers as
"lazy evaluation", implying they were never inspected (the §6 grammar has been enforced
since 3.1.0); - FORMATTING.md documented a
prettyoption that does not exist inJsonFormatOptions,
gavemax_depthas 100 (it is 256), listed per-preset inline sizes that disagreed with the
constants, and all nine of its example outputs were stale; - the CI stage list quoted in the README and CLAUDE.md had drifted twice.
Nothing about the code changed: this release is the documentation being corrected.
The drift now fails a gate
A new docs CI stage runs tools/check_docs.py, which fails when:
- a retired identifier (the opt-in number switch,
PathCache,StreamingParser,
NavigationResult, …) appears in documentation or headers — unless the line is explicitly
about the removal; - a generated block disagrees with the code: the
JsonFormatOptionsdefaults table, the
per-preset settings table, and nine example outputs produced by running the builtjsom
overdocs/formatting-sample.json(a real file, so the examples derive from it instead of
being typed and re-typed); - a stage list quoted in the docs differs from
CI_DEFAULT_STAGES.
tools/check_docs.py --write regenerates those parts. The examples check fails rather than
passing silently when no built binary is available — a skip that passes is a fake gate.
The pre-push hook no longer hardcodes a stage list either: the default set is defined once,
in tools/ci.sh.
Gates
15 CI stages green (233 tests, ASan/UBSan, TSan, fuzz, C++17/20/23, CLI smoke, conformance
n_ 188/188 by default, tidy, docs, pristine).