Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 25 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down Expand Up @@ -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

Expand Down