studio-engine 0.69.0 → 0.69.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.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 44c016968027b022962e8b79363c104b263e3ab48b8b0d8553bb502d3dfdc42a
|
|
4
|
+
data.tar.gz: 5c06f265e369ac196c5a2a6ba23c93e060661cdb3cc7d5c4d5416e9c105f655f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2dec7eba2710e3fc6cfc17c10df0b93f9f028d15953491e15997c14ccbcaebf2c5b03e09c6e729904a087ad16262940316390c537a4314d5f3d1c449d8032e79
|
|
7
|
+
data.tar.gz: 822ea41413bea1441fa4bbf76ae941653520dff81c690918568ee61de96e820fbbcec8bc860b5dc179f0fa4ef57c683d9905723bf8f7432cc2061eb40eab2fce
|
data/CHANGELOG.md
CHANGED
|
@@ -23,6 +23,10 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
|
|
|
23
23
|
|
|
24
24
|
### Changed
|
|
25
25
|
|
|
26
|
+
- **`Gemfile.lock` resolves solana-studio 0.5.7, and a gate now keeps it there.** The lock had sat on **0.5.3 for four patch releases** while BOTH consumers shipped 0.5.7 (turf-monster `~> 0.5.3`, mcritchie-studio `~> 0.5`). Nothing was red and nothing could have been: engine CI installs with `bundler-cache: true`, so it resolves from the lock and never fresh — the drift does not self-correct and never surfaces as flakiness. It matters because `test/views/style_web3_specimens_test.rb` exists to prove "the style guide renders the REAL gem cards" and reads them off whatever the LOCK resolved; four versions behind, that guard certifies a card no consumer receives. It still passes — only its MEANING changes. MEASURED on this span, the gem's whole `app/` tree was byte-identical 0.5.3 → 0.5.7 (only `CHANGELOG.md`, `README.md` and `version.rb` differ), so this instance cost nothing, which is exactly why it went four releases unnoticed.
|
|
27
|
+
- **The constraint stays `>= 0.5.3`, deliberately.** 0.5.3 is a real FLOOR (0.5.2 shipped the credential partial without `solana_studio/modals/_wallet_connect`, which the web3 capability gate requires). Above it this engine claims no ceiling: it is the BASE half of the base/bolt-on split, and a pessimistic `~> 0.5.3` here would be NARROWER than mcritchie-studio's own `~> 0.5` — a dev-only dependency constraining a resolution it does not own. The defect was the LOCK, not the pin, so the fix is a gate rather than a tighter pin.
|
|
28
|
+
- **`bin/gem-drift-check`** — fails when this engine's lock resolves a tracked gem OLDER than a consumer's, wired into `consumer-ci.yml` after the consumer bundle install. That lane is the only place two repos' lockfiles exist at once (engine at `studio/`, consumer beside it); `test/lib/consumer_ci_shard_contract_test.rb` records the same constraint for its own cross-repo contract. Direction is ONE-WAY on purpose: engine behind FAILS, engine level or ahead passes (the engine is the producer and may test an unreleased gem), and a consumer bundling no tracked gem is a SKIP, not a failure — `mcritchie_industries` is the base half working as designed. Stdlib-only, and it names its one-command remedy (`bundle update solana-studio`) in the failure.
|
|
29
|
+
|
|
26
30
|
- **The auth modal's Solana button moved to solana-studio, behind a CREDENTIAL
|
|
27
31
|
SLOT.** `style/modals/_auth` no longer draws the button; it renders whatever
|
|
28
32
|
resolves at `solana_studio/auth/wallet_credential` and nothing when that path
|
data/Gemfile
CHANGED
|
@@ -52,6 +52,34 @@ end
|
|
|
52
52
|
# The style guide self-gates on the partial RESOLVING (style/_modals.html.erb),
|
|
53
53
|
# so an app without this gem renders /admin/style with the web3 cards badged
|
|
54
54
|
# rather than raising a missing-template error.
|
|
55
|
+
#
|
|
56
|
+
# THE CONSTRAINT STAYS OPEN-ENDED, AND THAT IS A DECISION, NOT AN OVERSIGHT.
|
|
57
|
+
# ">= 0.5.3" is a FLOOR: 0.5.2 shipped the credential partial without
|
|
58
|
+
# solana_studio/modals/_wallet_connect, which the web3 capability gate requires,
|
|
59
|
+
# so 0.5.3 is the first version that can draw the button at all. Above it this
|
|
60
|
+
# engine deliberately claims no ceiling. It is the BASE half of the split; the
|
|
61
|
+
# bolt-on is the consumer's choice, and an engine that pinned the bolt-on more
|
|
62
|
+
# tightly than the app bolting it on would be dictating upward. Concretely: a
|
|
63
|
+
# pessimistic "~> 0.5.3" here would be NARROWER than mcritchie-studio's own
|
|
64
|
+
# "~> 0.5", so this dev-only dependency would start constraining a resolution it
|
|
65
|
+
# does not own.
|
|
66
|
+
#
|
|
67
|
+
# WHAT ACTUALLY WENT WRONG, and it was the LOCK, not the constraint. The lock sat
|
|
68
|
+
# on 0.5.3 while both consumers shipped 0.5.7 — four patch releases — and nothing
|
|
69
|
+
# was red, because engine CI installs with `bundler-cache: true` and never
|
|
70
|
+
# resolves fresh. Meanwhile test/views/style_web3_specimens_test.rb exists to
|
|
71
|
+
# prove "the style guide renders the REAL gem cards" and reads them off whatever
|
|
72
|
+
# the LOCK resolved. Behind, that guard certifies a card no consumer receives; it
|
|
73
|
+
# still passes, and only its MEANING has changed. (Measured on this span: the
|
|
74
|
+
# gem's whole app/ tree was byte-identical 0.5.3 -> 0.5.7, so this instance cost
|
|
75
|
+
# nothing — which is precisely why it went four releases unnoticed.)
|
|
76
|
+
#
|
|
77
|
+
# SO THE FIX IS A GATE, NOT A PIN. bin/gem-drift-check fails when this engine's
|
|
78
|
+
# lock TRAILS a consumer's, and consumer-ci.yml runs it — the only lane holding
|
|
79
|
+
# two repos' lockfiles at once. Direction is one-way: engine behind fails, engine
|
|
80
|
+
# ahead or level passes, a consumer bundling no solana-studio is a skip. Keeping
|
|
81
|
+
# up is now enforced rather than remembered, which is what lets the floor stay a
|
|
82
|
+
# floor. Guarded by test/lib/gem_drift_check_test.rb.
|
|
55
83
|
group :development, :test do
|
|
56
84
|
gem "solana-studio", ">= 0.5.3"
|
|
57
85
|
end
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
whenever a brand is absent or unrecognised, instead of hiding the avatar and
|
|
29
29
|
giving the surface two different shapes.
|
|
30
30
|
|
|
31
|
-
ONE CALLER DELIBERATELY DOES NOT: studio
|
|
31
|
+
ONE CALLER DELIBERATELY DOES NOT: solana-studio's
|
|
32
|
+
solana_studio/modals/_wallet_connect paints a LETTER
|
|
32
33
|
TILE for a detected wallet whose brand it does not know, not se-wallet-default.
|
|
33
34
|
A detected wallet always has a name (it registered through Wallet Standard to
|
|
34
35
|
get there), and its initial identifies it where a generic mark would not. The
|
|
@@ -182,8 +182,9 @@
|
|
|
182
182
|
return { connecting: false, error: null, statusText: 'Connect Wallet',
|
|
183
183
|
walletAvailable: false, isMobile: false, connect: function () {} };
|
|
184
184
|
};
|
|
185
|
-
// Connect stub for the
|
|
186
|
-
//
|
|
185
|
+
// Connect stub for the wallet picker (solana-studio
|
|
186
|
+
// solana_studio/modals/_wallet_connect, configured by
|
|
187
|
+
// style/modals/_wallet_connect). Performs NO connect: it
|
|
187
188
|
// resolves success after a beat so the picker's connecting state is
|
|
188
189
|
// visible and its onConnected hook can continue the demo walk.
|
|
189
190
|
window.dsWalletConnectDemo = window.dsWalletConnectDemo || function () {
|
|
@@ -1169,9 +1170,9 @@
|
|
|
1169
1170
|
(<code class="font-mono text-2xs">studio/modals/blocks/_wallet_brand_sprite</code>),
|
|
1170
1171
|
so every app inherits them with no per-app icon files.
|
|
1171
1172
|
The two <strong>Sign Wallet</strong> cards are a different kind of thing
|
|
1172
|
-
from the rest of this section: they render
|
|
1173
|
-
<code class="font-mono text-2xs">
|
|
1174
|
-
the <strong>REAL shared partial a host renders in production</strong>,
|
|
1173
|
+
from the rest of this section: they render solana-studio's
|
|
1174
|
+
<code class="font-mono text-2xs">solana_studio/modals/_web3_step_up</code>
|
|
1175
|
+
— the <strong>REAL shared partial a host renders in production</strong>,
|
|
1175
1176
|
not a style-guide copy of it — so what you review here is the
|
|
1176
1177
|
shipped card, and it cannot drift from what users see. They also carry the
|
|
1177
1178
|
<strong>standard web3 auth button</strong>: a wallet row (brand mark, the
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<%#
|
|
2
|
-
The style guide's pre-connect slot for studio
|
|
2
|
+
The style guide's pre-connect slot for solana-studio's
|
|
3
|
+
solana_studio/modals/_wallet_connect — the
|
|
3
4
|
legal-age attestation, sitting exactly where turf-monster puts its own.
|
|
4
5
|
|
|
5
6
|
A PARTIAL rather than a block because the picker takes its slot as a named
|
data/lib/studio/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: studio-engine
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.69.
|
|
4
|
+
version: 0.69.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex McRitchie
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|