studio-engine 0.77.1 → 0.77.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/lib/studio/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8cc0d34a62b18829e9caa043f820a5dc6100fa9de2d990f32dd4f3439c5bd40
4
- data.tar.gz: b5a7794c1c53bea3354f4b48e46887c9315df5fbff6d671436328fac9f95c2d3
3
+ metadata.gz: 6e39db0e8ae3fa259b3e0869c0e33099d1fd840192e9da33ae7d43bc37ce07d7
4
+ data.tar.gz: 171d736d4f5a6669446e718130d029499d0170b4102a2e76d5990193feac5901
5
5
  SHA512:
6
- metadata.gz: 65d91ace8c12010d262fb841a19c384ef85aa8418d6ec270cf30d2b68e28f73f1da5cdbfe9057cdefad831e44c519ea088468f36ce3a9467866102da47d08491
7
- data.tar.gz: e56bd88f0517331aeb58ddac29ab027053a74189a97c78c3a55b9b8cd4f8827fa3492676b4604c0e779f96d7136073b11e8e4e624ed7e064654c037c676457c0
6
+ metadata.gz: 1a3bd81ed22cc40b1d98864b469e60d97b9e8a4e2178eb518bd409cafbfe2b37c8171dc3daaf064bf3a0a5f432ac8fd758c23288c607ca9d1631bec81f8f5e10
7
+ data.tar.gz: 4023eff14f61f6c8bf3be70fc0fb69d5990ff62fe9cb968f652b9cd11b450bbe85b6686d35b46eba2e76b2fddb7d17de895751a2ecb67a4483238352a6106ca9
data/CHANGELOG.md CHANGED
@@ -4,6 +4,49 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.77.2 — 2026-09-28
8
+
9
+ ### Fixed
10
+
11
+ - **The browser lab stopped writing per-request state into the engine's process-wide
12
+ config.** `E2eLabController#bar_stack` set up the link sidebar by assigning
13
+ `Studio.sidebar_sections` from `?sidebar=1`, and that accessor is a
14
+ `mattr_accessor` — one slot for the whole Puma process. So one request armed the
15
+ sidebar for every request after it: measured at `a73edfe`, after a single
16
+ `GET /lab/bar_stack?sidebar=1`, `/lab/toast_over_banner` served 2 link-sidebar
17
+ triggers, 2 slide-out panels and `--nav-h: 145px` against 0, 0 and 125px before it,
18
+ on a page that declares no sections. **No shipped engine code changed**; the lab is
19
+ the dummy test app, which is in no gem (`spec.files` has never included `test/`).
20
+ What changed is what the browser lane measures. The dummy host now declares the
21
+ accessor once at boot, in the callable form `docs/NEW_APP_SETUP.md` shows, reading
22
+ what the current request declared through a `before_action` on every lab action —
23
+ so `?sidebar=1` works on any lab page, carries nowhere, and
24
+ `Studio::SidebarSections.resolve` stays on the path.
25
+ - The lane never went red for it. Playwright walks `e2e/` in file-name order and
26
+ `nav_collapse.spec.js`, which clears the slot, sorts between the contaminator and
27
+ the victim; run those two adjacent and every assertion still passes. So
28
+ `playwright.config.js`'s comment claiming the lab pages are stateless was false
29
+ and was arming whoever next raised `workers` above 1. It now names the incident
30
+ and the guard instead of asserting itself.
31
+ - `test/integration/e2e_lab_isolation_test.rb` holds the seam and more than this one
32
+ accessor: it enumerates every lab GET from the router and every `Studio` accessor
33
+ that has a writer, walks each route bare and with every knob the lane turns, and
34
+ diffs the values either side.
35
+
36
+ ### Added
37
+
38
+ - **The header's reserved balance column has a spec.** `layouts/_navbar` gives the
39
+ right column a hard `width: min(14rem, 46vw)` when a host passes `balance_html`
40
+ (`.user-nav-col`) and the same number as a `max-width` when it does not
41
+ (`.user-nav-fit`). All five phone-width header specs drove the fit path;
42
+ `/lab/bar_stack` has carried a `?balance=1` knob since it was written and nothing
43
+ turned it. Measured across 320/360/375/390/412/430, the two paths are identical to
44
+ a tenth of a pixel — the fit column is already pinned to its cap at every phone
45
+ width — so this is coverage over correct code, not a fix. It is not redundant:
46
+ the two classes are separate declarations at three media bands each, and mutating
47
+ `.user-nav-col` to a bare 20rem left all five existing specs green and reddened
48
+ only this one.
49
+
7
50
  ## 0.77.1 — 2026-09-27
8
51
 
9
52
  ### Fixed
@@ -1,3 +1,3 @@
1
1
  module Studio
2
- VERSION = "0.77.1"
2
+ VERSION = "0.77.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: studio-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.77.1
4
+ version: 0.77.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex McRitchie