studio-engine 0.40.0 → 0.41.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01f352e62e854f4ec09087aec52716a87ca4ac494e19882e554bb19dd154092c
4
- data.tar.gz: 791a21cfc0130503ff5489f43857bde752892facfe7d1ab7e9233dd7535f6ffe
3
+ metadata.gz: d4b5672c89f5dc5feeaf54432eed9992c022a69992c1ff58311b0b85a58a23e9
4
+ data.tar.gz: 3a3489c4d4f8174d0d5facbf53f020505392f78e51f13a96a4c8f95367224608
5
5
  SHA512:
6
- metadata.gz: 52b2b4f48c08972164d73c9ffff6276c242a3baa5a139c32076c698e37232867bb15b4d54bb28333bdd0531e413cb3226be46b03f3445bbf102e40dd6e1878c3
7
- data.tar.gz: 2bd861d11c1342bdb0ffec8865f3a2e04665a7883f1bccd9886fd53a5e93936af658b276015592c599497029b133f33ba31a45e9244238e5a1849e7cc41967c9
6
+ metadata.gz: e1d83d1b55f15fb4ecaa74a261b5db8c6cc874ca93166e4323814295caf16724b3bfd65dcda07c27918024ea5db9967e09fe63e0777d48c74c7b8f9c9b21d4ff
7
+ data.tar.gz: 64d9556f766654a143e966d7b8f784c27773acfcf3bd35065f2cc9c24284a2113ab659dfe937ca090ff1030a0225d0ae0780e0e2f509fc6fc8868811d7e65dad
data/CHANGELOG.md CHANGED
@@ -6,6 +6,25 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
6
6
 
7
7
  ### Added
8
8
 
9
+ - **A browser lane — the engine now runs Playwright against its own partials.**
10
+ Measured across 40 merged engine feature units, 12 (30%) add an imperative
11
+ browser program and zero had ever carried browser evidence; the engine was the
12
+ one repo in the ecosystem with no way to observe client-side behavior. A
13
+ Playwright suite (`e2e/`) drives a real Chromium against engine partials
14
+ rendered through the `test/dummy` host, served by `e2e/boot.rb` with real
15
+ compiled Tailwind. Both engine-side defects that motivated the ecosystem's
16
+ browser-evidence gate were reproduced against the new lane and confirmed to turn
17
+ it red: the navbar's paint-time offset jump (sampled per animation frame — the
18
+ header moved 80px one frame after paint, which a single-sample spec reads as
19
+ correct) and the re-stamper swallowed by a phantom element. The lane carries a
20
+ runtime executed-set gate (`bin/e2e-executed-set-check` reads Playwright's own
21
+ report against `config/e2e_lane.yml`) and a static guard
22
+ (`test/lib/e2e_lane_contract_test.rb`) that refuses any edit able to narrow the
23
+ set. It runs as a parallel CI job, so the wall time an engine PR waits is
24
+ unchanged. Chromium-only, with the Intl/timezone blind spot that implies named
25
+ and covered instead by `test/views/at_time_zone_table_test.rb`. Full rationale,
26
+ limits and cost: `docs/E2E_LANE.md`.
27
+
9
28
  - **The "at" time stamp — `at_time_tag` + `studio/at_time_script`.** A shared
10
29
  primitive for stamping WHEN something happened, on the READER's clock rather
11
30
  than the app's: `at 3:53p`, gaining a date only when the stamp is not today and
data/Gemfile CHANGED
@@ -23,4 +23,10 @@ group :development, :test do
23
23
  # engine's ActiveRecord/Railtie surfaces. Not a runtime dependency — the
24
24
  # consuming apps bring their own database adapter. Rails 8.1 needs sqlite3 ~> 2.1.
25
25
  gem "sqlite3", ">= 2.1"
26
+
27
+ # Puma serves the dummy host for the BROWSER LANE (e2e/boot.rb). The gem ships no
28
+ # config.ru and test/dummy has no bin/rails, so the lane boots Puma::Server around
29
+ # Rails.application directly rather than growing Rails-app scaffolding inside a
30
+ # test fixture. Not a runtime dependency — consuming apps bring their own server.
31
+ gem "puma", ">= 6.0"
26
32
  end
@@ -1,3 +1,3 @@
1
1
  module Studio
2
- VERSION = "0.40.0"
2
+ VERSION = "0.41.0"
3
3
  end
@@ -18,7 +18,11 @@ Gem::Specification.new do |spec|
18
18
  "changelog_uri" => "https://github.com/McRitchie-Studio/studio-engine/blob/main/CHANGELOG.md"
19
19
  }
20
20
 
21
- spec.files = Dir["lib/**/*", "app/**/*", "config/**/*", "db/**/*", "tailwind/**/*", "Gemfile", "studio-engine.gemspec", "README.md", "CHANGELOG.md", "LICENSE"]
21
+ # config/e2e_lane.yml is the BROWSER LANE's contract a fact about this repo's CI,
22
+ # read by bin/e2e-executed-set-check and test/lib/e2e_lane_contract_test.rb. It is
23
+ # the only thing under config/, and it has no meaning in a consuming app, so it is
24
+ # excluded rather than shipped. (e2e/, bin/ and test/ were never in this list.)
25
+ spec.files = Dir["lib/**/*", "app/**/*", "config/**/*", "db/**/*", "tailwind/**/*", "Gemfile", "studio-engine.gemspec", "README.md", "CHANGELOG.md", "LICENSE"] - ["config/e2e_lane.yml"]
22
26
  spec.require_paths = ["lib"]
23
27
 
24
28
  spec.add_dependency "rails", ">= 7.2", "< 8.2"
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.40.0
4
+ version: 0.41.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex McRitchie