@instruktlabs/kiln 1.2.1 → 1.2.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kiln",
3
3
  "description": "Build and revise 3D assets with your coding agent. Write JavaScript, inspect selected views, edit saved source revisions, and export GLB files locally.",
4
- "version": "1.2.1",
4
+ "version": "1.2.2",
5
5
  "author": {
6
6
  "name": "Matthew Kissinger"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiln",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Create, review, save, and refine procedural 3D assets with portable source and GLB collections.",
5
5
  "author": {
6
6
  "name": "Matthew Kissinger"
package/CHANGELOG.md CHANGED
@@ -5,7 +5,18 @@ Source releases and installable package publication are separate milestones.
5
5
  Published versions and tags are recorded by the npm registry; changing this file
6
6
  does not publish a package.
7
7
 
8
- ## 1.2.1 (unpublished)
8
+ ## 1.2.2
9
+
10
+ - Clarify radial and tangential orientation for circular walls and roof sections,
11
+ including edge checks for accidental quarter-turn rotations.
12
+ - Require checking export receipts and delivering files from the final reviewed
13
+ revision in the authoring skill and CLI guidance.
14
+ - Include these instructions in the package and local plugin. Geometry/runtime
15
+ behavior and the seventeen-tool local MCP interface are unchanged.
16
+ - Align the public hosted integration draft with the deployed 21-tool contract,
17
+ and update README/site guidance for the invite-only service and Discord access.
18
+
19
+ ## 1.2.1
9
20
 
10
21
  - Load embedded viewer textures through the browser image path, retaining
11
22
  pixels, sampler settings and UV transforms under restrictive MCP Apps CSP.
package/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  [![CI](https://github.com/instruktlabs/kiln/actions/workflows/ci.yml/badge.svg)](https://github.com/instruktlabs/kiln/actions/workflows/ci.yml)
4
4
  [![npm](https://img.shields.io/npm/v/@instruktlabs/kiln)](https://www.npmjs.com/package/@instruktlabs/kiln)
5
5
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
+ [![Discord](https://img.shields.io/badge/Discord-Join%20the%20community-5865F2?logo=discord&logoColor=white)](https://discord.gg/fSWVbMdQXK)
6
7
 
7
8
  **Build and revise 3D assets with your coding agent.**
8
9
 
@@ -19,6 +20,16 @@ do not require a separate model API key.
19
20
  [Interactive scenes](https://kilnstudio.tools/scenes/) ·
20
21
  [Changelog](CHANGELOG.md)
21
22
 
23
+ ## Community and hosted access
24
+
25
+ [Join the Kiln Discord](https://discord.gg/fSWVbMdQXK) to share assets, get help,
26
+ and request hosted access. [Hosted Kiln](https://kiln.instruktlabs.com/) is open
27
+ as a free, invite-only introductory service, with ten accounts sharing an
28
+ allowance of 200 native requests per month. Ask in `#request-access` or message
29
+ `matt_941`; individual Kiln codes are sent privately as capacity allows.
30
+ Joining Discord does not automatically grant hosted access. Local Kiln remains
31
+ free, open source and account-free.
32
+
22
33
  | Troy: the city and fleet | Achilles and Hector at the gates |
23
34
  | --- | --- |
24
35
  | [![Troy's walled city, army formations and fleet along the coast](assets/readme/troy-coast.webp)](https://kilnstudio.tools/scenes/troy/) | [![Achilles and Hector outside Troy's gate, with army formations behind them](assets/readme/troy-city.webp)](https://kilnstudio.tools/scenes/troy/) |
@@ -32939,7 +32939,7 @@ function createKilnSourceDef(store) {
32939
32939
  }
32940
32940
 
32941
32941
  // src/engine-identity.ts
32942
- var ENGINE_VERSION = "1.2.1";
32942
+ var ENGINE_VERSION = "1.2.2";
32943
32943
  var ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
32944
32944
  function engineIdentity() {
32945
32945
  return { version: ENGINE_VERSION, installUrl: ENGINE_INSTALL_URL };
package/dist/build.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "schemaVersion": 1,
3
3
  "entries": {
4
4
  "worker": {
5
- "identity": "sha256:8e66149e74496eabefc532a0a1f8428f54170e4cfb339fea33cbf7136d0cac03",
6
- "engineVersion": "1.2.1",
5
+ "identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
6
+ "engineVersion": "1.2.2",
7
7
  "toolchain": "bun@1.4.2",
8
- "sourceHash": "989fe1a693eb374934c40e475fd4362846f6e9b251cba6f49e273347cfdd802f",
8
+ "sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
9
9
  "rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
10
10
  "dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
11
11
  "dependencies": {
@@ -39,10 +39,10 @@
39
39
  "bundleHash": "sha256:37098a17b5304a5f5746131c9652498d937a5181c0fb0975861dec999721d5be"
40
40
  },
41
41
  "agent-run": {
42
- "identity": "sha256:8e66149e74496eabefc532a0a1f8428f54170e4cfb339fea33cbf7136d0cac03",
43
- "engineVersion": "1.2.1",
42
+ "identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
43
+ "engineVersion": "1.2.2",
44
44
  "toolchain": "bun@1.4.2",
45
- "sourceHash": "989fe1a693eb374934c40e475fd4362846f6e9b251cba6f49e273347cfdd802f",
45
+ "sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
46
46
  "rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
47
47
  "dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
48
48
  "dependencies": {
@@ -73,13 +73,13 @@
73
73
  },
74
74
  "target": "node",
75
75
  "file": "agent-run.mjs",
76
- "bundleHash": "sha256:1b94eaa8afad97fdb32f8b30b7a56adfe10203f11fe2073807a4b483b9e6894c"
76
+ "bundleHash": "sha256:67ec2be78eb1b6e44f05d04fafff20a7f91217afc6897e47dca37e238c51a09a"
77
77
  },
78
78
  "agent-providers": {
79
- "identity": "sha256:8e66149e74496eabefc532a0a1f8428f54170e4cfb339fea33cbf7136d0cac03",
80
- "engineVersion": "1.2.1",
79
+ "identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
80
+ "engineVersion": "1.2.2",
81
81
  "toolchain": "bun@1.4.2",
82
- "sourceHash": "989fe1a693eb374934c40e475fd4362846f6e9b251cba6f49e273347cfdd802f",
82
+ "sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
83
83
  "rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
84
84
  "dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
85
85
  "dependencies": {
@@ -113,10 +113,10 @@
113
113
  "bundleHash": "sha256:9d6faf03d307321bc2e3bd5ce5bdee0bbbf61e0ebed8bfebfa1fb072287b83fa"
114
114
  },
115
115
  "mcp": {
116
- "identity": "sha256:8e66149e74496eabefc532a0a1f8428f54170e4cfb339fea33cbf7136d0cac03",
117
- "engineVersion": "1.2.1",
116
+ "identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
117
+ "engineVersion": "1.2.2",
118
118
  "toolchain": "bun@1.4.2",
119
- "sourceHash": "989fe1a693eb374934c40e475fd4362846f6e9b251cba6f49e273347cfdd802f",
119
+ "sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
120
120
  "rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
121
121
  "dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
122
122
  "dependencies": {
@@ -147,13 +147,13 @@
147
147
  },
148
148
  "target": "node",
149
149
  "file": "mcp-server.mjs",
150
- "bundleHash": "sha256:2a726598b66fce577a1f452134d15d47d7578165bc63e401371b2eef5c59333a"
150
+ "bundleHash": "sha256:851321a8fc20c5ba2c38362922e6a4b5cd3353d7fa019edbba45eabccf2f686a"
151
151
  },
152
152
  "cli": {
153
- "identity": "sha256:8e66149e74496eabefc532a0a1f8428f54170e4cfb339fea33cbf7136d0cac03",
154
- "engineVersion": "1.2.1",
153
+ "identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
154
+ "engineVersion": "1.2.2",
155
155
  "toolchain": "bun@1.4.2",
156
- "sourceHash": "989fe1a693eb374934c40e475fd4362846f6e9b251cba6f49e273347cfdd802f",
156
+ "sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
157
157
  "rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
158
158
  "dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
159
159
  "dependencies": {
@@ -184,13 +184,13 @@
184
184
  },
185
185
  "target": "node",
186
186
  "file": "cli.mjs",
187
- "bundleHash": "sha256:344e8790df8644bc5bfd05e76672dccd1a21b9cad01b7e5ed0c83a15500e3141"
187
+ "bundleHash": "sha256:e5abeb14a6966e669d53880faa33eec70f0f41f06cf04069bf6862368d277e12"
188
188
  },
189
189
  "engine": {
190
- "identity": "sha256:8e66149e74496eabefc532a0a1f8428f54170e4cfb339fea33cbf7136d0cac03",
191
- "engineVersion": "1.2.1",
190
+ "identity": "sha256:c1277fe4191fb8090b98fa49b0b3331bd7a87890f807371ea4b342a78d6d7d67",
191
+ "engineVersion": "1.2.2",
192
192
  "toolchain": "bun@1.4.2",
193
- "sourceHash": "989fe1a693eb374934c40e475fd4362846f6e9b251cba6f49e273347cfdd802f",
193
+ "sourceHash": "742896851cce18a72ad7ffe22f48c4ffa72001fedb473193cf35ebab433267a7",
194
194
  "rendererSourceHash": "27927c48b377f7694251a76c0cecd05216fcbbb8a7d03e8bf2bd681dabb5573a",
195
195
  "dependencyHash": "bb179f2715f8fd9059898ef3a2028947e8f5f7e7979ad7eafe59d7a464c18f9f",
196
196
  "dependencies": {
@@ -221,7 +221,7 @@
221
221
  },
222
222
  "target": "node",
223
223
  "file": "mcp-engine.mjs",
224
- "bundleHash": "sha256:9f4c524c769aaf75c3dbb871352549ade6ad1bef1b3184b4dacbd510ce79daa3"
224
+ "bundleHash": "sha256:bdfb5afd7cbf3724b053fba2833b15b39c2388776dae4296549ede05625222c9"
225
225
  }
226
226
  }
227
227
  }
package/dist/cli.mjs CHANGED
@@ -36171,7 +36171,7 @@ var init_program_artifacts = __esm(() => {
36171
36171
  function engineIdentity() {
36172
36172
  return { version: ENGINE_VERSION, installUrl: ENGINE_INSTALL_URL };
36173
36173
  }
36174
- var ENGINE_VERSION = "1.2.1", ENGINE_INSTALL_URL;
36174
+ var ENGINE_VERSION = "1.2.2", ENGINE_INSTALL_URL;
36175
36175
  var init_engine_identity = __esm(() => {
36176
36176
  ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
36177
36177
  });
@@ -36106,7 +36106,7 @@ import { readFile as readFile8 } from "node:fs/promises";
36106
36106
  var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-v6.html";
36107
36107
 
36108
36108
  // src/engine-identity.ts
36109
- var ENGINE_VERSION = "1.2.1";
36109
+ var ENGINE_VERSION = "1.2.2";
36110
36110
  var ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
36111
36111
  function engineIdentity() {
36112
36112
  return { version: ENGINE_VERSION, installUrl: ENGINE_INSTALL_URL };
@@ -2085,7 +2085,7 @@ import { readFile } from "node:fs/promises";
2085
2085
  var KILN_ASSET_WIDGET_URI = "ui://kiln/asset-v6.html";
2086
2086
 
2087
2087
  // src/engine-identity.ts
2088
- var ENGINE_VERSION = "1.2.1";
2088
+ var ENGINE_VERSION = "1.2.2";
2089
2089
  var ENGINE_INSTALL_URL = new URL("../", import.meta.url).href;
2090
2090
 
2091
2091
  // src/requirements-json.ts
package/docs/install.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Install Kiln for your coding agent
2
2
 
3
- This guide describes **Kiln 1.1** under the package name `@instruktlabs/kiln`.
3
+ This guide covers the stable `@instruktlabs/kiln` package. Feature-specific
4
+ minimum versions are noted where they matter.
4
5
  Use a version available in the [npm registry](https://www.npmjs.com/package/@instruktlabs/kiln),
5
6
  or build a [local package](#install-a-local-package) to test an unpublished checkout.
6
7
  [CHANGELOG.md](../CHANGELOG.md) lists changes; read the
@@ -154,7 +155,7 @@ For agent-assisted installation, give your agent the repository URL and ask:
154
155
 
155
156
  ## Release compatibility
156
157
 
157
- The current candidate's connected MCP server lists the fourteen tools in the
158
+ The packaged local MCP server lists the fourteen base tools in the
158
159
  [generated tool reference](tools.md), plus `kiln_project`, `kiln_material` and
159
160
  `kiln_review` from the packaged local host: seventeen in all. When installing an
160
161
  older release, use the documentation and receipt attached to that release; newer
@@ -163,7 +164,7 @@ tools and migration changes are not retroactively available there.
163
164
  Package publication requires per-platform receipts (Linux, Windows, macOS arm64,
164
165
  macOS x64) and `SHA256SUMS.txt` for the exact tarball. Check the artifacts actually
165
166
  attached to the selected release; do not treat an older receipt or a source archive
166
- as qualification of the current candidate.
167
+ as qualification of a different package version.
167
168
 
168
169
  A successful local build or an unreleased fix does not update the GitHub release: a
169
170
  checkout can be ahead of it. Registry and GitHub release receipts each identify the
@@ -483,7 +484,7 @@ The v1 local plugin below uses a smaller bundle and creates an explicit workspac
483
484
 
484
485
  ## Local Claude Code and Codex plugins
485
486
 
486
- The commands below select the 1.1.0 plugin, which supports new workspaces and
487
+ The commands below select the 1.2.1 plugin, which supports new workspaces and
487
488
  existing-project adoption. Use them once the matching GitHub tag and npm version
488
489
  are available. To qualify an unpublished candidate, select its exact source ref
489
490
  and supply the matching local engine archive as described in its bundled setup
@@ -498,14 +499,14 @@ does not start a second global Kiln MCP server.
498
499
  For Claude Code:
499
500
 
500
501
  ```sh
501
- claude plugin marketplace add instruktlabs/kiln#v1.1.0 --sparse .claude-plugin plugins/kiln-engine
502
+ claude plugin marketplace add instruktlabs/kiln#v1.2.1 --sparse .claude-plugin plugins/kiln-engine
502
503
  claude plugin install kiln-engine@instruktlabs
503
504
  ```
504
505
 
505
506
  For Codex:
506
507
 
507
508
  ```sh
508
- codex plugin marketplace add instruktlabs/kiln --ref v1.1.0 --sparse .agents/plugins --sparse plugins/kiln-engine
509
+ codex plugin marketplace add instruktlabs/kiln --ref v1.2.1 --sparse .agents/plugins --sparse plugins/kiln-engine
509
510
  codex plugin add kiln-engine@instruktlabs
510
511
  ```
511
512
 
package/docs/migration.md CHANGED
@@ -4,6 +4,22 @@ Existing inline-code transport and the legacy capture format remain supported. T
4
4
  Discovery and authoring-helper changes below require explicit migration; retired
5
5
  names have no callable compatibility aliases.
6
6
 
7
+ ## Changes in 1.2
8
+
9
+ Version 1.2.0 adds an opt-in named-operation presentation derived from the shared
10
+ tool registry. The default local MCP interface retains its seventeen tools;
11
+ ordinary local callers need no migration. Embedding hosts can adopt the
12
+ [named-operation presentation](sdk.md#named-operation-presentation), including
13
+ consolidated asset search and material operations. Host capabilities determine
14
+ which tools are available; do not maintain a separate schema copy.
15
+
16
+ Version 1.2.1 fixes embedded texture loading in the shared presentation viewer
17
+ under restrictive MCP Apps content security policies, reports failed texture
18
+ decoding, and advances the widget resource URI to refresh cached components.
19
+ Upgrade the installed package and rebuild embedding hosts to use those fixes.
20
+ No tool-count change or saved-asset migration is required. Package publication
21
+ does not establish that a particular hosted deployment has been upgraded.
22
+
7
23
  ## Changes in 1.1
8
24
 
9
25
  Version 1.1 adds existing-project setup
package/docs/runtime.md CHANGED
@@ -133,9 +133,9 @@ Advanced geometry callbacks also have operation-specific input limits. Those che
133
133
 
134
134
  ### Bake defaults
135
135
 
136
- The rigid-group `full` contract and `rigid-v1` rebuild policy below are included in
137
- 1.0 and its release candidate. They are not implemented by the downloadable 0.10.0
138
- package; see the [migration notes](migration.md#changes-in-10).
136
+ The rigid-group `full` contract and `rigid-v1` rebuild policy below are supported
137
+ in stable Kiln releases from 1.0 onward. When upgrading a 0.10.0 integration,
138
+ see the [migration notes](migration.md#changes-in-10).
139
139
 
140
140
  `KILN_BAKE_OPTIMIZE` and `KILN_BAKE_INSTANCE` choose the bake passes for a render that does not pass `optimize` or `instance`; a value the call passes always wins.
141
141
 
package/docs/sdk.md CHANGED
@@ -22,7 +22,7 @@ const result = await renderGLB(code);
22
22
  ```
23
23
 
24
24
  The complete authoring and host APIs remain available through documented subpaths.
25
- The original 55 export paths are retained; version 1.1 adds four
25
+ The original 55 export paths are retained; version 1.1 added four
26
26
  host entrypoints below. The root exposes rendering, validation,
27
27
  Discovery and engine identity; it does not re-export every name from every module.
28
28
  CommonJS is not part of this release's contract.
@@ -53,7 +53,7 @@ entrypoint list. Files inside `lib/`, including declaration dependencies under
53
53
 
54
54
  ## Stability in 1.x
55
55
 
56
- The table classifies all 59 public entrypoints in version 1.1. The root and every listed subpath
56
+ The table classifies all 59 public entrypoints. The root and every listed subpath
57
57
  except `implicit` are stable entrypoints for v1: their declared public signatures,
58
58
  record shapes and documented behavior receive normal semantic-versioning
59
59
  compatibility. Optional dependencies do not make the two agent APIs experimental.
@@ -26,7 +26,7 @@
26
26
  * `src/__tests__/package-contents.test.ts` fails if it disagrees with the manifest
27
27
  * or with any plugin manifest, which is what keeps the literal honest.
28
28
  */
29
- export declare const ENGINE_VERSION = "1.2.1";
29
+ export declare const ENGINE_VERSION = "1.2.2";
30
30
  /**
31
31
  * Where this engine was loaded from, as a `file://` URL of the package root.
32
32
  *
@@ -26,7 +26,7 @@
26
26
  * `src/__tests__/package-contents.test.ts` fails if it disagrees with the manifest
27
27
  * or with any plugin manifest, which is what keeps the literal honest.
28
28
  */
29
- export const ENGINE_VERSION = '1.2.1';
29
+ export const ENGINE_VERSION = '1.2.2';
30
30
  /**
31
31
  * Where this engine was loaded from, as a `file://` URL of the package root.
32
32
  *
package/lib/mcp-core.d.ts CHANGED
@@ -23,7 +23,7 @@ import { type ServeStdioOptions, type StdioServerHandle } from '@modelcontextpro
23
23
  import type { AssetLink } from "./assets-resources.js";
24
24
  /** Server identity reported in the handshake and stamped into every 2026-07-28 result. */
25
25
  export declare const MCP_SERVER_NAME = "kiln";
26
- export declare const MCP_SERVER_VERSION = "1.2.1";
26
+ export declare const MCP_SERVER_VERSION = "1.2.2";
27
27
  /**
28
28
  * The spec's optional `instructions` field, returned by `initialize` and
29
29
  * `server/discover`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruktlabs/kiln",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Create and refine procedural 3D assets with JavaScript, image feedback, and reusable source revisions.",
5
5
  "license": "MIT",
6
6
  "author": "Matthew Kissinger",
package/plugin.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "kiln",
3
3
  "displayName": "Kiln",
4
4
  "description": "Build and revise 3D assets with your coding agent. Write JavaScript, inspect selected views, edit saved source revisions, and export GLB files locally.",
5
- "version": "1.2.1",
5
+ "version": "1.2.2",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/instruktlabs/kiln",
8
8
  "keywords": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiln-engine",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Set up a local Kiln workspace to create, inspect and revise editable 3D assets with Claude Code or Codex.",
5
5
  "author": {
6
6
  "name": "Instrukt Labs",
@@ -1,7 +1,7 @@
1
1
  # Kiln local plugin
2
2
 
3
- Plugin version 1.2.1, maintained by Instrukt Labs under the MIT license.
4
- This plugin pins engine 1.2.1. Registry setup requires that exact version
3
+ Plugin version 1.2.2, maintained by Instrukt Labs under the MIT license.
4
+ This plugin pins engine 1.2.2. Registry setup requires that exact version
5
5
  to be published. Use a published release tag for normal installation or a reviewed
6
6
  local archive for development qualification. The installation ID remains
7
7
  `kiln-engine@instruktlabs`.
@@ -31,7 +31,7 @@ codex plugin add kiln-engine@instruktlabs
31
31
  Restart or reload your coding agent's plugins as its installation message directs.
32
32
  Then ask it to set up a Kiln workspace. The maintained setup skill runs this
33
33
  plugin's `bin/kiln-setup-workspace.mjs` with Node, installs
34
- `@instruktlabs/kiln@1.2.1` outside the project and configures your chosen
34
+ `@instruktlabs/kiln@1.2.2` outside the project and configures your chosen
35
35
  workspace. The same initializer supports existing projects and new workspaces.
36
36
 
37
37
  The plugin registers setup only. The workspace supplies authoring skills and one
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "kiln-local-plugin",
4
- "pluginVersion": "1.2.1",
5
- "engineVersion": "1.2.1",
4
+ "pluginVersion": "1.2.2",
5
+ "engineVersion": "1.2.2",
6
6
  "executables": [
7
7
  "bin/kiln-setup-workspace.mjs"
8
8
  ],
9
9
  "files": {
10
10
  ".claude-plugin/icon.png": "sha256:b4b651c402793b7e27cab780f04b14f80daec6d0cd5b7e4e90313930581a54e9",
11
- ".claude-plugin/plugin.json": "sha256:bef717ea5e0c96411c2db93d54e298dc3798512df9909ba74c950a6c1c03f6cb",
11
+ ".claude-plugin/plugin.json": "sha256:8f4586ed437f4a0478de900547cdf5ace59f0e125a0f0b8d7e717e44061509e9",
12
12
  "bin/kiln-setup-workspace.mjs": "sha256:3d9a30236919a6ca91acb6b26f808cec442e6edc3dd88fe010645b010d76e838",
13
13
  "LICENSE": "sha256:cdba278ebf1d6de618869936226bf03be4887179c128efc7aaa13d22034826a5",
14
- "plugin.json": "sha256:9ef79b862a25ae3efe86c03a37e09cd622912b97a0165a08fdf55cff8b71a010",
14
+ "plugin.json": "sha256:937211437e673cef141599c5ec5e99902596a9bedf6d772694f50a39f9d8e6dd",
15
15
  "PRIVACY.md": "sha256:5f58d981667e40441e21c2dec411f269a9a67a6141cec61976d27088fb12573b",
16
- "README.md": "sha256:029732d7bb9e04561105727f8e46118d3106f513b4575a8d74d57cbd1bb68e7a",
17
- "runtime.json": "sha256:b6d078f1223cb5ed3a522b0ef5a3cb778e051afc0115237cfd9cfe04c1f42025",
16
+ "README.md": "sha256:2224bb16ed6645a1861fce4fbcf6801e4b81a0cb918970ad95c21e75be511eb7",
17
+ "runtime.json": "sha256:cbb2367a7435583074f589e44162739db5f972d8e6656f6f1fb4b790ad6eddcc",
18
18
  "skills/kiln-setup-workspace/references/plugin-install.md": "sha256:c338fb792e7fad0364c3e1a13c94c506afa1395489ec1b6e83b36d04728935fb",
19
19
  "skills/kiln-setup-workspace/references/renderer-setup.md": "sha256:b743b1b2827fa814385990e1e5b849391cb427413e9c016d273aa19cebd46031",
20
20
  "skills/kiln-setup-workspace/SKILL.md": "sha256:65ed926b3503a33f4fe793e84e4a045ce36e3967f0e6b340e456a15dd010ce54"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "kiln-engine",
4
- "version": "1.2.1",
4
+ "version": "1.2.2",
5
5
  "description": "Set up a local Kiln workspace to create, inspect and revise editable 3D assets with Claude Code or Codex.",
6
6
  "author": {
7
7
  "name": "Instrukt Labs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruktlabs/kiln",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "harnesses": [
5
5
  "claude",
6
6
  "codex",
@@ -97,7 +97,7 @@ node kiln.mjs render RETURNED_REF --out asset-v1.glb --views asset-v1.png
97
97
 
98
98
  Replace `RETURNED_REF` with the final reference returned by Kiln. Keep `.kiln/programs`, including its mappings, while using saved references. Pass `--out` whenever you want a GLB: `render` with neither `--out` nor `--views` writes `out.glb` in the current directory.
99
99
 
100
- Add `--json` to CLI `render` for a receipt with the source reference, requirements, output paths, image fidelity and the compact review (`--detail full` only when every instance of a finding matters); read the image file separately. On failure, check `ok` and `files`: a GLB may have been written before a failed image.
100
+ Use `render --json` for the source reference, requirements, paths, fidelity and compact review (`--detail full` only for a closer look). Read images separately. Check `ok` and `files` on every export, even when redirected; a later command can hide failure. Deliver source, GLB and bundles from the same final reference or revision.
101
101
 
102
102
  To save a chosen camera view, write the `capture` object to `cameras.json` and run `node kiln.mjs render RETURNED_REF --capture cameras.json --views hero.png`, the same camera schema and pipeline as MCP; the CLI is the route that writes review PNGs to disk. With `"output": "separate"` it writes `hero.shot-01.png`, `hero.shot-02.png` and so on and lists each in `files`; add `--backdrop light` or `dark` when the grey hides the silhouette. Do not copy image base64 into shell commands.
103
103
 
@@ -31,3 +31,16 @@ shots share the grid. With `"output": "separate"` the CLI writes one file per sh
31
31
  beside the `--views` path (`hero.shot-01.png`, `hero.shot-02.png`, ...) and lists each
32
32
  in `files` with its shot name. MCP delivers the same shots as separate image blocks. `--backdrop neutral|dark|light` sets the backdrop of
33
33
  any `--views` sheet, with or without `--capture`, and wins over the recipe's own `backdrop`.
34
+
35
+ ## Verify exported files
36
+
37
+ Read each command's JSON receipt, including output redirected to a file. Check
38
+ `ok`, the returned reference and each entry in `files`; a GLB can exist even when
39
+ an image failed. A subsequent successful shell command does not establish that
40
+ an earlier export succeeded. Source export refuses to overwrite an existing file;
41
+ choose a new path instead of assuming that the old file was refreshed.
42
+
43
+ After an edit, export from the final reference or exact saved revision. Any source,
44
+ GLB and ZIP you hand over must describe that same revision. Regenerate a bundle
45
+ when its contents changed, or clearly identify it as an older revision rather than
46
+ listing it as the latest delivery.
@@ -69,6 +69,16 @@ four transformed corners against the intended frame plane and opening, then
69
69
  inspect an oblique view where an out-of-plane pane is visible. Matching centers
70
70
  or bounding boxes alone cannot establish this fit.
71
71
 
72
+ For blocks or panels around a cylinder, separate their radial positions from
73
+ their orientation. A `boxGeo(length, height, thickness)` has its long axis along
74
+ local X. At `[radius * Math.cos(theta), y, radius * Math.sin(theta)]`, Y rotation
75
+ `-thetaDeg` points that axis radially outward; `90 - thetaDeg` makes it tangent
76
+ to the ring (`theta` is radians, `thetaDeg` is degrees). Derive the orientation
77
+ again when the geometry's long axis or parent frame differs. Check one part at
78
+ each quarter turn before repeating it. For a continuous wall, inspect neighboring
79
+ edges on both its inside and outside, including staggered courses: correct centers
80
+ and tangency alone do not guarantee closure. Preserve intentional openings.
81
+
72
82
  For attached veins, ribs or seams, discover `recipe:surface-detail-v1`. Its strip
73
83
  shares the carrier mesh's sampled boundary vertices and rises along local normals.
74
84
  A shared equation followed by a separately interpolated curve does not establish
@@ -27,7 +27,7 @@
27
27
  * `src/__tests__/package-contents.test.ts` fails if it disagrees with the manifest
28
28
  * or with any plugin manifest, which is what keeps the literal honest.
29
29
  */
30
- export const ENGINE_VERSION = '1.2.1';
30
+ export const ENGINE_VERSION = '1.2.2';
31
31
 
32
32
  /**
33
33
  * Where this engine was loaded from, as a `file://` URL of the package root.