v3.5.2 - one reader, one transport #196
No reviewers
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
external-review
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence-archived#196
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "cadence/v3.5.2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #133, closes #132.
Two surfaces where the tree already conceded the correct rule in one place and
prescribed the wrong one somewhere else. Neither is a bug anyone hit yet. Both
came out of an external deep dive against v3.3.0 and were adjudicated
AGREE-high.
TRN-01 (phase 1) - caller-derived free text now rides a file path at every
seam flag that carries it. Five new flags behind one reader
(
lib/text-flag-file.mjs, four refusals), the rule stated once inreferences/conventions.md, and a committed 36-row register(
lib/text-transport.mjs) thatself-verifycheck 19 reads, so a seventeenthinline site is refused rather than noticed later. 13 prose surfaces converted.
LSE-01 (phase 2) -
plan-overlapandlease-checkreach containmentthrough one predicate in
lib/lease-grammar.mjs, so the pre-flight overlapgate can no longer admit a plan pair the commit-time enforcement would refuse.
./a.txtandsrc//a.txtare refused with a named diagnostic at bothdeclaration doors, and a census test reddens if the comparison is pasted back
anywhere under
cadence-core/bin/.Manifest bumped 3.5.1 -> 3.5.2 with the CHANGELOG entry. Phases 1-2 pruned,
v3.5.3 opened. The v3.5.2 tag is cut after this merges, on the pulled base.
34 commits. Full suite 2012 pass / 0 fail,
self-verifyclean across 23 checks.One frozen module under cadence-core/bin/lib/ holding both the enumeration - one row per examined site: surface, flag, the value it passes verbatim, whether that value is caller-derived, and a reason on every row that is not - and the pure rule self-verify runs over it as check 19. The key is {surface, flag, value}, not a line number: line numbers rot, and the classification is a property of the value, which is also what keeps progress.md's composed --next apart from the literal one five lines below it. A row outlives its occurrence, so a converted site's row is what makes the inline form coming back a reported problem rather than an unclassified one. The discriminator is the immediately following quoted value, so prose that NAMES a flag in order to forbid it needs no row. What the scan cannot delimit - an unquoted placeholder, a value that closes on the next line, a flag ending its line - is settled by a register row for that surface and flag, and REPORTED as its own kind when none exists. Not built on check 2's invocation parser: thirty of the qualifying mentions sit in prose fragments it skips. git tag -m is watched too, on a git tag line only: it is the one site that provably puts a PROJECT.md milestone name into a double-quoted shell word. self-verify exits 1 at this commit, naming 21 live sites. That run is the phase's watched-FAIL evidence and the prose fix lands next.