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