@helix3/helix-cli 0.1.13-helix3.133 → 0.1.13-helix3.134

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.
Files changed (2) hide show
  1. package/README.md +44 -6
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -129,7 +129,10 @@ worktrees resolve through.
129
129
  `helix install` records platform-owned systems in `public/helix.runtime.json`.
130
130
  Compatible ranges such as `^0.2` are externalized and resolved to an active,
131
131
  immutable catalog module when a world launches, so a compatible platform fix can
132
- reach an already-published world without creator edits or republishing. Exact
132
+ reach an already-published world without creator edits or republishing. A new
133
+ runtime version reaches no world until the platform deliberately publishes it to
134
+ the catalog and it goes active there — building or merging one changes nothing on
135
+ its own, and there is no rolling "latest". Exact
133
136
  versions such as `0.2.43` map directly to the immutable catalog URL and remain
134
137
  pinned. A custom Vite config is never rewritten: install reports
135
138
  `legacy-bundled` until the creator explicitly externalizes `@helix/*`.
@@ -156,11 +159,46 @@ previous compatible resolver response during a transient outage; the descriptor'
156
159
  Without a cached resolver response, a cold resolver failure fails closed.
157
160
 
158
161
  Native features remain individually overridable without pinning the whole
159
- character runtime. `CharacterMultiplayer.create` accepts `emotes: false` to
160
- disable carried emotes, `emoteWheel: false` to keep emotes but draw a custom
161
- picker, and `localControl: false` when the World owns its own camera/input.
162
- Camera behavior can also be configured through the character camera config.
163
- Every other compatible native fix continues to update normally.
162
+ character runtime. The character system's **native avatar features** — carried
163
+ emotes and the radial wheel (including its Customize door), x-ray, pointing,
164
+ sitting, the avatar camera, the two camera legs, and rendering each player's
165
+ universal avatar — are constructed by the character chassis itself, so every
166
+ character World has them whether it was built on `Character` or on
167
+ `CharacterMultiplayer`, and a World published today receives ones added later on
168
+ its next fresh launch.
169
+
170
+ A World refuses what it does not want by NAME, in the character config it passes
171
+ at create time — not in `helix.json`, and nothing here is a publish-time concern:
172
+
173
+ ```ts
174
+ config: { character: { native: { disabled: ['xray', 'pointing'] } } }
175
+ ```
176
+
177
+ Ids: `emotes`, `emote-wheel`, `xray`, `pointing`, `sitting`, `avatar-camera`,
178
+ `camera-first-person`, `camera-third-person`, `universal-avatar`. It is a
179
+ **blocklist, never an allow-list**, for the same reason this whole delivery
180
+ contract exists: an allow-list would freeze every already-published World out of
181
+ every feature added afterwards. A refusal also removes the feature's key,
182
+ controller button, touch pad and prompt; `universal-avatar` is the top switch and
183
+ takes emotes, the wheel, x-ray, pointing, sitting and the avatar camera with it
184
+ (the camera legs survive — a World still needs a camera); refusing BOTH camera
185
+ legs throws at create; and an unrecognised id is kept with a warning rather than
186
+ rejected, because it may belong to a newer runtime. The older switches still
187
+ work and route into the same resolver: `CharacterMultiplayer.create`'s
188
+ `emotes: false`, `emoteWheel: false` and `universalAvatars: false`, and the
189
+ config keys `character.emote.enabled`, `character.emote.wheel`,
190
+ `character.xray.enabled`, `character.universalAvatar.enabled`. (`localControl:
191
+ false` is not one of these — it declares a spectator body the World drives its
192
+ own camera and input for.) Every other compatible native fix continues to update
193
+ normally.
194
+
195
+ This surface needs `@helix/humanoid-character` **0.2.54** or newer; an older
196
+ runtime ignores `character.native.disabled` silently, so confirm against the
197
+ resolved system's config schema rather than assuming. The full creator reference
198
+ is the character world recipe in the HELIX MCP docs
199
+ (`read_doc({ name: "character-world" })`, section 8g); the authoritative id list
200
+ and defaults are that config schema, readable from the installed system
201
+ manifest.
164
202
 
165
203
  The runtime descriptor is mandatory for bundles that declare systems. It makes
166
204
  the delivery boundary inspectable by the CLI, MCP, backend, and fleet census;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helix3/helix-cli",
3
- "version": "0.1.13-helix3.133",
3
+ "version": "0.1.13-helix3.134",
4
4
  "description": "helix — the HELIX creator CLI: scaffold, validate, and publish Instant Worlds",
5
5
  "main": "dist/lib.js",
6
6
  "types": "dist/lib.d.ts",