Repository navigation
v0.2.1
Changed
- Report-contract tag bumped to
flowsh/v2across the docs, specs and ADR pointers. A new CI guard asserts that the frozen tag spelled in the live docs matchesanalysis.ToolVersion, so a future bump cannot silently drift; the ADRs keep their historicalflowsh/v1spellings with a pointer to the live contract. - The canonical staging fold is now order-aware, and the canonical form is emitted only when the report actually has effects. Live egress and bottom-targeted effects are kept verbatim, and
commandCallsare de-duplicated so a loop body contributes a single entry.
Fixed
- Hardened the host-shaped grammar feeding the egress gate: reject non-network URL schemes (
file:,data:,mailto:), Windows drive paths and VCS-like dotted local names; accept UNC/SMB authorities, the trailing-dot absolute name, scp paths over IPv6 hosts and the clients' own protocol-prefixed address spellings; bound ports to 1–65535. - A confined numeric-class operand that feeds a
NetEgressdestination now degrades to unresolved egress instead of contributing a directory literal, andsystemctl -H/--hostis tiered as a destination dialect. - Fixed numeric-class confinement so an expansion that can splice a fresh, possibly absolute, path component (an alternate/replacement, a zero-length slice, an out-of-range index or a backslash-escaped
..) degrades to ⊤ rather than claiming a directory. - On the PowerShell path, fall back to the command's intrinsic
ProcSpawnwhen the egress gate drops its only effect, and keep a sub-expression destination as unresolved egress.
See CHANGELOG.md for the full history.