@homie-rocks/studio 0.58.24 → 0.58.25
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.
- package/CHANGELOG.md +10 -0
- package/lib/template-history.json +42 -0
- package/package.json +1 -1
- package/worker/booking-provider.mjs +3 -0
- package/worker/build-id.mjs +1 -1
- package/worker/version.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,16 @@ To bring a studio up to date, tell Claude: "Upgrade my studio to the newest Homi
|
|
|
17
17
|
`npx -y @homie-rocks/studio@latest upgrade`, which shows what's new since the version your studio pins (from this
|
|
18
18
|
file) and what the upgrade would change, and changes nothing until you agree.
|
|
19
19
|
|
|
20
|
+
## [0.58.25] - 2026-10-29
|
|
21
|
+
|
|
22
|
+
**Plugin 0.58.15**
|
|
23
|
+
|
|
24
|
+
A booking checkout the payment provider refuses now says why.
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- Booking checkout (`studio_checkout`): when the payment provider answers with an error (`state: 'error'`), the guest and the agent see the provider's own short reason instead of "Stripe did not answer".
|
|
29
|
+
|
|
20
30
|
## [0.58.24] - 2026-10-29
|
|
21
31
|
|
|
22
32
|
**Plugin 0.58.15**
|
|
@@ -4992,6 +4992,48 @@
|
|
|
4992
4992
|
}
|
|
4993
4993
|
}
|
|
4994
4994
|
}
|
|
4995
|
+
},
|
|
4996
|
+
"0.58.25": {
|
|
4997
|
+
"files": {
|
|
4998
|
+
"CLAUDE.md": "ddf2b2a0376202f6",
|
|
4999
|
+
"README.md": "684b3cca8001673c",
|
|
5000
|
+
"HANDOFF.md": "29337e2ace95b2e7",
|
|
5001
|
+
"games/README.md": "5ad32fe80c61f117",
|
|
5002
|
+
"music/README.md": "a3dc042dadd39df8",
|
|
5003
|
+
"videos/README.md": "16babc3437d5545b",
|
|
5004
|
+
"posts/README.md": "37841aae476bd540",
|
|
5005
|
+
"site/README.md": "1dbdf22c03a1e505",
|
|
5006
|
+
"site/src/worker.mjs": "6cc5c6131eaf6fd0"
|
|
5007
|
+
},
|
|
5008
|
+
"sections": {
|
|
5009
|
+
"AGENTS.md": {
|
|
5010
|
+
"(intro)": "af7f2f732505d379",
|
|
5011
|
+
"## Version-matched authoring guides": "f6261a0e5801b96b",
|
|
5012
|
+
"## Layout": "f3a280b8c96cd068",
|
|
5013
|
+
"## Apps: one screen, roles and parts": "2ecf713305fd26f5",
|
|
5014
|
+
"## Commands (all through the pinned CLI in node_modules)": "661cbdf5d6a9dbae",
|
|
5015
|
+
"## The site": "0cb8dd9a6f8a0096",
|
|
5016
|
+
"## Making games": "644c1e7608bb9740",
|
|
5017
|
+
"## The Game Codex and progress": "0738ef719cef3a4c",
|
|
5018
|
+
"## Art direction and models": "a48fff7bf0a5f2fc",
|
|
5019
|
+
"## Running live games (the back office)": "51ebf2ab756f6e4d",
|
|
5020
|
+
"## Servers and AI seats": "1904f45b599a33e4",
|
|
5021
|
+
"## Selling things (the shop)": "e5bd380cb77f2b11",
|
|
5022
|
+
"## Continuing a build from the Claude app": "0d68081e924ca419",
|
|
5023
|
+
"## Rules": "b2234d80f6cbe71d",
|
|
5024
|
+
"## Telling Homie": "80b46fdd9e578db8",
|
|
5025
|
+
"## Beta": "9d02638207a26e73"
|
|
5026
|
+
}
|
|
5027
|
+
},
|
|
5028
|
+
"named": {
|
|
5029
|
+
"Homie Arcade": {
|
|
5030
|
+
"sections": {
|
|
5031
|
+
"AGENTS.md": {
|
|
5032
|
+
"## Commands (all through the pinned CLI in node_modules)": "0a7b2c36414a29a0"
|
|
5033
|
+
}
|
|
5034
|
+
}
|
|
5035
|
+
}
|
|
5036
|
+
}
|
|
4995
5037
|
}
|
|
4996
5038
|
}
|
|
4997
5039
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@homie-rocks/studio",
|
|
3
|
-
"version": "0.58.
|
|
3
|
+
"version": "0.58.25",
|
|
4
4
|
"description": "Open-source tools that let your AI build and run a multiplayer game studio on its own Cloudflare: an MCP server, multiplayer starters, Workers and Durable Objects.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { hasStripeKey } from './shop-links.mjs';
|
|
2
|
+
import { StripeError } from './stripe.mjs';
|
|
2
3
|
/**
|
|
3
4
|
* A HOSTED BOOKING CHECKOUT PROVIDER (0.58.24). A host may bind HOMIE_PAYMENTS, a service that opens Stripe Checkout
|
|
4
5
|
* for a studio's bookings on the host's own Stripe account (Homie's managed hosting does, in Stripe test mode, for
|
|
@@ -22,6 +23,8 @@ export async function providerOpen(env) {
|
|
|
22
23
|
/** Opens the session through the provider and remembers that this order belongs to it. */
|
|
23
24
|
export async function providerCheckout(env, orderId, params) {
|
|
24
25
|
const session = await env.HOMIE_PAYMENTS.bookingCheckout(JSON.parse(JSON.stringify(params)));
|
|
26
|
+
// A provider that heard Stripe say no answers { state: 'error', message, status, code }: show Stripe's reason.
|
|
27
|
+
if (session?.state === 'error') throw new StripeError(Number.isInteger(session.status) ? session.status : 502, { error: { message: String(session.message ?? 'Stripe rejected the checkout').slice(0, 300), code: String(session.code ?? 'stripe').slice(0, 60) } });
|
|
25
28
|
if (session?.state === 'rejected') throw Object.assign(new Error('The checkout is not open for this studio'), { code: 'closed' });
|
|
26
29
|
if (typeof session?.id !== 'string' || !/^cs_(test|live)_[A-Za-z0-9]+$/.test(session.id)) throw new Error('The payment provider answered without a session');
|
|
27
30
|
await env.DB.prepare('INSERT OR REPLACE INTO meta(key,value) VALUES(?1,?2)').bind(META(orderId), JSON.stringify({ session: session.id, livemode: session.livemode === true })).run();
|
package/worker/build-id.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by lib/build-identity.mjs; identifies the bundled runtime sources.
|
|
2
|
-
export const STUDIO_BUILD = Object.freeze({"version":"0.58.
|
|
2
|
+
export const STUDIO_BUILD = Object.freeze({"version":"0.58.25","sha256":"1e50252b64b7f0df9b4e3d54f4abe3ce286358c0885427f553a2f2167abb3682"});
|
package/worker/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The @homie-rocks/studio version this Worker code is (package.json's; a test keeps them equal). Cache-busts /_homie/site.js. */
|
|
2
|
-
export const STUDIO_VERSION_TAG = '0.58.
|
|
2
|
+
export const STUDIO_VERSION_TAG = '0.58.25';
|