@homie-rocks/studio 0.45.0 → 0.45.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.
package/CHANGELOG.md CHANGED
@@ -17,6 +17,49 @@ 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.45.2] - 2026-10-10
21
+
22
+ **Plugin 0.45.2** · [#76](https://github.com/homie-rocks/homie/pull/76)
23
+
24
+ Give a game or app solid bodies, characters that climb steps, and a complete physics save.
25
+
26
+ ### Added
27
+
28
+ - **Deterministic 3D physics.** `@homie-rocks/physics` 0.1.0 brings rigid bodies, joints, collision and trigger events, spatial queries, triangle meshes and heightfields to browsers, Node and Workers. A world can use Y-up or Z-up, and a complete save resumes the same commands exactly.
29
+ - **Characters that share the world with moving bodies.** Capsules walk up and down stairs, follow slopes and platforms, push eligible props, and report the floors they touch. Small residual moves stop before reaching the engine. Large floors use nearby geometry, and terrain queries retain the engine's spatial index.
30
+
31
+ ### Fixed
32
+
33
+ - Crowds walking into walls no longer report being crushed. A moving body must leave no room to resolve the character for more than one substep. Crowd correction uses a fixed pass limit.
34
+ - Body, character and joint edits no longer serialize the world. Pending solver edits are included when a save is requested and resume at the same substep.
35
+
36
+ ### Upgrade notes
37
+
38
+ - Next release after merged [#75](https://github.com/homie-rocks/homie/pull/75). This branch is based on main 0.45.1 alone; paid parts and navigation are inherited from main. Rebase and run `node scripts/renumber-release.mjs` if main advances again. Physics is optional; existing studios gain no dependency.
39
+ - Physics remains private and studio does not depend on it, so releases skip it safely. After merge, run `node scripts/first-publish-private.mjs physics`, then remove the private flag and update the lockfile and package contract test in a follow-up after trusted publishing is registered.
40
+
41
+ - Initialize the owned WebAssembly engine before creating a world; the package README includes browser and Worker setup, impulses and walking on a heightfield. Physics does not automatically replace `@homie-rocks/walk` or its gait and biped parts.
42
+ - The README reports CPU measurements with machine load: 100 terrain walkers plus 500 awake bodies used 20.08 ms median and 24.88 ms p95 per 50 ms tick on an M4; adding and removing a body added 3.1% median CPU time. Dense rigid-body piles can still exceed that budget.
43
+
44
+ ## [0.45.1] - 2026-10-09
45
+
46
+ **Plugin 0.45.1** · [#75](https://github.com/homie-rocks/homie/pull/75)
47
+
48
+ Crowds keep finding their way while a world changes.
49
+
50
+ ### Added
51
+
52
+ - **Navigation for walking agents in games and apps.** `@homie-rocks/nav` bakes tiled walking surfaces, finds routes across slopes and links, carves obstacles, streams tiles and moves crowds at a fixed tick. It supports either up axis, seeded queries and grid paths, with matching saved-state continuation in browsers and Workers.
53
+ - **Edits and chase targets preserve useful progress.** An unrelated edit leaves active searches alone. Replaced tiles and polygons invalidate only requests that touch them. Repeating a goal is a no-op; a nearby moving goal keeps the route already being found. Neighbour storage depends on agents rather than the distance between loaded tiles.
54
+ - **Portable room saves.** Save the mesh and crowd together and restore them with the original tile assets in any order. Malformed topology and span connections are refused with navigation errors. Crowds have an explicit `detach()` and meshes never retain discarded crowds.
55
+
56
+ ### Upgrade notes
57
+
58
+ - Based directly on main after [#85](https://github.com/homie-rocks/homie/pull/85) released studio 0.45.0. If main advances again, rebase and run `node scripts/renumber-release.mjs`.
59
+ - Navigation is optional for games and apps; existing studios gain no dependency. After its first npm publication, install `@homie-rocks/nav@0.1.0` in a studio that needs it. Its README has the imports, storage contract, larger test commands and CPU measurements for Node and workerd, including edits and full room wakes.
60
+
61
+ - **First npm publication needs a maintainer.** Navigation remains private and studio does not depend on it, so releases skip it safely. After merge, run `node scripts/first-publish-private.mjs nav`, then remove the private flag and update the lockfile and package contract test in a follow-up after trusted publishing is registered.
62
+
20
63
  ## [0.45.0] - 2026-10-10
21
64
 
22
65
  **Plugin 0.45.0** · [#85](https://github.com/homie-rocks/homie/pull/85)
@@ -2565,6 +2565,90 @@
2565
2565
  }
2566
2566
  }
2567
2567
  }
2568
+ },
2569
+ "0.45.1": {
2570
+ "files": {
2571
+ "CLAUDE.md": "ddf2b2a0376202f6",
2572
+ "README.md": "684b3cca8001673c",
2573
+ "HANDOFF.md": "29337e2ace95b2e7",
2574
+ "games/README.md": "5ad32fe80c61f117",
2575
+ "music/README.md": "a3dc042dadd39df8",
2576
+ "videos/README.md": "16babc3437d5545b",
2577
+ "posts/README.md": "37841aae476bd540",
2578
+ "site/README.md": "732894273a32dc3f",
2579
+ "site/src/worker.mjs": "6cc5c6131eaf6fd0"
2580
+ },
2581
+ "sections": {
2582
+ "AGENTS.md": {
2583
+ "(intro)": "214aa46eb3a895d5",
2584
+ "## Version-matched authoring guides": "f6261a0e5801b96b",
2585
+ "## Layout": "f3a280b8c96cd068",
2586
+ "## Apps: one screen, roles and parts": "8596f2b25edda3e2",
2587
+ "## Commands (all through the pinned CLI in node_modules)": "159151b8861fc051",
2588
+ "## The site": "0cb8dd9a6f8a0096",
2589
+ "## Making games": "bb715272fd1a615b",
2590
+ "## The Game Codex and progress": "0738ef719cef3a4c",
2591
+ "## Art direction and models": "a48fff7bf0a5f2fc",
2592
+ "## Running live games (the back office)": "51ebf2ab756f6e4d",
2593
+ "## Servers and AI seats": "1ccfd549d2369a60",
2594
+ "## Selling things (the shop)": "9e020d69dd6a954e",
2595
+ "## Continuing a build from the Claude app": "0d68081e924ca419",
2596
+ "## Rules": "c48971c1437414c2",
2597
+ "## Telling Homie": "80b46fdd9e578db8",
2598
+ "## Beta": "9d02638207a26e73"
2599
+ }
2600
+ },
2601
+ "named": {
2602
+ "Homie Arcade": {
2603
+ "sections": {
2604
+ "AGENTS.md": {
2605
+ "## Commands (all through the pinned CLI in node_modules)": "2cdd530e48170bfd"
2606
+ }
2607
+ }
2608
+ }
2609
+ }
2610
+ },
2611
+ "0.45.2": {
2612
+ "files": {
2613
+ "CLAUDE.md": "ddf2b2a0376202f6",
2614
+ "README.md": "684b3cca8001673c",
2615
+ "HANDOFF.md": "29337e2ace95b2e7",
2616
+ "games/README.md": "5ad32fe80c61f117",
2617
+ "music/README.md": "a3dc042dadd39df8",
2618
+ "videos/README.md": "16babc3437d5545b",
2619
+ "posts/README.md": "37841aae476bd540",
2620
+ "site/README.md": "732894273a32dc3f",
2621
+ "site/src/worker.mjs": "6cc5c6131eaf6fd0"
2622
+ },
2623
+ "sections": {
2624
+ "AGENTS.md": {
2625
+ "(intro)": "214aa46eb3a895d5",
2626
+ "## Version-matched authoring guides": "f6261a0e5801b96b",
2627
+ "## Layout": "f3a280b8c96cd068",
2628
+ "## Apps: one screen, roles and parts": "8596f2b25edda3e2",
2629
+ "## Commands (all through the pinned CLI in node_modules)": "159151b8861fc051",
2630
+ "## The site": "0cb8dd9a6f8a0096",
2631
+ "## Making games": "bb715272fd1a615b",
2632
+ "## The Game Codex and progress": "0738ef719cef3a4c",
2633
+ "## Art direction and models": "a48fff7bf0a5f2fc",
2634
+ "## Running live games (the back office)": "51ebf2ab756f6e4d",
2635
+ "## Servers and AI seats": "1ccfd549d2369a60",
2636
+ "## Selling things (the shop)": "9e020d69dd6a954e",
2637
+ "## Continuing a build from the Claude app": "0d68081e924ca419",
2638
+ "## Rules": "c48971c1437414c2",
2639
+ "## Telling Homie": "80b46fdd9e578db8",
2640
+ "## Beta": "9d02638207a26e73"
2641
+ }
2642
+ },
2643
+ "named": {
2644
+ "Homie Arcade": {
2645
+ "sections": {
2646
+ "AGENTS.md": {
2647
+ "## Commands (all through the pinned CLI in node_modules)": "2cdd530e48170bfd"
2648
+ }
2649
+ }
2650
+ }
2651
+ }
2568
2652
  }
2569
2653
  }
2570
2654
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homie-rocks/studio",
3
- "version": "0.45.0",
3
+ "version": "0.45.2",
4
4
  "description": "A studio for games, music and video on its own Cloudflare: scaffold, multiplayer starters on the netplay contract, a port toolkit that makes existing single-player web games multiplayer, the site Worker with public rooms (Table/Lobby Durable Objects and D1, all on the free Workers plan, no payment method), a site with the hub's sections (Home, Games, Music, Videos, Rooms, Posts with feeds) in the studio's own look, an epic landing page for every game, big songs and videos in the studio's own R2 once it has storage (uploaded, checked by SHA-256, served at the same addresses), deploy, and the homie.rocks directory.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -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.45.0';
2
+ export const STUDIO_VERSION_TAG = '0.45.2';