@homie-rocks/studio 0.19.1 → 0.20.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.
- package/CHANGELOG.md +927 -0
- package/README.md +49 -3
- package/bin/homie-studio.mjs +57 -2
- package/lab/harness.js +371 -0
- package/lab/lab.ts +180 -0
- package/lab/page/index.html +83 -0
- package/lab/page/lab.css +174 -0
- package/lab/page/page.js +802 -0
- package/lab/take.js +189 -0
- package/lib/build.mjs +61 -44
- package/lib/changelog.mjs +204 -0
- package/lib/jobs.mjs +3 -2
- package/lib/lab-check.mjs +212 -0
- package/lib/lab.mjs +546 -0
- package/lib/mcp-tools.mjs +72 -6
- package/lib/mcp.mjs +4 -2
- package/lib/scaffold.mjs +7 -1
- package/lib/studio.mjs +14 -0
- package/lib/template-history.json +74 -0
- package/lib/upgrade.mjs +9 -1
- package/mcp/ui/card.css +2 -0
- package/mcp/ui/lab.js +67 -0
- package/mcp/ui/studio.js +9 -1
- package/package.json +7 -1
- package/port/index.ts +2 -0
- package/starters/ember-vale/lab.json +22 -0
- package/starters/ember-vale/src/main.ts +271 -19
- package/starters/ember-vale/tunables.json +13 -0
- package/starters/gem-rush/lab.json +19 -0
- package/starters/gem-rush/src/main.ts +213 -38
- package/starters/gem-rush/tunables.json +13 -0
- package/worker/version.mjs +1 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,927 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
What changed in each release of Homie's open parts, newest first:
|
|
4
|
+
|
|
5
|
+
- **`@homie-rocks/studio`**: the `homie-studio` command, your studio's site Worker, its multiplayer rooms (the
|
|
6
|
+
netplay contract), the port kit and the starter games. Every version is on npm, and Homie for Claude Desktop
|
|
7
|
+
(`homie-studio-<version>.mcpb` on each GitHub release) is built from it.
|
|
8
|
+
- **The Homie plugin** for Claude Code and Codex: its skills. It ships from this repository's marketplace with its
|
|
9
|
+
own version number, given beside each studio version below.
|
|
10
|
+
|
|
11
|
+
Each version says what you can now do (**Added**), what works differently (**Changed**), what was broken and is
|
|
12
|
+
not any more (**Fixed**), and anything you have to do yourself (**Upgrade notes**). The format follows
|
|
13
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). While Homie is 0.x, a minor version (0.19.0) adds
|
|
14
|
+
things and a patch (0.19.1) fixes or polishes them.
|
|
15
|
+
|
|
16
|
+
To bring a studio up to date, tell Claude: "Upgrade my studio to the newest Homie." It runs
|
|
17
|
+
`npx -y @homie-rocks/studio@latest upgrade`, which shows what's new since the version your studio pins (from this
|
|
18
|
+
file) and what the upgrade would change, and changes nothing until you agree.
|
|
19
|
+
|
|
20
|
+
## [0.20.0] - 2026-10-02
|
|
21
|
+
|
|
22
|
+
**Plugin 0.21.0** · [#30](https://github.com/homie-rocks/homie/pull/30)
|
|
23
|
+
|
|
24
|
+
A Game Lab: tune how one move of your game feels (a jump, a hit, a dash), your new version beside your last commit,
|
|
25
|
+
frame by frame.
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Plugin: the `lab` skill. Say "iterate on the jump", "make the hit feel punchier" or "tune the drift". Claude first
|
|
30
|
+
teaches your game to tell the lab about that move (its phases, the numbers that shape it) without changing how it
|
|
31
|
+
plays, and commits that. Then it proposes the change as named phases and numbers, shows it to you New beside Today,
|
|
32
|
+
keeps only what you like, and can record a side-by-side clip to share.
|
|
33
|
+
- `homie-studio lab <game>`: the Game Lab, a page on your own computer. One short take of your game plays in New (your
|
|
34
|
+
working copy, rebuilt every time a file is saved) beside Today (your last commit), on one clock, with the same
|
|
35
|
+
presses on the same frames. Slow it to a quarter or a tenth, step a frame at a time, try 30, 15 or 12 frames a
|
|
36
|
+
second, or switch to a phone-sized screen; the frames are the same frames at any speed.
|
|
37
|
+
- In the lab: a timeline that names each phase of the move, graphs of New against Today, captions, the game's own
|
|
38
|
+
onion skin and arcs, and its views (close, the whole arena). Its numbers are sliders: move one and New plays it at
|
|
39
|
+
once, and "Keep in code" writes the ones you like into the game's `tunables.json`. Press REC and play a move to make
|
|
40
|
+
a new take; both versions get your presses.
|
|
41
|
+
- `homie-studio lab check <game>`: the same take with no window. How long each phase lasts in each version, the peaks
|
|
42
|
+
of what the game tracks, whether a replay landed on exactly the same frames, a contact sheet and a still.
|
|
43
|
+
`homie-studio lab set <game> name=value` writes a number into `tunables.json`; `homie-studio lab --stop` stops the lab.
|
|
44
|
+
- Homie for Claude Desktop (`homie-studio mcp`): `game_lab` opens the lab and answers with a card: a still of both
|
|
45
|
+
versions at the move's busiest moment, their phases side by side, and Open.
|
|
46
|
+
- For your game's code, `@homie-rocks/studio/lab`: `lab.tunables`, `lab.phase`, `lab.track`, `lab.camera`,
|
|
47
|
+
`lab.overlay`, `lab.stage` (a training dummy for one move) and `lab.random` (dice for sparks and shake). Every call
|
|
48
|
+
does nothing outside the lab, so the calls stay in your game.
|
|
49
|
+
- Plugin: the perf skill's `try --measure` measures a change you keep for how it feels and says what it costs, without
|
|
50
|
+
reverting it (`try` on its own reverts anything that is not faster).
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- Gem Rush's bump lands. The bumped body holds for 70 ms, white and squashed against the hit, then flies stretched
|
|
55
|
+
along it, eases to a stop 185 px away at any frame rate (it used to slide a different distance at 12 and at 60
|
|
56
|
+
frames a second, then creep), and wobbles as it settles. Sparks, and a small camera kick for whoever was in it.
|
|
57
|
+
- Ember Vale's strike lands. The slime freezes white when it is hit and its damage pops up, a swipe carries through,
|
|
58
|
+
the slime is pushed back and wobbles like jelly, and a kill bursts. Your hero steps into each strike, so three
|
|
59
|
+
strikes in a row still reach.
|
|
60
|
+
- Both starters come ready for the lab: their numbers in `tunables.json` and a take in `lab.json`, which
|
|
61
|
+
`homie-studio game new` copies with the game. A new studio's AGENTS.md names both files and the lab command.
|
|
62
|
+
|
|
63
|
+
### Upgrade notes
|
|
64
|
+
|
|
65
|
+
- A game you made from a starter before 0.20.0 keeps its old feel: the new bump and strike come with a new copy
|
|
66
|
+
(`homie-studio game new`). To tune a move of your own game, tell Claude "build a Game Lab for <the move>": it adds
|
|
67
|
+
the lab's calls and a take, and commits that first.
|
|
68
|
+
- Today is your last commit, so commit (or stash) your work in progress before you open the lab. Its builds live in
|
|
69
|
+
`.studio/lab/`, which git already ignores.
|
|
70
|
+
|
|
71
|
+
## [0.19.2] - 2026-10-02
|
|
72
|
+
|
|
73
|
+
**Plugin 0.20.2** · [#29](https://github.com/homie-rocks/homie/pull/29) · [release-2026-10-02-studio-0.19.2](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.19.2)
|
|
74
|
+
|
|
75
|
+
Release notes: this changelog, on every GitHub release, inside the npm package, and at the top of
|
|
76
|
+
`homie-studio upgrade`.
|
|
77
|
+
|
|
78
|
+
### Added
|
|
79
|
+
|
|
80
|
+
- `CHANGELOG.md`: every release since 0.1.0, written for the people who make studios. It ships inside
|
|
81
|
+
`@homie-rocks/studio`, and each GitHub release's notes are now its version's section, with the Claude Desktop
|
|
82
|
+
extension still attached.
|
|
83
|
+
- `homie-studio upgrade` starts with what's new between the version your studio pins and the one you are moving to,
|
|
84
|
+
in the plan and again after `--apply`: one line per version, then the upgrade notes, anything you have to do
|
|
85
|
+
yourself. It reads the new version's own `CHANGELOG.md`, so it needs no network beyond npm. `--json` carries it as
|
|
86
|
+
`whatsNew`.
|
|
87
|
+
- The studio card (Homie for Claude Desktop, `homie-studio mcp`) says when a studio pins an older toolkit, what's new
|
|
88
|
+
since, and what to say to see the upgrade.
|
|
89
|
+
- Plugin: the studio-setup and office skills tell you what's new when your studio is behind, and how to take it.
|
|
90
|
+
|
|
91
|
+
### Fixed
|
|
92
|
+
|
|
93
|
+
- In Claude Desktop, `studio_run ["upgrade"]` runs the extension's own newer toolkit when the studio is behind. It ran
|
|
94
|
+
the studio's pinned copy, which knows nothing newer than itself, so it never offered an upgrade.
|
|
95
|
+
- When the plan moves the pin, its next step names the newer toolkit
|
|
96
|
+
(`npx -y @homie-rocks/studio@<version> upgrade --apply`), not the studio's own older copy.
|
|
97
|
+
|
|
98
|
+
### Changed
|
|
99
|
+
|
|
100
|
+
- For contributors: a pull request that changes `@homie-rocks/studio`'s version must add that version's section to
|
|
101
|
+
`CHANGELOG.md` (CI says exactly what to write), and a release stops before npm without one. A later edit to
|
|
102
|
+
`CHANGELOG.md` alone never needs a new version.
|
|
103
|
+
|
|
104
|
+
## [0.19.1] - 2026-10-02
|
|
105
|
+
|
|
106
|
+
**Plugin 0.20.1** · [#28](https://github.com/homie-rocks/homie/pull/28) · [release-2026-10-02-studio-0.19.1](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.19.1)
|
|
107
|
+
|
|
108
|
+
The perf skill measures games whose studio Worker adds its own script to the game page, and reads whether code is
|
|
109
|
+
minified from the code itself.
|
|
110
|
+
|
|
111
|
+
### Added
|
|
112
|
+
|
|
113
|
+
- `HOMIE_PERF_SERVE_WAIT_MS`: how long the perf skill waits for a dev server to serve a new build (60 s by default).
|
|
114
|
+
|
|
115
|
+
### Fixed
|
|
116
|
+
|
|
117
|
+
- The perf skill can measure a game whose studio Worker adds a script to the game page (a small shim after
|
|
118
|
+
`HOMIE_NET`, say). Its "is the site serving this build?" check never passed for such a game. Now the served page
|
|
119
|
+
must hold the build's own scripts and markup exactly and in order; any other script is the site's, and BASELINE.md
|
|
120
|
+
and the report list it. A Worker that changes in the middle of a loop stops the loop.
|
|
121
|
+
- `perf sizes` tells a minified script from source by reading its code (whitespace, comments, short names), not by
|
|
122
|
+
how well it gzips. Minified three.js bundles were told to "ship minified"; they now read as minified, with how much
|
|
123
|
+
of them is GLSL shader source in strings.
|
|
124
|
+
|
|
125
|
+
### Upgrade notes
|
|
126
|
+
|
|
127
|
+
- The minification hints need 0.19.1 in the studio; with an older pin the skill says nothing about minifying.
|
|
128
|
+
|
|
129
|
+
## [0.19.0] - 2026-10-02
|
|
130
|
+
|
|
131
|
+
**Plugin 0.20.0** · [#27](https://github.com/homie-rocks/homie/pull/27) · [release-2026-10-02-studio-0.19.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.19.0)
|
|
132
|
+
|
|
133
|
+
A perf skill that makes a game faster one measured change at a time, and `homie-studio perf` to measure it.
|
|
134
|
+
|
|
135
|
+
### Added
|
|
136
|
+
|
|
137
|
+
- Plugin: the `perf` skill. Say "make my game run faster on phones" or "find out why it stutters": it takes a
|
|
138
|
+
baseline, profiles, tries one change at a time, and keeps a change only when it is faster beyond the noise and the
|
|
139
|
+
game still passes its own check. Every try says whether the game should look and play the same, and the
|
|
140
|
+
screenshots are compared. It ends with `perf/<id>/README.md`: the numbers, and the game before and after.
|
|
141
|
+
- `homie-studio perf`: two real Chromes (a host and a replica) in a room of their own, as a computer or an emulated
|
|
142
|
+
phone, measuring frame times, JavaScript and main-thread time per frame, time to playable, downloads, memory and
|
|
143
|
+
netplay traffic. Every run records how busy the computer was, and a software-rendered run is marked blocked
|
|
144
|
+
instead of judged.
|
|
145
|
+
- `perf --profile` names the hottest functions by your own file and line (`build --maps` keeps the source map out of
|
|
146
|
+
the site), `perf compare` judges a change against the noise (side-by-side runs as pairs), and `perf sizes` lists
|
|
147
|
+
every built file, raw and gzipped.
|
|
148
|
+
|
|
149
|
+
### Upgrade notes
|
|
150
|
+
|
|
151
|
+
- `homie-studio upgrade --apply` adds the `perf/` row and the command to AGENTS.md, and `.perf/` to `.gitignore`.
|
|
152
|
+
|
|
153
|
+
## [0.18.2] - 2026-10-02
|
|
154
|
+
|
|
155
|
+
**Plugin 0.19.2** · [#26](https://github.com/homie-rocks/homie/pull/26) · [release-2026-10-02-studio-0.18.2](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.18.2)
|
|
156
|
+
|
|
157
|
+
`upgrade` reads the Homie Arcade studio's own sections right, and Ember Vale shows heroes' names and spreads out
|
|
158
|
+
their spawns.
|
|
159
|
+
|
|
160
|
+
### Fixed
|
|
161
|
+
|
|
162
|
+
- `homie-studio upgrade` no longer mistakes an untouched AGENTS.md section for one you edited when the template's
|
|
163
|
+
own words name your studio (the Commands section's "on Homie Arcade", read by the Homie Arcade studio). That
|
|
164
|
+
studio now takes the template's newer text like every other; words you changed are still kept.
|
|
165
|
+
- The port kit's `createRoom` gives a player who joins mid-round a free spawn spot instead of spot 0, so several
|
|
166
|
+
heroes no longer appear on one spot. The spot is kept in the room's checkpoint.
|
|
167
|
+
- Ember Vale shows each hero's own name over the hero, in the night's ranking and on a watcher's panel (it showed
|
|
168
|
+
the room's two-word handle). Names are one line of up to 20 characters, and on a kids server other players stay
|
|
169
|
+
handles. Its first spawn spots are spread around the camp.
|
|
170
|
+
- The studio's timing tests run on virtual time, so a busy computer no longer fails them.
|
|
171
|
+
|
|
172
|
+
### Upgrade notes
|
|
173
|
+
|
|
174
|
+
- A game made from Ember Vale before 0.18.2 keeps its own copy of the starter: the spawn fix reaches it when it is
|
|
175
|
+
rebuilt with 0.18.2 or later (it is in the port kit), but the names are the starter's own code, so copy them over
|
|
176
|
+
or make the game again from the starter.
|
|
177
|
+
|
|
178
|
+
## [0.18.1] - 2026-10-02
|
|
179
|
+
|
|
180
|
+
**Plugin 0.19.1** · [#25](https://github.com/homie-rocks/homie/pull/25) · [release-2026-10-02-studio-0.18.1](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.18.1)
|
|
181
|
+
|
|
182
|
+
Games fill a phone held upright, players' names never pile up, and `doctor` checks the AI guides' Workers AI model.
|
|
183
|
+
|
|
184
|
+
### Added
|
|
185
|
+
|
|
186
|
+
- Port kit: `fitView` shows the whole world where it fits (a computer, a TV) and elsewhere fills the screen and
|
|
187
|
+
follows the player, never past the world's edge; `createLabels` places players' names so yours is never covered
|
|
188
|
+
and the others never overlap or flicker.
|
|
189
|
+
- `homie-studio doctor`: when a server's AI guides think with Workers AI, one tiny call checks the model on your
|
|
190
|
+
account and says plainly when it needs Workers Paid, is gone, is private or wants its licence accepted, and what to
|
|
191
|
+
do. It never prints a token or an account id.
|
|
192
|
+
|
|
193
|
+
### Fixed
|
|
194
|
+
|
|
195
|
+
- Ember Vale on a phone held upright fills the screen and follows your hero (the vale was a small band in the
|
|
196
|
+
middle). Its ask panel sits right above STRIKE and keeps its buttons steady so a tap lands, guide bubbles never
|
|
197
|
+
cover your hero, and the HUD is the right size on high-density screens.
|
|
198
|
+
- Gem Rush on a phone held upright fills the screen and stops at the arena's edge, and its names use `createLabels`.
|
|
199
|
+
|
|
200
|
+
### Upgrade notes
|
|
201
|
+
|
|
202
|
+
- Games made from the starters before 0.18.1 keep their own layout. `fitView` and `createLabels` are in the port kit
|
|
203
|
+
for any game to use.
|
|
204
|
+
|
|
205
|
+
## [0.18.0] - 2026-10-02
|
|
206
|
+
|
|
207
|
+
**Plugin 0.19.0** · [#24](https://github.com/homie-rocks/homie/pull/24) · [release-2026-10-02-studio-0.18.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.18.0)
|
|
208
|
+
|
|
209
|
+
Big songs and videos live in the studio's own R2 once it has storage, at the same addresses, and the video skill
|
|
210
|
+
records a page while a script drives it.
|
|
211
|
+
|
|
212
|
+
### Added
|
|
213
|
+
|
|
214
|
+
- With storage, every published song or video file over 1 MiB (studio.json `media.r2Over`), or that git leaves out,
|
|
215
|
+
moves into the studio's R2: `homie-studio media move [--dry-run] [--verify]`, and every `deploy` of a studio with
|
|
216
|
+
storage does it first. Each file is uploaded, read back and checked by SHA-256 before the site stops carrying it.
|
|
217
|
+
Your local file is never changed, and the addresses stay the same, with seeking, caching and HEAD.
|
|
218
|
+
- `media list` shows where each file is served from and what would move. A deploy from a checkout without the media
|
|
219
|
+
(another computer, Workers Builds) keeps every file already moved.
|
|
220
|
+
- Plugin: the video skill records a page while a script drives it (`video.mjs record <slug> --steps steps.json`):
|
|
221
|
+
clicks, taps, drags, keys, typing, scrolling and waits, on the page or inside the game, as a computer (16:9) or a
|
|
222
|
+
phone (9:16), with captions at each step's second. Real time and honest frames: held frames are counted, never
|
|
223
|
+
blended.
|
|
224
|
+
|
|
225
|
+
### Changed
|
|
226
|
+
|
|
227
|
+
- What R2 costs is said where you decide: no egress fees, 10 GB-month of storage free and then US$0.015 per
|
|
228
|
+
GB-month, and Cloudflare asks for a payment method before R2 works. `media move` warns past 10 GB and refuses a
|
|
229
|
+
file over 300 MiB.
|
|
230
|
+
- Plugin: the video skill's Chrome starts on Linux the way the studio's own checks do, as a Claude Code cloud session
|
|
231
|
+
needs.
|
|
232
|
+
|
|
233
|
+
### Upgrade notes
|
|
234
|
+
|
|
235
|
+
- A studio without storage changes nothing: files up to 25 MiB a file are still served from the site. With storage,
|
|
236
|
+
your next `deploy` moves the big files to R2; run `homie-studio media move --dry-run` first to see which. `upgrade`
|
|
237
|
+
lists your big media and this step, and never moves a file itself.
|
|
238
|
+
|
|
239
|
+
## [0.17.0] - 2026-10-02
|
|
240
|
+
|
|
241
|
+
**Plugin 0.18.0** · [#23](https://github.com/homie-rocks/homie/pull/23) · [release-2026-10-02-studio-0.17.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.17.0)
|
|
242
|
+
|
|
243
|
+
AI guides that talk in your game's own words: on a beginner server they pick goals and lines from the game's
|
|
244
|
+
vocabulary, and your own Claude can take a guide's seat.
|
|
245
|
+
|
|
246
|
+
### Added
|
|
247
|
+
|
|
248
|
+
- `games/<id>/agents.json`, a game's vocabulary: goals, lines, and the asks a player taps ("Help me with King
|
|
249
|
+
Slime", "No thanks"). The build checks it.
|
|
250
|
+
- An AI without the game client sees the game through `agent:view` and acts through `agent:do`. It may only say the
|
|
251
|
+
vocabulary's lines, and only on a server whose AI may talk; the relay drops everything else, including a line a
|
|
252
|
+
host tries to put in an AI's mouth (NETPLAY.md v1 revision 7, section 18).
|
|
253
|
+
- `@homie-rocks/studio/agents` (`useAgents`) for the host: views, a scripted floor, goals for your bot code, asks as
|
|
254
|
+
buttons and lines rendered from the vocabulary.
|
|
255
|
+
- Guides on a beginner server decide on the room's own alarms with your studio's Workers AI, or your own Anthropic
|
|
256
|
+
key (Claude Haiku 4.5), within a daily budget (8,000 neurons and $1 by default); otherwise they follow the script.
|
|
257
|
+
Fixed rules sit outside the model: an ask is answered the way agents.json says, a guide says one line every 8 s
|
|
258
|
+
at most, "no thanks" holds it off for 10 minutes, and no name, account or address goes into a prompt.
|
|
259
|
+
- Your own Claude in a guide's seat: the local MCP's `agent_sit`, `agent_look`, `agent_do` and `agent_stand` (and
|
|
260
|
+
`homie-studio agents sit`) seat it as "Claude · AI".
|
|
261
|
+
- Ember Vale is the reference game for guides, and `agents/GUIDES.md` is a short path for an existing RPG.
|
|
262
|
+
|
|
263
|
+
### Upgrade notes
|
|
264
|
+
|
|
265
|
+
- Turning AI talk on the first time is an ask you confirm, and so is raising the cap on your own key. Deploy binds
|
|
266
|
+
Workers AI only when a server's guides use it, never in a Preview, and `homie-studio dev` keeps guides scripted
|
|
267
|
+
unless you pass `--remote-ai`. `homie-studio agents brain key` takes your key on a one-use page on your own
|
|
268
|
+
computer; it is never printed or pasted into a chat.
|
|
269
|
+
|
|
270
|
+
## [0.16.1] - 2026-10-02
|
|
271
|
+
|
|
272
|
+
**Plugin 0.17.1** · [#22](https://github.com/homie-rocks/homie/pull/22) · [release-2026-10-02-studio-0.16.1](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.16.1)
|
|
273
|
+
|
|
274
|
+
Servers polish: an opaque vote card, the server pill beside the room button, and a New server form that explains
|
|
275
|
+
itself.
|
|
276
|
+
|
|
277
|
+
### Fixed
|
|
278
|
+
|
|
279
|
+
- The AI level vote card is fully opaque, so the game's own hints no longer show through it. The TV view never
|
|
280
|
+
shows it.
|
|
281
|
+
- The server pill sits beside the room button, in the same band (on a phone held upright it is a dot from the
|
|
282
|
+
start), so the play page covers no more of the game than before. A server room's button says "Room 2", not the
|
|
283
|
+
server's internal id, and Gem Rush draws its scores under that band.
|
|
284
|
+
- The office's New server form groups its controls, explains each one in the words players see on the site, shows
|
|
285
|
+
only what applies to the kind of server you picked, and keeps what you set while the office refreshes.
|
|
286
|
+
|
|
287
|
+
## [0.16.0] - 2026-10-02
|
|
288
|
+
|
|
289
|
+
**Plugin 0.17.0** · [#21](https://github.com/homie-rocks/homie/pull/21) · [release-2026-10-02-studio-0.16.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.16.0)
|
|
290
|
+
|
|
291
|
+
Servers and AI seats: named pools of rooms with their own rules, every AI seat labelled as AI, and a skill dial the
|
|
292
|
+
party votes on.
|
|
293
|
+
|
|
294
|
+
### Added
|
|
295
|
+
|
|
296
|
+
- Servers, a game's named and lasting pools of rooms, each with a policy: **open** (an AI with a pass may sit,
|
|
297
|
+
always marked AI), **humans-only** (no AI of any kind), **hybrid** (the top seats of every room are AI companions)
|
|
298
|
+
and **beginner** (new accounts, AI guides, quick lines only; with Kids on, handles only). Strangers are matched only
|
|
299
|
+
inside one server. Every game's public rooms are its Quick play server, so old links and rooms keep working.
|
|
300
|
+
- Agent seats: an AI sits with a pass only your Worker can verify and is named "<label> · AI" everywhere. The relay
|
|
301
|
+
labels every roster and round result, so a modified host cannot pass an AI off as a person, and AI never keep a
|
|
302
|
+
room alive on their own.
|
|
303
|
+
- The skill dial: 1 Rookie to 5 Maxed (3, Fair, is how the port kit's bots always played). The party votes on a
|
|
304
|
+
card, and the server's ceiling caps it.
|
|
305
|
+
- On the site: a Servers band on each landing, `/<game>/servers/` and a page per server; the play page's server
|
|
306
|
+
pill, vote card and AI pills. The office manages servers, agent passes and AI levels, and anything that narrows a
|
|
307
|
+
server is an ask you confirm with one tap.
|
|
308
|
+
- `homie-studio servers`, `agents pass|passes|revoke|brain` and `office invite --server`. Plugin: the `servers`
|
|
309
|
+
skill.
|
|
310
|
+
- For game code: `net.policy`, `net.skill`, `net.vote()`, `net.agents()` and more in the netplay helper, all of it
|
|
311
|
+
done by the port kit's `createRoom`, and a `skill` option for BotBrain (NETPLAY.md v1 revision 6, section 17).
|
|
312
|
+
|
|
313
|
+
### Upgrade notes
|
|
314
|
+
|
|
315
|
+
- D1 migration `0006_studio_servers.sql`: `upgrade`, `deploy` and `dev` add it.
|
|
316
|
+
- A game built before 0.16.0 still plays on any server, and the office marks it "predates servers". Rebuild it with
|
|
317
|
+
0.16.0 or later for the dial and AI seats.
|
|
318
|
+
|
|
319
|
+
## [0.15.0] - 2026-10-01
|
|
320
|
+
|
|
321
|
+
**Plugin 0.16.0** · [#20](https://github.com/homie-rocks/homie/pull/20) · [release-2026-10-01-studio-0.15.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.15.0)
|
|
322
|
+
|
|
323
|
+
Watch any player: anyone can watch a live room from any player's view, on every studio, with nothing streamed.
|
|
324
|
+
|
|
325
|
+
### Added
|
|
326
|
+
|
|
327
|
+
- `/<game>/watch?room=<room>` shows a live room like a broadcast: a band above the game (live, the round's clock, how
|
|
328
|
+
many are watching, Play into this room) and a dock below with each player, Auto and the whole room. Tap, or use
|
|
329
|
+
keys 1 to 9, A, O, the arrows and F. It works on phones, computers and TV-sized screens; with no room given it
|
|
330
|
+
finds the busiest public one.
|
|
331
|
+
- The watcher's own browser draws the game from the followed player's view, as a watcher that never takes a seat
|
|
332
|
+
(NETPLAY.md v1 revision 5, section 16). Auto holds each player at least 3.5 s, then cuts to the newest spotlight (a
|
|
333
|
+
game marks one when someone waves or lands a kill, say), and otherwise follows the leader.
|
|
334
|
+
- Watch buttons beside Join on every room row and on landings; `/api/rooms` rows carry `watch`; watches count in
|
|
335
|
+
your stats, and the play page says how many are watching.
|
|
336
|
+
- game.json `"watch": "overview"` shows only the whole room (for hidden hands or roles), and `"watch": false` turns
|
|
337
|
+
watching off. Private and invite-only games are watched only by people they let in, and a kick also keeps that
|
|
338
|
+
browser from watching.
|
|
339
|
+
- For game code: `net.watching`, `net.viewSeat`, `net.follow()`, `net.spotlight()`, `on('view')` and `PALETTE`; the
|
|
340
|
+
port kit adds `room.viewSeat()` and `room.viewBody()`. Gem Rush and Ember Vale follow a player.
|
|
341
|
+
|
|
342
|
+
### Fixed
|
|
343
|
+
|
|
344
|
+
- Auto cuts the moment the player shown has had their 3.5 s, not up to half a second later.
|
|
345
|
+
|
|
346
|
+
### Upgrade notes
|
|
347
|
+
|
|
348
|
+
- Every existing game can be watched as its overview straight away. To follow one player, read `net.viewSeat` (or
|
|
349
|
+
listen for `view`) and draw that player's camera and HUD.
|
|
350
|
+
|
|
351
|
+
## [0.14.4] - 2026-10-01
|
|
352
|
+
|
|
353
|
+
**Plugin 0.15.4** · [#19](https://github.com/homie-rocks/homie/pull/19) · [release-2026-10-01-studio-0.14.4](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.4)
|
|
354
|
+
|
|
355
|
+
Remix credit and licence: a game's shared source says who made it and what its owner allows, and a remix credits
|
|
356
|
+
its original.
|
|
357
|
+
|
|
358
|
+
### Added
|
|
359
|
+
|
|
360
|
+
- game.json `"license"`: `"remix-with-credit"` (the default: a remix says "Remix of <game> by <studio>" with a link
|
|
361
|
+
back), `"remix-freely"`, or `"no-remix"` (the source can be read, and the remix flow refuses it). An SPDX id such
|
|
362
|
+
as `"MIT"` can be named too.
|
|
363
|
+
- A shared `source.json` carries `credit` and `license`, and a remix's game.json gets `remixOf`: the credit and the
|
|
364
|
+
original's name, studio, page and licence (and its own original, for a remix of a remix).
|
|
365
|
+
- The site shows "Remix of <game> by <studio>" on a remix's landing and in its credits, names the source's licence on
|
|
366
|
+
every landing, and offers "Open to remix" only when the owner's remix switch, the launch state and the licence all
|
|
367
|
+
allow it. The directory manifest carries `license` and `remixOf`.
|
|
368
|
+
|
|
369
|
+
### Upgrade notes
|
|
370
|
+
|
|
371
|
+
- A shared source from before 0.14.4 reads as the default licence, remix with credit. Set `"license"` in a game's
|
|
372
|
+
game.json for anything else.
|
|
373
|
+
|
|
374
|
+
## [0.14.3] - 2026-10-01
|
|
375
|
+
|
|
376
|
+
**Plugin 0.15.3** · [#18](https://github.com/homie-rocks/homie/pull/18) · [release-2026-10-01-studio-0.14.3](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.3)
|
|
377
|
+
|
|
378
|
+
Fixes from a first full run in Claude Desktop: links are yours to open, an earlier attempt can be folded in, log lines
|
|
379
|
+
cut cleanly, and every answer fits Claude Desktop's 1 MB limit.
|
|
380
|
+
|
|
381
|
+
### Added
|
|
382
|
+
|
|
383
|
+
- `studio_fold`: when a folder with your studio's name already exists and is not a studio, the AI asks you first,
|
|
384
|
+
then copies its notes into `notes/earlier/<folder>/` for the plan to use; with a second yes it moves the old folder
|
|
385
|
+
to the Trash (on a Mac). It never touches any other folder. If the name is taken in the studios folder, the new
|
|
386
|
+
studio goes in `<name>-studio`.
|
|
387
|
+
|
|
388
|
+
### Fixed
|
|
389
|
+
|
|
390
|
+
- After `game_demo` and `preview_run`, the AI hands you the Play link or the card's button instead of opening a
|
|
391
|
+
browser itself (a permission prompt once sat unanswered for minutes).
|
|
392
|
+
- The build card's log lines are cut at a word's end, so a step count is never lost mid-number.
|
|
393
|
+
- Every answer stays under Claude Desktop's 1 MB limit: a big picture from `file_read` comes back as a smaller JPEG
|
|
394
|
+
copy (your file is never changed), and one guard trims pictures first, then text, and says what it left out.
|
|
395
|
+
|
|
396
|
+
## [0.14.2] - 2026-10-01
|
|
397
|
+
|
|
398
|
+
**Plugin 0.15.2** · [#17](https://github.com/homie-rocks/homie/pull/17) · [release-2026-10-01-studio-0.14.2](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.2)
|
|
399
|
+
|
|
400
|
+
Homie for Claude Desktop turns itself on as it installs.
|
|
401
|
+
|
|
402
|
+
### Fixed
|
|
403
|
+
|
|
404
|
+
- Claude Desktop installed the extension switched off, because its Studios folder setting was marked required. The
|
|
405
|
+
setting is now optional, with a Studios folder in your home folder as its default, so the extension turns itself
|
|
406
|
+
on.
|
|
407
|
+
|
|
408
|
+
### Changed
|
|
409
|
+
|
|
410
|
+
- Every local tool's description starts with "Homie Studio", and the server tells Claude it is not the separate
|
|
411
|
+
Homie app, whose own MCP server may be listed on the same computer.
|
|
412
|
+
|
|
413
|
+
### Upgrade notes
|
|
414
|
+
|
|
415
|
+
- If Settings → Extensions shows Homie Studio switched off after an earlier install, switch it on, or install this
|
|
416
|
+
version's `.mcpb`.
|
|
417
|
+
|
|
418
|
+
## [0.14.1] - 2026-10-01
|
|
419
|
+
|
|
420
|
+
**Plugin 0.15.1** · [#12](https://github.com/homie-rocks/homie/pull/12), [#13](https://github.com/homie-rocks/homie/pull/13), [#14](https://github.com/homie-rocks/homie/pull/14), [#15](https://github.com/homie-rocks/homie/pull/15), [#16](https://github.com/homie-rocks/homie/pull/16) · [release-2026-10-01-studio-0.14.1](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.1)
|
|
421
|
+
|
|
422
|
+
Rooms re-check a game's launch state as they open, the plugin gets a Codex manifest, and its skills read cleanly to
|
|
423
|
+
skill scanners.
|
|
424
|
+
|
|
425
|
+
Three changes landed without a version of their own (#12 to #14), and #15 gave them 0.14.1. The first publish run
|
|
426
|
+
for the 0.14.1 tag stopped before anything reached npm: #12 had also renamed a constant in `@homie-rocks/render`
|
|
427
|
+
without giving render a new version, and a release refuses that. #16 put render back exactly as published, the tag
|
|
428
|
+
was moved to that commit, and the run there published 0.14.1. The render rename did not ship; it waits for render's
|
|
429
|
+
next version.
|
|
430
|
+
|
|
431
|
+
### Added
|
|
432
|
+
|
|
433
|
+
- Plugin: a Codex plugin manifest (`.codex-plugin/plugin.json`) with an icon, and a plugin README and SECURITY.md,
|
|
434
|
+
for plugin catalogs.
|
|
435
|
+
|
|
436
|
+
### Fixed
|
|
437
|
+
|
|
438
|
+
- A room that opens at the moment its game goes private or invite-only reads the launch state on its first
|
|
439
|
+
heartbeat and re-gates itself after the current round, like every other room.
|
|
440
|
+
- Plugin: the office skill matches 0.13.0 (rooms finish their round when a game narrows; the say, chat and emote
|
|
441
|
+
convention for mute; what a kick holds).
|
|
442
|
+
- Plugin: the skills avoid the characters and patterns skill scanners flag. Nothing behaves differently.
|
|
443
|
+
|
|
444
|
+
### Changed
|
|
445
|
+
|
|
446
|
+
- For contributors: CI and the publish workflow pin their GitHub Actions to commit SHAs.
|
|
447
|
+
|
|
448
|
+
## [0.14.0] - 2026-10-01
|
|
449
|
+
|
|
450
|
+
**Plugin 0.15.0** · [#11](https://github.com/homie-rocks/homie/pull/11) · [release-2026-10-01-studio-0.14.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.0)
|
|
451
|
+
|
|
452
|
+
One chat: a new studio starts with no game, the toolkit runs as a local MCP server, Homie for Claude Desktop, and a
|
|
453
|
+
one-line hand-off from a phone.
|
|
454
|
+
|
|
455
|
+
### Added
|
|
456
|
+
|
|
457
|
+
- Homie for Claude Desktop: the toolkit as a desktop extension, attached to every GitHub release from this one on.
|
|
458
|
+
The chat that shows Homie's cards makes the studio, builds, checks and deploys, with no terminal. Long work
|
|
459
|
+
(installs, checks, deploys) runs as background jobs, so no tool call holds the chat.
|
|
460
|
+
- `homie-studio mcp`: the same tools as a local MCP server (setup, studios, games, build, preview, check, playtest,
|
|
461
|
+
deploy, progress, files that never leave the studio, and the plugin's guides), named and shaped like the remote
|
|
462
|
+
Homie MCP's where they overlap. `studio_open` clones a studio made on a phone from GitHub with the computer's own
|
|
463
|
+
sign-in.
|
|
464
|
+
- `homie-studio demo` (and `game_demo`) points at a live game on Homie Arcade to try first.
|
|
465
|
+
- `homie-studio codex new <id>` starts a game with only its Game Codex; `game new <id>` later makes the game around
|
|
466
|
+
it.
|
|
467
|
+
- `HANDOFF.md` and `homie-studio handoff hb_…`: "Continue building <Studio>" in a Claude Code session takes the build
|
|
468
|
+
the chat opened.
|
|
469
|
+
|
|
470
|
+
### Changed
|
|
471
|
+
|
|
472
|
+
- A new studio has no starter game. `new`, the Deploy to Cloudflare template and the Claude app's setup make a home
|
|
473
|
+
that says "First game coming soon", and a starter (`gem-rush`, or `ember-vale`) is copied in only when you ask.
|
|
474
|
+
`dev` and `deploy` work with no game.
|
|
475
|
+
- Plugin: studio-setup's checklist and the game and plan skills follow this (with no starter, step 3's one small
|
|
476
|
+
change is to the studio's own home).
|
|
477
|
+
|
|
478
|
+
### Fixed
|
|
479
|
+
|
|
480
|
+
- `upgrade` keeps two new AGENTS.md sections in the template's order (it used to swap them).
|
|
481
|
+
|
|
482
|
+
### Upgrade notes
|
|
483
|
+
|
|
484
|
+
- Existing studios keep their games. `upgrade --apply` adds `HANDOFF.md` and the AGENTS.md section about continuing
|
|
485
|
+
a build.
|
|
486
|
+
- The `.mcpb` is not signed yet, and Claude says so as it installs it.
|
|
487
|
+
|
|
488
|
+
## [0.13.0] - 2026-10-01
|
|
489
|
+
|
|
490
|
+
**Plugin 0.14.0** · [#10](https://github.com/homie-rocks/homie/pull/10) · [release-2026-10-01-studio-0.13.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.13.0)
|
|
491
|
+
|
|
492
|
+
The studio's back office: live rooms, kick, mute, announce, launch states and invites, and the owner recognised in
|
|
493
|
+
their own game.
|
|
494
|
+
|
|
495
|
+
### Added
|
|
496
|
+
|
|
497
|
+
- `/_studio/office`, the owner's private page: every live room of every game and who is in it, refreshed every 3 s.
|
|
498
|
+
Kick (for as long as you choose), mute, announce to a room, a game or the whole studio, close a room, and per game:
|
|
499
|
+
its launch state, remix switch, players per room and invites.
|
|
500
|
+
- Launch states per game: `private` (only you), `invite` (an invite-only beta with `XXXX-XXXX` codes and links) and
|
|
501
|
+
`public` (the default). A game that is not public is in no list and refuses anyone without access. Narrowing never
|
|
502
|
+
cuts a round short: each room finishes its round, then re-gates. game.json `"launch"` keeps a new game private from
|
|
503
|
+
its first deploy.
|
|
504
|
+
- The owner in their own game: a small Owner button on your play page, with everyone in the room, Mute and Kick.
|
|
505
|
+
Nobody else's page carries it. A game can open a player's card with `net.pickPlayer(seat)`.
|
|
506
|
+
- An office key for your AI (`homie-studio office key`): it can look, announce and invite, and a kick, mute, close
|
|
507
|
+
or launch change becomes an ask you confirm with one tap. No key can confirm.
|
|
508
|
+
- `homie-studio office [link|key|announce|invite|launch|kick|close|revoke]`. Plugin: the `office` skill.
|
|
509
|
+
- Netplay revision 4 (NETPLAY.md section 15): the room verifies the owner's signed controls; new `announce` and
|
|
510
|
+
`mute` frames, and `kicked` and `room-closed` refusals.
|
|
511
|
+
|
|
512
|
+
### Changed
|
|
513
|
+
|
|
514
|
+
- The owner's session cookie lives at `/` (the office carries an older `/_studio/` one over), and the owner's passkey
|
|
515
|
+
account from 0.12.0 counts as the owner everywhere.
|
|
516
|
+
|
|
517
|
+
### Upgrade notes
|
|
518
|
+
|
|
519
|
+
- D1 migration `0005_studio_office.sql`: `upgrade`, `deploy` and `dev` add it.
|
|
520
|
+
- For mute to work in your game, send chat, quick lines and emotes as events whose kind starts with `say`, `chat` or
|
|
521
|
+
`emote`.
|
|
522
|
+
|
|
523
|
+
## [0.12.1] - 2026-10-01
|
|
524
|
+
|
|
525
|
+
**Plugin 0.13.1** · [#9](https://github.com/homie-rocks/homie/pull/9) · [release-2026-10-01-studio-0.12.1](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.12.1)
|
|
526
|
+
|
|
527
|
+
The toolkit works through a proxy, as in a Claude Code cloud session, a failed request says what actually failed,
|
|
528
|
+
and the hand-off opens the studio's own repository.
|
|
529
|
+
|
|
530
|
+
### Added
|
|
531
|
+
|
|
532
|
+
- The studio's repository is read from `HOMIE_REPO`, studio.json `github` or the git remote, and `setup attach`
|
|
533
|
+
refuses without one. `deploy` passes it to the Worker, which tells the directory (never in the public manifest), so
|
|
534
|
+
a hand-off opens the session in your studio's repository.
|
|
535
|
+
- Plugin: the game skill checks that the session is in the repository the prompt names, and quotes the toolkit's
|
|
536
|
+
message instead of guessing at a cause.
|
|
537
|
+
|
|
538
|
+
### Fixed
|
|
539
|
+
|
|
540
|
+
- With a proxy in the environment (`HTTPS_PROXY`, as a cloud session has), the CLI uses it. Node's `fetch()` went
|
|
541
|
+
around it, failed to find homie.rocks, and the session wrongly blamed its network settings.
|
|
542
|
+
- A failed request says what happened: the server's status and message, or the connection error and whether the
|
|
543
|
+
proxy was used. The network setting is named only when the proxy itself refuses.
|
|
544
|
+
- `setup status` no longer calls a failed request a missing connector.
|
|
545
|
+
|
|
546
|
+
## [0.12.0] - 2026-10-01
|
|
547
|
+
|
|
548
|
+
**Plugin 0.13.0** · [#8](https://github.com/homie-rocks/homie/pull/8), [#7](https://github.com/homie-rocks/homie/pull/7) · [release-2026-10-01-studio-0.12.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.12.0)
|
|
549
|
+
|
|
550
|
+
Player accounts and cloud saves: persistent games whose characters last for days and follow a player to every
|
|
551
|
+
device.
|
|
552
|
+
|
|
553
|
+
### Added
|
|
554
|
+
|
|
555
|
+
- Player accounts on the studio's own site, passkey first: no password, no email. Pressing Play needs nothing; the
|
|
556
|
+
first save makes a guest, and a guest who makes a passkey keeps everything. Sign in on another device with the
|
|
557
|
+
same passkey. Recovery is another passkey, or an email when the studio binds a mail sender.
|
|
558
|
+
- Cloud saves, `@homie-rocks/studio/saves` (also on `window.HomiePort`): per player and per game, versioned, so a
|
|
559
|
+
stale copy is a conflict and never a silent overwrite, and offline-tolerant with a local outbox. Lifetime stats,
|
|
560
|
+
and a hall of the fallen for hardcore games (`saves.fall()` writes a memorial and wipes the saves in one step).
|
|
561
|
+
- The Ember Vale starter, a persistent-character game on the same public rooms: `homie-studio game new <id> --from
|
|
562
|
+
ember-vale`.
|
|
563
|
+
- `/account/`: your name, passkeys, recovery email, and download or delete everything. No IP address is stored and no
|
|
564
|
+
third-party script or cookie is used; the owner sees counts (`homie-studio players`), never a passkey or an email.
|
|
565
|
+
- Plugin: the plan interview always asks whether progress must last across sessions or devices, and the game skill
|
|
566
|
+
wires saves in when it does.
|
|
567
|
+
|
|
568
|
+
### Changed
|
|
569
|
+
|
|
570
|
+
- The docs say a Claude Code cloud session's default network reaches homie.rocks; changing it is a troubleshooting
|
|
571
|
+
step, not a setup step ([#7](https://github.com/homie-rocks/homie/pull/7)).
|
|
572
|
+
|
|
573
|
+
### Upgrade notes
|
|
574
|
+
|
|
575
|
+
- D1 migration `0004_players.sql`: `deploy` and `dev` add it to an older studio, and so does `upgrade`. `account` is
|
|
576
|
+
now a reserved game id and site path.
|
|
577
|
+
- A game opts in to saves with game.json `"saves": true`.
|
|
578
|
+
|
|
579
|
+
## [0.11.0] - 2026-10-01
|
|
580
|
+
|
|
581
|
+
**Plugin 0.12.0** · [#6](https://github.com/homie-rocks/homie/pull/6) · [release-2026-10-01-studio-0.11.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.11.0)
|
|
582
|
+
|
|
583
|
+
A new creator's first hour: setup status, a checklist that never jumps ahead, the Game Codex, parallel agents, and
|
|
584
|
+
the build's progress under your prompt.
|
|
585
|
+
|
|
586
|
+
### Added
|
|
587
|
+
|
|
588
|
+
- `homie-studio setup status` (also `doctor`): one checklist of Node, the Homie connector, Cloudflare (signed in,
|
|
589
|
+
email verified), Chrome, ffmpeg, the optional GitHub, ElevenLabs and fal, and Claude Code's status line. Each row
|
|
590
|
+
says what it unlocks and the exact fix; optional rows never block, and nothing private is printed.
|
|
591
|
+
- The Game Codex: `games/<id>/CODEX.md` in plain Markdown, and `homie-studio codex <id>`, which draws it as a page in
|
|
592
|
+
the game's own look (cards, controls, milestones, decisions, open questions) with a live Build status tab.
|
|
593
|
+
`--artifact` makes a self-contained copy; on the site it is owner-only, at `/_studio/codex/<id>/`.
|
|
594
|
+
- `homie-studio statusline`: Claude Code's status line shows the build's stage, a bar, its checks and spend.
|
|
595
|
+
`statusline --install` writes it into `.claude/settings.local.json`, never over one you have, and `--project` is
|
|
596
|
+
for when Claude Code started in the folder above the studio.
|
|
597
|
+
- Plugin: studio-setup shows one checklist and ticks it as it goes, asking before it copies a starter; the `plan`
|
|
598
|
+
skill's short interview (two or three questions a message, each with a pick) becomes the Game Codex; the `parallel`
|
|
599
|
+
skill offers one agent or several, with the trade-off said plainly.
|
|
600
|
+
|
|
601
|
+
### Fixed
|
|
602
|
+
|
|
603
|
+
- The codex's "Ready to try" link is drawn only for a web address, and `setup status --homie` falls back to
|
|
604
|
+
homie.rocks when what it is given is not an address.
|
|
605
|
+
|
|
606
|
+
## [0.10.0] - 2026-10-01
|
|
607
|
+
|
|
608
|
+
**Plugin 0.11.0** · [#5](https://github.com/homie-rocks/homie/pull/5) · [release-2026-10-01-studio-0.10.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.10.0)
|
|
609
|
+
|
|
610
|
+
A studio from the Claude app with no terminal: Deploy to Cloudflare makes it, Workers Builds deploys every push with a
|
|
611
|
+
Preview per branch, and the site lists itself.
|
|
612
|
+
|
|
613
|
+
### Added
|
|
614
|
+
|
|
615
|
+
- `template/`: the public Deploy to Cloudflare template, made by `homie-studio new --template` and checked on every
|
|
616
|
+
pull request.
|
|
617
|
+
- Previews: each branch's Preview gets its own rooms, binds no D1, counts nothing and never lists itself.
|
|
618
|
+
- In Workers Builds (`WORKERS_CI=1`, or `--ci`), `npm run deploy` only applies D1 migrations and deploys; it creates
|
|
619
|
+
and writes nothing else.
|
|
620
|
+
- The site claims its own place in the directory the first time the directory reads it, so nobody runs
|
|
621
|
+
`d1 execute`. It never claims from a Preview, or when studio.json says `homie.directory: false`.
|
|
622
|
+
- For a Claude Code session: `setup attach <hs_…>`, `progress attach <hb_…>`, `progress change` and
|
|
623
|
+
`progress pr --url …`, so the chat's cards follow the build and say Live once the site lists the change.
|
|
624
|
+
- `homie-studio chrome install`: Chrome for Testing for the checks on a Linux machine with no GPU. `check` reports
|
|
625
|
+
each browser's frame rate and renderer, and never judges a software frame rate.
|
|
626
|
+
- The manifest says what is deployed (commit, branch, when), and `HOMIE_DIRECTORY` points one build at another
|
|
627
|
+
directory.
|
|
628
|
+
|
|
629
|
+
### Changed
|
|
630
|
+
|
|
631
|
+
- New studios keep `wrangler.jsonc` at the studio's root, where Workers Builds reads it, and pin the toolkit from
|
|
632
|
+
registry.npmjs.org by exact version.
|
|
633
|
+
- Every studio Worker sets `global_fetch_strictly_public`, so a site whose directory is on the same zone can reach
|
|
634
|
+
it.
|
|
635
|
+
|
|
636
|
+
### Fixed
|
|
637
|
+
|
|
638
|
+
- Chrome for Testing starts on Ubuntu 24.04, which forbids its sandbox: the checks turn the sandbox off only where
|
|
639
|
+
the system requires it.
|
|
640
|
+
|
|
641
|
+
### Upgrade notes
|
|
642
|
+
|
|
643
|
+
- Studios made before keep `site/wrangler.jsonc`; every command finds either, and `upgrade` never moves it. A studio
|
|
644
|
+
pinned to a homie.rocks tarball keeps that kind of pin when it upgrades.
|
|
645
|
+
|
|
646
|
+
## [0.9.0] - 2026-09-30
|
|
647
|
+
|
|
648
|
+
**Plugin 0.10.0** · [#4](https://github.com/homie-rocks/homie/pull/4) · [release-2026-09-30-studio-0.9.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.9.0)
|
|
649
|
+
|
|
650
|
+
`homie-studio upgrade`, which brings an older studio up to the newest template without touching what you changed,
|
|
651
|
+
and template polish from studios moving to 0.7.0.
|
|
652
|
+
|
|
653
|
+
### Added
|
|
654
|
+
|
|
655
|
+
- `homie-studio upgrade [--apply] [--diff]`: what this version's template adds to an existing studio (AGENTS.md
|
|
656
|
+
sections, READMEs, `.gitignore` lines, D1 migrations, package.json scripts and the pin), as a plan with diffs. A file
|
|
657
|
+
or section is replaced only when it is exactly an older template's text; anything you changed is kept, and
|
|
658
|
+
`--diff` shows how it differs.
|
|
659
|
+
- game.json `screen.share` places the room button per device (`top-left`, `top-center`, `top-right`, `bottom-left`,
|
|
660
|
+
`bottom-right`, with offsets, or as a small icon).
|
|
661
|
+
- game.json `landing.scheme: "light"`, for a white or cream game's landing.
|
|
662
|
+
- The site's root answers a game's `/__homie/*` check with `not-a-homie`, as each game's own path already did, so a
|
|
663
|
+
studio no longer needs a wrapper Worker for it.
|
|
664
|
+
- For the homie.rocks hub: each game's week of plays in the manifest when the studio shares its stats, studio.json
|
|
665
|
+
`"rooms": { "share": false }`, and `/api/rooms` cached for 15 s.
|
|
666
|
+
- Plugin: `capture-game.mjs --scale` renders a heavy game smaller and scales it up to the film's size.
|
|
667
|
+
|
|
668
|
+
### Changed
|
|
669
|
+
|
|
670
|
+
- Cards and the directory show a game's landing still (`hero/wide.jpg`, else a trailer's poster, else the cover). A
|
|
671
|
+
song's cover falls back to the album's, then its game's landing still, then the studio's share picture.
|
|
672
|
+
- Every Chrome the toolkit and skills start may take up to 150 s, and `check` waits 90 s for pages and seats, for
|
|
673
|
+
busy computers.
|
|
674
|
+
|
|
675
|
+
### Fixed
|
|
676
|
+
|
|
677
|
+
- `check` on a busy computer: a browser the relay dropped for being quiet no longer fails the round. A round counts
|
|
678
|
+
when each browser has a seat in its results, and a failure says which seat was left out, whether a browser lost its
|
|
679
|
+
connection, and how busy the computer was.
|
|
680
|
+
- `capture-game.mjs` advises half size or more, and says when the computer is too busy to capture well.
|
|
681
|
+
|
|
682
|
+
## [0.8.0] - 2026-09-30
|
|
683
|
+
|
|
684
|
+
**Plugin 0.9.0** · [#3](https://github.com/homie-rocks/homie/pull/3) · [release-2026-09-30-studio-0.8.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.8.0)
|
|
685
|
+
|
|
686
|
+
A build you can watch: the progress feed behind the Claude app's build card.
|
|
687
|
+
|
|
688
|
+
### Added
|
|
689
|
+
|
|
690
|
+
- A build of a game, song or video can keep a small progress feed (`.studio/progress/<build>.json`): its stages and
|
|
691
|
+
checks, a picture and the address to play, spend against a budget, a song's waveform, a video's shots, the latest
|
|
692
|
+
log lines, and a Stop button.
|
|
693
|
+
- `build`, `check`, `port check` and `deploy` report into an open feed by themselves. `check` reports its four steps
|
|
694
|
+
live, with pictures, and a deploy with every check green ends the build with the live Play address.
|
|
695
|
+
- `homie-studio progress stage|check|spend|preview|shot|song|log|end|show` for what only the AI knows, and `--share`
|
|
696
|
+
so the Claude app's card can show the feed for 24 hours. The write key stays on your computer and is never printed.
|
|
697
|
+
- Stop, from the terminal or the card, is heard before each stage and every 5 s while one runs. Nothing already
|
|
698
|
+
built or deployed is undone.
|
|
699
|
+
- Plugin: the game skill opens a feed when you follow a build in the app.
|
|
700
|
+
|
|
701
|
+
### Changed
|
|
702
|
+
|
|
703
|
+
- Nothing, unless a feed is open: without one, every command behaves exactly as before.
|
|
704
|
+
|
|
705
|
+
## [0.7.0] - 2026-09-30
|
|
706
|
+
|
|
707
|
+
**Plugin 0.8.0** · [#2](https://github.com/homie-rocks/homie/pull/2), [#1](https://github.com/homie-rocks/homie/pull/1) · [release-2026-09-30-studio-0.7.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.7.0)
|
|
708
|
+
|
|
709
|
+
Studio sites get the same sections as homie.rocks, and every game gets an epic landing page.
|
|
710
|
+
|
|
711
|
+
### Added
|
|
712
|
+
|
|
713
|
+
- Sections like the homie.rocks hub, in your studio's own look: Home, Games, Music, Videos, Rooms (every public room
|
|
714
|
+
playing now, with Join) and Posts. A section with nothing in it has no tab.
|
|
715
|
+
- A landing page for every game at `/<game>/`, made from its own files: footage or its cover in the hero, the pitch,
|
|
716
|
+
a big Play button into a public room with who is playing, the devices and join codes, how to play, credits with
|
|
717
|
+
licences, and "Make a game like this". game.json `landing` sets the words, footage, credits and an accent.
|
|
718
|
+
- Posts: `posts/*.md`, rendered with a safe Markdown subset, with Atom and JSON feeds.
|
|
719
|
+
- `site/` wins: `theme.json` (each new studio starts from one of eight palettes), `theme.css`, partials, whole pages
|
|
720
|
+
and public files. A page can never take over the rooms, the game files or the API.
|
|
721
|
+
- `homie-studio look`: pictures of the site's pages on a computer, a phone and a phone turned sideways, with what is
|
|
722
|
+
wrong on each.
|
|
723
|
+
- The play page keeps the room in its address, and a small room button opens Invite, Big screen and the room code. A
|
|
724
|
+
player without a name gets a two-word handle ("Rusty Rocket").
|
|
725
|
+
|
|
726
|
+
### Changed
|
|
727
|
+
|
|
728
|
+
- Generated pages refuse to be framed by other sites, every HTML answer is `no-transform`, and the referrer policy
|
|
729
|
+
shares only your site's address, never a path.
|
|
730
|
+
- For contributors: this repository is now where the open parts are developed, with CI, a leak audit and a contract
|
|
731
|
+
test for every engine package ([#1](https://github.com/homie-rocks/homie/pull/1)).
|
|
732
|
+
|
|
733
|
+
### Fixed
|
|
734
|
+
|
|
735
|
+
- Gamepads work in WebKit 26 inside the game's frame.
|
|
736
|
+
- A `?room=` the relay cannot use is refused with a way into a public room, never silently swapped.
|
|
737
|
+
- A bundled game's cover in its `public/` folder is found, `look` judges Play only on Home and landings, a band
|
|
738
|
+
partial that is its own `<section>` stands alone, and new studios keep `.checks/` screenshots out of git.
|
|
739
|
+
|
|
740
|
+
### Upgrade notes
|
|
741
|
+
|
|
742
|
+
- A studio on 0.6.0 moves by pinning 0.7.0; nothing in its `site/` changes.
|
|
743
|
+
|
|
744
|
+
## [0.6.0] - 2026-09-30
|
|
745
|
+
|
|
746
|
+
**Plugin 0.6.0, then 0.7.0** · [b1cef3d](https://github.com/homie-rocks/homie/commit/b1cef3d), [002ab27](https://github.com/homie-rocks/homie/commit/002ab27) · [release-2026-09-30-studio-0.6.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.6.0)
|
|
747
|
+
|
|
748
|
+
Rooms of up to 32, and the studio's own stats, read only by its owner.
|
|
749
|
+
|
|
750
|
+
### Added
|
|
751
|
+
|
|
752
|
+
- A room's size comes from the game's netplay manifest (game.json `netplay`, or `netplay.json`), up to 32 seats. One
|
|
753
|
+
address may hold every seat plus four more, for a party on one Wi-Fi with a TV. The relay's caps double for rooms
|
|
754
|
+
of 17 to 32 (NETPLAY.md revision 3).
|
|
755
|
+
- The netplay helper sends an unchanged input frame at most four times a second, which keeps an idle player's seat.
|
|
756
|
+
- Studio stats: page opens, Play presses by where they came from, rooms, rounds, peaks, and song and video starts,
|
|
757
|
+
as daily counters in the studio's own D1. Only the owner reads them: `homie-studio stats`, a read key, or a
|
|
758
|
+
one-time sign-in to `/_studio/stats`. Nothing follows a visitor.
|
|
759
|
+
- Plugin 0.6.0: the skills say how to read stats. Plugin 0.7.0 came out of the marketplace soon after, with no studio
|
|
760
|
+
change: a `sound` skill (effects and synthesized scores made on your computer, measured, wired into the game), an
|
|
761
|
+
`art` skill (covers from real frames, and fal images under a budget), a `playtest` skill (real browsers on a
|
|
762
|
+
computer and a phone, then a blind review), and delivery checks for the video skill.
|
|
763
|
+
|
|
764
|
+
### Changed
|
|
765
|
+
|
|
766
|
+
- `deploy` keeps the workers.dev address, which names your Cloudflare account, in `.studio/local.json` (ignored by
|
|
767
|
+
git) and never in studio.json.
|
|
768
|
+
|
|
769
|
+
### Fixed
|
|
770
|
+
|
|
771
|
+
- The stats sign-in keeps its origin, and the stats tables fit a phone.
|
|
772
|
+
|
|
773
|
+
### Upgrade notes
|
|
774
|
+
|
|
775
|
+
- A 0.5.0 studio's committed workers.dev address moves out of studio.json on its next deploy, which also adds
|
|
776
|
+
`.studio/` to `.gitignore`. Stats need D1 migration `0002_studio_stats.sql`, which `deploy` and `dev` add.
|
|
777
|
+
|
|
778
|
+
## [0.5.0] - 2026-09-30
|
|
779
|
+
|
|
780
|
+
**Plugin 0.5.0** · [3b93106](https://github.com/homie-rocks/homie/commit/3b93106), [0304da8](https://github.com/homie-rocks/homie/commit/0304da8) · [release-2026-09-30-studio-0.5.0](https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.5.0)
|
|
781
|
+
|
|
782
|
+
Song and video pages on your studio's site, with no storage needed.
|
|
783
|
+
|
|
784
|
+
### Added
|
|
785
|
+
|
|
786
|
+
- `/music/<slug>/` (a player, words, loops and stems to download, and the rights line) and `/videos/<slug>/` (a
|
|
787
|
+
player that plays the 9:16 cut on an upright phone, with poster, captions and credits), listed on Home, at
|
|
788
|
+
`/music/` and `/videos/`, and for the directory. `media/MEDIA.md` is the manifest contract.
|
|
789
|
+
- `homie-studio media list` (what the site will show, and why anything is left out) and `media put` (a file in R2).
|
|
790
|
+
- Songs and videos are served with byte ranges, so phones can seek. A studio with songs or videos and no games can
|
|
791
|
+
build, dev and deploy.
|
|
792
|
+
- Plugin: the `music` skill (songs, themes and game scores with ElevenLabs Music on your own account, within a credit
|
|
793
|
+
cap you set, with receipts) and the `video` skill (gameplay trailers captured from your game, and music videos from
|
|
794
|
+
fal under a budget).
|
|
795
|
+
|
|
796
|
+
### Changed
|
|
797
|
+
|
|
798
|
+
- The site serves a song's or video's files itself, up to 25 MiB a file; storage (R2) is only for bigger media.
|
|
799
|
+
- The first version released by this repository's publish workflow, with npm provenance.
|
|
800
|
+
|
|
801
|
+
### Upgrade notes
|
|
802
|
+
|
|
803
|
+
- `music`, `videos` and `posts` are reserved: they are page addresses, not game ids.
|
|
804
|
+
|
|
805
|
+
## [0.4.0] - 2026-09-30
|
|
806
|
+
|
|
807
|
+
**Plugin 0.4.0** · never on npm: served only as a tarball on homie.rocks, before this repository's releases.
|
|
808
|
+
Everything in it is also in 0.5.0.
|
|
809
|
+
|
|
810
|
+
A studio with no credit card: deploy creates only what Cloudflare's free Workers plan gives a new account.
|
|
811
|
+
|
|
812
|
+
### Added
|
|
813
|
+
|
|
814
|
+
- `deploy --plan` says what deploy creates and what it costs, and calls nothing. The first deploy says it again
|
|
815
|
+
before it creates anything, and a new account's first deploy names its next step (verify the email, pick a
|
|
816
|
+
workers.dev address).
|
|
817
|
+
- `homie-studio storage add`: R2 as its own later step, which stops with Cloudflare's dashboard link until the
|
|
818
|
+
account has R2 turned on (Cloudflare asks for a payment method first).
|
|
819
|
+
- `homie-studio dev --stop` stops exactly this studio's dev server, and nothing else on the computer.
|
|
820
|
+
|
|
821
|
+
### Changed
|
|
822
|
+
|
|
823
|
+
- `deploy` creates one Worker, one D1 database and the SQLite-backed Table and Lobby Durable Objects, and never
|
|
824
|
+
creates or binds R2.
|
|
825
|
+
- Plugin: the skills say what they will create and what it costs before they do it, stop only their own dev server,
|
|
826
|
+
and point at GitHub Issues.
|
|
827
|
+
|
|
828
|
+
## [0.3.0] - 2026-09-30
|
|
829
|
+
|
|
830
|
+
**Plugin 0.3.0** · before this repository's pull requests: [3b93106](https://github.com/homie-rocks/homie/commit/3b93106) · [npm](https://www.npmjs.com/package/@homie-rocks/studio/v/0.3.0)
|
|
831
|
+
|
|
832
|
+
The port kit: make an existing single-player web game multiplayer.
|
|
833
|
+
|
|
834
|
+
### Added
|
|
835
|
+
|
|
836
|
+
- `@homie-rocks/studio/port` (and `window.HomiePort` for static games): `createRoom` with bots, join in progress,
|
|
837
|
+
rounds, host migration and snapshots; a touch kit (a floating stick, buttons, key synthesis, swipes); camera rules;
|
|
838
|
+
a HUD; and shims that make storage, cookies and gamepads work inside the game's sandboxed frame.
|
|
839
|
+
- `homie-studio port plan|import|check`: grade a game (easy, medium, hard, not a fit), import it, and prove the port
|
|
840
|
+
with real keys and touches on Android Chrome and iPhone WebKit, two browsers finishing a round, a killed host, a
|
|
841
|
+
late joiner and the big screen.
|
|
842
|
+
- `build` takes static and command-built games beside bundled ones, and the site gains `/<game>/tv`, a big screen
|
|
843
|
+
with a QR code into its room.
|
|
844
|
+
- Plugin: the `port` skill.
|
|
845
|
+
|
|
846
|
+
### Changed
|
|
847
|
+
|
|
848
|
+
- The netplay helper is sturdier: input pacing, reconnecting after a flood, and a guard on the snapshot backlog.
|
|
849
|
+
|
|
850
|
+
## [0.2.0] - 2026-09-29
|
|
851
|
+
|
|
852
|
+
**Plugin 0.2.0** · this repository's first commit, [cfbd987](https://github.com/homie-rocks/homie/commit/cfbd987) · [npm](https://www.npmjs.com/package/@homie-rocks/studio/v/0.2.0)
|
|
853
|
+
|
|
854
|
+
`@homie-rocks/studio` on npm, open source under Apache-2.0, in this repository.
|
|
855
|
+
|
|
856
|
+
### Added
|
|
857
|
+
|
|
858
|
+
- The 22 `@homie-rocks` game engine packages (arcade, audio, brush, bus, camera, device, diagnostics, film, fx, geom,
|
|
859
|
+
heightfield, input, loop, noise, postfx, props, render, scatter, scores, ui, ui-world and walk) were first
|
|
860
|
+
published at 0.1.0 the same day, and none has needed a new version since.
|
|
861
|
+
|
|
862
|
+
### Changed
|
|
863
|
+
|
|
864
|
+
- The package is `@homie-rocks/studio`, under Apache-2.0 and on npm (0.1.0 had another name, in an npm scope Homie
|
|
865
|
+
does not own). The plugin is Apache-2.0 too.
|
|
866
|
+
- `new` installs the pinned dependencies itself, and every command runs the studio's own copy (`npm run …`,
|
|
867
|
+
`npx --no-install homie-studio`).
|
|
868
|
+
- The play page's chip sits bottom left and fades after 5 s (it covered a game's round clock).
|
|
869
|
+
|
|
870
|
+
### Fixed
|
|
871
|
+
|
|
872
|
+
- A deploy cut short resumes instead of refusing its own database as someone else's: each Cloudflare resource is
|
|
873
|
+
recorded the moment it exists.
|
|
874
|
+
- `check` counts only a round that finishes after both browsers are seated and in its results, and exits even when
|
|
875
|
+
Chrome's pipes outlive it.
|
|
876
|
+
|
|
877
|
+
### Upgrade notes
|
|
878
|
+
|
|
879
|
+
- A 0.1.0 studio pins the old package name: pin `@homie-rocks/studio` 0.2.0 instead.
|
|
880
|
+
|
|
881
|
+
## [0.1.0] - 2026-09-29
|
|
882
|
+
|
|
883
|
+
**Plugin 0.1.0** · before this repository, and never on npm: served only as a tarball on homie.rocks, under the old
|
|
884
|
+
package name, and withdrawn when 0.2.0 came out.
|
|
885
|
+
|
|
886
|
+
The first studio toolkit: a studio in one folder, a multiplayer starter, and deploys to your own Cloudflare.
|
|
887
|
+
|
|
888
|
+
### Added
|
|
889
|
+
|
|
890
|
+
- `homie-studio new`: a studio in a new or empty folder (AGENTS.md, games/, music/, videos/, posts/ and site/),
|
|
891
|
+
listing every file it writes.
|
|
892
|
+
- The Gem Rush starter on the netplay contract; `build` (esbuild); `dev` (the site and its rooms on your computer);
|
|
893
|
+
and `check` (two fresh Chromes must share a room and finish a round).
|
|
894
|
+
- The site Worker: the pages, the play page, the Table and Lobby Durable Objects that run rooms, and
|
|
895
|
+
`/.well-known/homie-studio.json`.
|
|
896
|
+
- `deploy` through Wrangler on your own Cloudflare account, refusing any Worker, database or bucket it did not
|
|
897
|
+
create, and `publish` to the homie.rocks directory.
|
|
898
|
+
- Plugin: the `studio-setup`, `game` and `publish` skills, and the remote Homie MCP.
|
|
899
|
+
|
|
900
|
+
[0.20.0]: https://github.com/homie-rocks/homie/pull/30
|
|
901
|
+
[0.19.2]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.19.2
|
|
902
|
+
[0.19.1]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.19.1
|
|
903
|
+
[0.19.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.19.0
|
|
904
|
+
[0.18.2]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.18.2
|
|
905
|
+
[0.18.1]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.18.1
|
|
906
|
+
[0.18.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.18.0
|
|
907
|
+
[0.17.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.17.0
|
|
908
|
+
[0.16.1]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.16.1
|
|
909
|
+
[0.16.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-02-studio-0.16.0
|
|
910
|
+
[0.15.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.15.0
|
|
911
|
+
[0.14.4]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.4
|
|
912
|
+
[0.14.3]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.3
|
|
913
|
+
[0.14.2]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.2
|
|
914
|
+
[0.14.1]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.1
|
|
915
|
+
[0.14.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.14.0
|
|
916
|
+
[0.13.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.13.0
|
|
917
|
+
[0.12.1]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.12.1
|
|
918
|
+
[0.12.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.12.0
|
|
919
|
+
[0.11.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.11.0
|
|
920
|
+
[0.10.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-10-01-studio-0.10.0
|
|
921
|
+
[0.9.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.9.0
|
|
922
|
+
[0.8.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.8.0
|
|
923
|
+
[0.7.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.7.0
|
|
924
|
+
[0.6.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.6.0
|
|
925
|
+
[0.5.0]: https://github.com/homie-rocks/homie/releases/tag/release-2026-09-30-studio-0.5.0
|
|
926
|
+
[0.3.0]: https://www.npmjs.com/package/@homie-rocks/studio/v/0.3.0
|
|
927
|
+
[0.2.0]: https://www.npmjs.com/package/@homie-rocks/studio/v/0.2.0
|