solana-studio 0.5.6 → 0.5.7
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 +4 -4
- data/CHANGELOG.md +1 -0
- data/README.md +46 -2
- data/lib/solana_studio/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 37d288249a8aaba43c2315fc03d3638639f1f79692274e05a47eb7180d29b8ce
|
|
4
|
+
data.tar.gz: 9bb5c251529c252d00f0e24572fb09cf5e358b401db167d381de1259a5bd2138
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0d11d32746254e437f67af2a4cdbf6ce7964e56595abac17b57a2793c4c6fc101f2f9b8e33d2871b88888a96d97f14d235cf9ae99f58ba1890cf3cc22d02c35a
|
|
7
|
+
data.tar.gz: d5f5249972b54c3dd34c02685f6ed9b02088fc91b7f0c4bf05d0bfe2597ec5d591eccc0c0926ea8c935100742bdefaf293e94ee555803d9f831ebb7cf656946e
|
data/CHANGELOG.md
CHANGED
|
@@ -20,6 +20,7 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
|
|
|
20
20
|
### Notes for hosts
|
|
21
21
|
- **These require studio-engine at render time** — they render its modal host and its shared blocks by name, and paint with its utilities and theme tokens. `solana_studio/modals/network_mismatch` already shipped on exactly these terms, so this is the established arrangement rather than new coupling. studio-engine stays a DEVELOPMENT dependency; a runtime one would drag Rails into every plain-Ruby consumer.
|
|
22
22
|
- **`phantom_deeplink` still emits `Studio.wallet_sign_in_statement`, deliberately.** studio-engine's `solana_sessions/phantom_callback` rebuilds the signed message to verify it, so both halves read one accessor precisely so they cannot drift. Parameterising it would decouple the gem, read as an improvement, and break the signature check on every mobile sign-in. Pinned from both directions in `test/web3_modals_test.rb`.
|
|
23
|
+
- **The wallet sign-in button needs studio-engine >= 0.68.0.** 0.68.0 is the first engine whose `style/modals/_auth` looks up `solana_studio/auth/wallet_credential`; until it, the engine drew that button INLINE and never consulted the path at all, so this gem shipped the partial, its tests and its README section for a button no host rendered. Below the floor the partial is inert and NOTHING SAYS SO — no render, no button, no error — so the symptom is silence rather than a stack trace, which is the failure mode this ecosystem's Gemfile pin comments exist to prevent. DERIVED by unpacking the published gems, not read off a changelog: 0.67.2 carries no `solana_studio/auth` reference anywhere in `app/`, and 0.68.0 gates the render on `lookup_context.exists?("wallet_credential", ["solana_studio/auth"], true)`. Match on the NAMESPACE, not the basename — `style/modals/_wallet_connect` ships unchanged in both releases and answers an unrelated question. It pairs with a floor on THIS gem: 0.5.2 shipped the credential partial WITHOUT `solana_studio/modals/_wallet_connect`, which the engine's `web3_gem` capability gate requires, so on 0.5.2 the button is suppressed either side of the floor and 0.5.3 is the first version that can draw it. Full matrix in the README.
|
|
23
24
|
|
|
24
25
|
## v0.5.0
|
|
25
26
|
|
data/README.md
CHANGED
|
@@ -183,8 +183,9 @@ studio-engine owns the sign-in modal, because every app in the ecosystem signs
|
|
|
183
183
|
people in and most of them are web2. This gem owns the **wallet button** inside
|
|
184
184
|
it, because only a web3 app has wallets.
|
|
185
185
|
|
|
186
|
-
There is **nothing to wire up
|
|
187
|
-
one fixed path and renders whatever
|
|
186
|
+
There is **nothing to wire up**, on studio-engine **0.68.0 or newer**. The
|
|
187
|
+
engine's auth modal looks for a partial at one fixed path and renders whatever
|
|
188
|
+
it finds:
|
|
188
189
|
|
|
189
190
|
solana_studio/auth/_wallet_credential
|
|
190
191
|
|
|
@@ -193,6 +194,48 @@ appears. An app that does not bundle it finds nothing and renders nothing — no
|
|
|
193
194
|
wallet markup ships to a newsletter app, and no `render` call has to be deleted
|
|
194
195
|
to keep it out.
|
|
195
196
|
|
|
197
|
+
#### The studio-engine floor: 0.68.0
|
|
198
|
+
|
|
199
|
+
**0.68.0 is the first studio-engine that performs the lookup.** Until it, the
|
|
200
|
+
engine's `style/modals/_auth` drew the Solana button itself, inline, and never
|
|
201
|
+
consulted `solana_studio/auth/wallet_credential` at all — this gem shipped the
|
|
202
|
+
partial, its tests and this section for a button no host rendered. 0.68.0
|
|
203
|
+
deleted that inline copy and put the lookup in its place, which is what made the
|
|
204
|
+
paragraph above true.
|
|
205
|
+
|
|
206
|
+
Below the floor the partial is **inert, and nothing says so.** It sits on the
|
|
207
|
+
view path and is never asked for: no `render` runs, no button comes from it, and
|
|
208
|
+
no error reaches the page or the log. A host that edits the partial and sees the
|
|
209
|
+
modal unchanged should suspect the engine version first — that silence, not a
|
|
210
|
+
stack trace, is the symptom.
|
|
211
|
+
|
|
212
|
+
Derived by unpacking the published gems rather than reading a changelog: 0.67.2
|
|
213
|
+
contains no reference to `solana_studio/auth` anywhere in `app/`, and 0.68.0
|
|
214
|
+
gates the render on `lookup_context.exists?("wallet_credential",
|
|
215
|
+
["solana_studio/auth"], true)`. Match on the **namespace, not the basename** —
|
|
216
|
+
`style/modals/_wallet_connect` ships unchanged in both releases and answers an
|
|
217
|
+
unrelated question.
|
|
218
|
+
|
|
219
|
+
The two gems set the floor together, and the pair matters more than either
|
|
220
|
+
number. Every row below also assumes the host has wallet sign-in **configured
|
|
221
|
+
on** — `Studio.auth_method?(:wallet)` and `Studio.feature?(:web3)`, the two
|
|
222
|
+
questions in the table further down. McRitchie Studio leaves them off, so it
|
|
223
|
+
shows no wallet button on any pair of versions:
|
|
224
|
+
|
|
225
|
+
| studio-engine | this gem | The sign-in modal shows, wallet configured on |
|
|
226
|
+
|---|---|---|
|
|
227
|
+
| 0.67.2, the last release below the floor | 0.5.3+ | the **engine's own** inline button; this gem's partial renders nowhere |
|
|
228
|
+
| 0.68.0+ | 0.5.3+ | **this gem's partial** — the arrangement described above |
|
|
229
|
+
| either side of the floor | 0.5.2 | **no wallet button, silently** — see below |
|
|
230
|
+
| either side of the floor | not bundled | no wallet button, correctly — a web2 app ships no wallet markup |
|
|
231
|
+
|
|
232
|
+
**0.5.2 is the trap.** It shipped `solana_studio/auth/_wallet_credential`
|
|
233
|
+
*without* `solana_studio/modals/_wallet_connect`, and both engines gate the
|
|
234
|
+
button on that picker resolving (the engine's `web3_gem` gate), so the credential
|
|
235
|
+
partial is present, correct, and suppressed either side of the floor. 0.5.3 is
|
|
236
|
+
the first version of this gem shipping both paths, and so the first that can
|
|
237
|
+
draw the button at all.
|
|
238
|
+
|
|
196
239
|
The engine asks two questions and needs both answered yes:
|
|
197
240
|
|
|
198
241
|
| Question | Answered by | Where |
|
|
@@ -214,6 +257,7 @@ Why a contributed button and not a second auth modal: Turf Monster wants Google
|
|
|
214
257
|
plus magic-link plus wallet, McRitchie Studio wants Google plus magic-link. A
|
|
215
258
|
forked modal would put a surface both apps sign in through into two files, which
|
|
216
259
|
is how the wallet picker reached three copies before it was promoted.
|
|
260
|
+
|
|
217
261
|
### Web3 modals
|
|
218
262
|
|
|
219
263
|
Four partials promoted out of studio-engine, where every consumer paid for them
|
|
@@ -16,5 +16,5 @@ module SolanaStudio
|
|
|
16
16
|
# through the normal cycle. Splitting the version out is the same shape
|
|
17
17
|
# studio-engine already uses (lib/studio/version.rb) and hands each file back
|
|
18
18
|
# to its real owner: this one to the release, the gemspec to the PR.
|
|
19
|
-
VERSION = "0.5.
|
|
19
|
+
VERSION = "0.5.7"
|
|
20
20
|
end
|