diff options
| author | Agando <roduccomm@gmail.com> | 2026-10-27 17:42:46 +0100 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-10-27 17:42:46 +0100 |
| commit | 1d78155c38fcbc9c76bad7c522e9d9f1060bc4b9 (patch) | |
| tree | 1621ea822df91fd2764c1da41afdd423a9aa52f9 /modules/ext/tutorial.js | |
| parent | 21b8ebfc8c47748e19a43d230ecc176d01e3cb83 (diff) | |
fix(docs): apply the GLM-5.3 review to the changelog pipeline
Verdict was APPROVE WITH CHANGES: 21 findings, 17 fixed, 3 refuted with the command that killed
them, 1 kept with the audit that justifies it. The reviewer's best find was a design bug of mine,
not a typo.
- The age guard was unfixable by --fix and fired on a quiet week. check_changelog() regenerated only
on a version mismatch, then returned from the version-match branch before the age check could act,
so a page older than the threshold stayed red forever with the false diagnosis "the daily job is
not running". Now --fix always regenerates (0.84 s) and age is read from a new `checked` stamp
separate from `generated` (content-change time), which also stops a daily 65 KB rewrite of an
unchanged page. Proved: seeded 641 h -> FAIL + "run maintain --fix to refresh" -> --fix -> PASS.
- Atomic writes everywhere (temp + os.replace): nginx serves these files off disk, so an in-place
truncate could hand a visitor half a page.
- The JSON island now escapes "</" (a commit subject containing </script> would have closed it
early and truncated the page). Proved by injecting exactly that subject: island still parses, no
stray script tag, payload survives as data.
- Sibling drift is checked, not assumed: changelog.json's currentVersion is compared with
LATEST_VER. Seeded v4.6.100 -> FAIL "feed drifted", --fix repairs.
- Build tags are audited under --deep: 67 tags, each must be reachable from HEAD and name the
version its commit tree carries. Proved by tampering (v9.9.9 on the root commit -> FAIL) and by
deleting it (-> PASS).
- Feed: ids no longer hardcode 2026 or contain spaces, entries carry a <link>, timestamps are real
iso-strict commit times instead of a fake T00:00:00Z on a local date, and summaries are truncated
before escaping so no "&l" tail. 0 ids with spaces, 0 broken entity tails.
- write_md refuses to overwrite a CHANGELOG.md that lost its markers; run() gained a 300 s timeout
(a hung git used to block the whole 07:15 job); jumpToHash no longer stacks hint paragraphs;
dead fields removed (KIND_ORDER, order, currentSynthesized, sourcesRead — each appeared exactly
once in the page, i.e. only in the island the generator wrote).
- HTML nits: guide.html footer separator, empty "fixed in" line suppressed, help.html version
bumped off v4.5.22. Header stat relabelled "Commits behind it" (it read "Bug records on disk"
while counting commits — my own defect, not the reviewer's).
- Refuted: merge commits (repo has 0: `git log --merges | wc -l`), first-version board links (the 2
multi-version notes both name the fixing build first), sources disclosure (the page already
renders those module paths).
maintain --deep: node tests 20/20, changelog current, age 0.0h, 67 tags verified, result OK.
Mobile: ALL VIEWPORTS OK.
Diffstat (limited to 'modules/ext/tutorial.js')
0 files changed, 0 insertions, 0 deletions