From f00e1c6b769521f38d7b4a1d83b51aba5a24f74c Mon Sep 17 00:00:00 2001 From: halaprix <6533433+halaprix@users.noreply.github.com> Date: Fri, 31 Jul 2026 15:52:59 +0200 Subject: [PATCH] docs: date the released versions and record post-merge fixes 1.2.0, 1.4.0 and 1.5.0 shipped to master via PRs #4-#6, #8; date each with its actual merge day and a short subtitle, matching the convention every earlier version already follows. Also folds in three fixes that landed after their feature's PR merged, in the same spirit as 1.2.0's existing CodeMirror-tooltip entry (a fix for an unrelated pre-existing bug, recorded where it was actually fixed rather than attributed to an unshipped patch version): - 1.4.0: the "N entries seen" double-counting bug (PR #10). - 1.5.0: the transient-layout wiring gap and the persistent/transient previousValueHex leak, both caught by an independent Codex + Gemini review and verified against source before fixing (folded into PR #8 before merge); and the Trace State pane column-bleed CSS bug (PR #9), an unrelated regression from the v1.1 cockpit redesign. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f15e961..87517eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to SlotScope. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versions follow the [roadmap](.resources/slotscope-final-scope-roadmap-v2.0.md) release plan. -## [1.5.0] — unreleased +## [1.5.0] — 2026-07-31 · Transient Storage ### Added @@ -30,7 +30,24 @@ All notable changes to SlotScope. The format follows resolve against the transient layout, and only a contract that declares none leaves them honestly unresolved. -## [1.4.0] — unreleased +### Fixed + +- An independent Codex + Gemini review caught the transient-naming feature + shipping unreachable from the app: `useExecutionSession` never passed the + transient layout into the resolver, so every `tload`/`tstore` stayed + unresolved in the real UI despite passing at the unit level. Wired through. +- The same review surfaced a value-history leak: persistent and transient + storage share slot numbers starting at 0, but `previousValueHex` was tracked + in one map keyed by slot alone, so a persistent write could hand a transient + access at the same slot number its word as a false "previous value." The + history is now keyed by address space plus slot. +- Trace → State rendered hex words unclipped, bleeding across the + Stack/Memory/Calldata columns. The CSS targeted an ancestor class, + `.ss-trace`, that the v1.1 cockpit redesign never applied to any element — + retargeted the four affected selectors to `.ss-trace-panes`, the wrapper + that actually exists. + +## [1.4.0] — 2026-07-31 · Keccak-Derived Slots ### Added @@ -58,8 +75,13 @@ All notable changes to SlotScope. The format follows - A mapping, dynamic array or `bytes`/`string` declared inside a struct or array element resolved as `unresolved`: the semantics index knew only top-level heads, so `keccak(key ‖ slot)` could not be grounded for a nested one. +- The "N entries seen" chip on a reserved row double-counted: a dynamic array's + own length-slot access (read on entry, rewritten on exit) was counted as a + derived entry alongside the actual new element, so one `push` always read one + higher than the true count. The chip now reads the same list that drives the + derived child rows, which already excludes a variable's own declared slot. -## [1.2.0] — unreleased +## [1.2.0] — 2026-07-30 · Reserved Reference Slots ### Added