Skip to content

release: version packages (lockstep) - #271

Merged
sobechestnut-dev merged 2 commits into
devfrom
changeset-release/dev
Aug 14, 2026
Merged

release: version packages (lockstep)#271
sobechestnut-dev merged 2 commits into
devfrom
changeset-release/dev

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to dev, this PR will be updated.

Releases

@chestnutlabs/gcode-preview-core@0.5.0

Minor Changes

  • #283 804cafb Thanks @sobechestnut-dev! - Adapter surface: capabilities/warnings on ready + declarative view/cameraState (#275 M3+M6)

    M3 — the parse-complete / ready event now carries capabilities (the per-field confidence
    map) and warnings alongside { segments, layers, complete }, so consumers can gate their own UI on
    capability-honesty without reaching for the raw handle.

    M6 — the setView/getCameraState/setCameraState methods (#268) get first-class declarative
    props on all four adapters: a view prop (preset orientation) and a cameraState prop (restore),
    paired with a new camera-changed event (renderer → controller → adapters, emitted when a user
    camera interaction settles) so a cameraState binding round-trips. The 2D renderer keeps disclosing
    via renderer-unsupported rather than fabricating a pose. Behavioral-suite coverage added for the
    capabilities/warnings payload across all four adapters.

  • #270 bb2af7a Thanks @sobechestnut-dev! - Preset camera views + serializable camera state (#268)

    Adds three imperative camera methods, threaded from the renderer through PreviewRenderer and the
    controls handle into all four adapters:

    • setView(view) — snap to a preset orientation (top/bottom/front/back/left/right/iso),
      instant, preserving the active projection.
    • getCameraState() — read the current camera as a serializable CameraState
      ({ position, target, zoom, cameraMode }, scene coordinates); a stable contract a dashboard can
      persist.
    • setCameraState(state) — restore a snapshot verbatim (no re-fit to the current model).

    New public types CameraView and CameraState. No new dependency, no IR/schema change, no animation
    (snapping is instant). The low-resource 2D renderer has no 3D pose, so it honors these as documented
    disclosures (getCameraState()null; setView/setCameraStaterenderer-unsupported) rather
    than fabricating a pose. Covered across all four adapters by the portable behavioral suite.

Patch Changes

  • Updated dependencies [804cafb, b671d02, 54b54fe, bb2af7a]:
    • @chestnutlabs/gcode-renderer-three@0.5.0
    • @chestnutlabs/gcode-parser@0.5.0
    • @chestnutlabs/gcode-renderer-2d@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-preview-element@0.5.0

Minor Changes

  • #283 804cafb Thanks @sobechestnut-dev! - Adapter surface: capabilities/warnings on ready + declarative view/cameraState (#275 M3+M6)

    M3 — the parse-complete / ready event now carries capabilities (the per-field confidence
    map) and warnings alongside { segments, layers, complete }, so consumers can gate their own UI on
    capability-honesty without reaching for the raw handle.

    M6 — the setView/getCameraState/setCameraState methods (#268) get first-class declarative
    props on all four adapters: a view prop (preset orientation) and a cameraState prop (restore),
    paired with a new camera-changed event (renderer → controller → adapters, emitted when a user
    camera interaction settles) so a cameraState binding round-trips. The 2D renderer keeps disclosing
    via renderer-unsupported rather than fabricating a pose. Behavioral-suite coverage added for the
    capabilities/warnings payload across all four adapters.

  • #270 bb2af7a Thanks @sobechestnut-dev! - Preset camera views + serializable camera state (#268)

    Adds three imperative camera methods, threaded from the renderer through PreviewRenderer and the
    controls handle into all four adapters:

    • setView(view) — snap to a preset orientation (top/bottom/front/back/left/right/iso),
      instant, preserving the active projection.
    • getCameraState() — read the current camera as a serializable CameraState
      ({ position, target, zoom, cameraMode }, scene coordinates); a stable contract a dashboard can
      persist.
    • setCameraState(state) — restore a snapshot verbatim (no re-fit to the current model).

    New public types CameraView and CameraState. No new dependency, no IR/schema change, no animation
    (snapping is instant). The low-resource 2D renderer has no 3D pose, so it honors these as documented
    disclosures (getCameraState()null; setView/setCameraStaterenderer-unsupported) rather
    than fabricating a pose. Covered across all four adapters by the portable behavioral suite.

Patch Changes

  • #282 54b54fe Thanks @sobechestnut-dev! - Keyboard-operable camera for embedded viewers (DD-004 a11y) (#275/M4)

    The embedded adapter canvases had aria-label but no tabindex, so they weren't focusable, and the
    renderer never enabled OrbitControls key events — only the standalone demo page was keyboard-usable.
    Now every adapter canvas is focusable (tabindex="0") and the renderer enables OrbitControls keyboard
    events scoped to the canvas (arrow keys pan the view when it's focused, without hijacking the page's
    arrow keys). Keyboard operability is satisfied for embedders, not just the demo.

  • Updated dependencies [804cafb, b671d02, 54b54fe, bb2af7a]:

    • @chestnutlabs/gcode-renderer-three@0.5.0
    • @chestnutlabs/gcode-preview-core@0.5.0
    • @chestnutlabs/gcode-parser@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-preview-react@0.5.0

Minor Changes

  • #283 804cafb Thanks @sobechestnut-dev! - Adapter surface: capabilities/warnings on ready + declarative view/cameraState (#275 M3+M6)

    M3 — the parse-complete / ready event now carries capabilities (the per-field confidence
    map) and warnings alongside { segments, layers, complete }, so consumers can gate their own UI on
    capability-honesty without reaching for the raw handle.

    M6 — the setView/getCameraState/setCameraState methods (#268) get first-class declarative
    props on all four adapters: a view prop (preset orientation) and a cameraState prop (restore),
    paired with a new camera-changed event (renderer → controller → adapters, emitted when a user
    camera interaction settles) so a cameraState binding round-trips. The 2D renderer keeps disclosing
    via renderer-unsupported rather than fabricating a pose. Behavioral-suite coverage added for the
    capabilities/warnings payload across all four adapters.

  • #270 bb2af7a Thanks @sobechestnut-dev! - Preset camera views + serializable camera state (#268)

    Adds three imperative camera methods, threaded from the renderer through PreviewRenderer and the
    controls handle into all four adapters:

    • setView(view) — snap to a preset orientation (top/bottom/front/back/left/right/iso),
      instant, preserving the active projection.
    • getCameraState() — read the current camera as a serializable CameraState
      ({ position, target, zoom, cameraMode }, scene coordinates); a stable contract a dashboard can
      persist.
    • setCameraState(state) — restore a snapshot verbatim (no re-fit to the current model).

    New public types CameraView and CameraState. No new dependency, no IR/schema change, no animation
    (snapping is instant). The low-resource 2D renderer has no 3D pose, so it honors these as documented
    disclosures (getCameraState()null; setView/setCameraStaterenderer-unsupported) rather
    than fabricating a pose. Covered across all four adapters by the portable behavioral suite.

Patch Changes

  • #282 54b54fe Thanks @sobechestnut-dev! - Keyboard-operable camera for embedded viewers (DD-004 a11y) (#275/M4)

    The embedded adapter canvases had aria-label but no tabindex, so they weren't focusable, and the
    renderer never enabled OrbitControls key events — only the standalone demo page was keyboard-usable.
    Now every adapter canvas is focusable (tabindex="0") and the renderer enables OrbitControls keyboard
    events scoped to the canvas (arrow keys pan the view when it's focused, without hijacking the page's
    arrow keys). Keyboard operability is satisfied for embedders, not just the demo.

  • Updated dependencies [804cafb, b671d02, 54b54fe, bb2af7a]:

    • @chestnutlabs/gcode-renderer-three@0.5.0
    • @chestnutlabs/gcode-preview-core@0.5.0
    • @chestnutlabs/gcode-parser@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-preview-svelte@0.5.0

Minor Changes

  • #283 804cafb Thanks @sobechestnut-dev! - Adapter surface: capabilities/warnings on ready + declarative view/cameraState (#275 M3+M6)

    M3 — the parse-complete / ready event now carries capabilities (the per-field confidence
    map) and warnings alongside { segments, layers, complete }, so consumers can gate their own UI on
    capability-honesty without reaching for the raw handle.

    M6 — the setView/getCameraState/setCameraState methods (#268) get first-class declarative
    props on all four adapters: a view prop (preset orientation) and a cameraState prop (restore),
    paired with a new camera-changed event (renderer → controller → adapters, emitted when a user
    camera interaction settles) so a cameraState binding round-trips. The 2D renderer keeps disclosing
    via renderer-unsupported rather than fabricating a pose. Behavioral-suite coverage added for the
    capabilities/warnings payload across all four adapters.

  • #270 bb2af7a Thanks @sobechestnut-dev! - Preset camera views + serializable camera state (#268)

    Adds three imperative camera methods, threaded from the renderer through PreviewRenderer and the
    controls handle into all four adapters:

    • setView(view) — snap to a preset orientation (top/bottom/front/back/left/right/iso),
      instant, preserving the active projection.
    • getCameraState() — read the current camera as a serializable CameraState
      ({ position, target, zoom, cameraMode }, scene coordinates); a stable contract a dashboard can
      persist.
    • setCameraState(state) — restore a snapshot verbatim (no re-fit to the current model).

    New public types CameraView and CameraState. No new dependency, no IR/schema change, no animation
    (snapping is instant). The low-resource 2D renderer has no 3D pose, so it honors these as documented
    disclosures (getCameraState()null; setView/setCameraStaterenderer-unsupported) rather
    than fabricating a pose. Covered across all four adapters by the portable behavioral suite.

Patch Changes

  • #282 54b54fe Thanks @sobechestnut-dev! - Keyboard-operable camera for embedded viewers (DD-004 a11y) (#275/M4)

    The embedded adapter canvases had aria-label but no tabindex, so they weren't focusable, and the
    renderer never enabled OrbitControls key events — only the standalone demo page was keyboard-usable.
    Now every adapter canvas is focusable (tabindex="0") and the renderer enables OrbitControls keyboard
    events scoped to the canvas (arrow keys pan the view when it's focused, without hijacking the page's
    arrow keys). Keyboard operability is satisfied for embedders, not just the demo.

  • #281 775598f Thanks @sobechestnut-dev! - Fix: Svelte buildVolume is reactive after mount (parity with Vue/React) (#274)

    The Svelte shell applied buildVolume once at init with no reactive statement, so changing it after
    mount was a silent no-op — a cross-adapter parity break (Vue watches it; React re-applies via
    useEffect). It was the only writable prop missing a $: wiring. Now a post-mount buildVolume
    change re-applies through the handle, matching the other twelve props. A source-invariant test guards
    that every writable prop stays reactively wired (the shell has no component-mount harness).

  • Updated dependencies [804cafb, b671d02, 54b54fe, bb2af7a]:

    • @chestnutlabs/gcode-renderer-three@0.5.0
    • @chestnutlabs/gcode-preview-core@0.5.0
    • @chestnutlabs/gcode-parser@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-preview-vue@0.5.0

Minor Changes

  • #283 804cafb Thanks @sobechestnut-dev! - Adapter surface: capabilities/warnings on ready + declarative view/cameraState (#275 M3+M6)

    M3 — the parse-complete / ready event now carries capabilities (the per-field confidence
    map) and warnings alongside { segments, layers, complete }, so consumers can gate their own UI on
    capability-honesty without reaching for the raw handle.

    M6 — the setView/getCameraState/setCameraState methods (#268) get first-class declarative
    props on all four adapters: a view prop (preset orientation) and a cameraState prop (restore),
    paired with a new camera-changed event (renderer → controller → adapters, emitted when a user
    camera interaction settles) so a cameraState binding round-trips. The 2D renderer keeps disclosing
    via renderer-unsupported rather than fabricating a pose. Behavioral-suite coverage added for the
    capabilities/warnings payload across all four adapters.

  • #270 bb2af7a Thanks @sobechestnut-dev! - Preset camera views + serializable camera state (#268)

    Adds three imperative camera methods, threaded from the renderer through PreviewRenderer and the
    controls handle into all four adapters:

    • setView(view) — snap to a preset orientation (top/bottom/front/back/left/right/iso),
      instant, preserving the active projection.
    • getCameraState() — read the current camera as a serializable CameraState
      ({ position, target, zoom, cameraMode }, scene coordinates); a stable contract a dashboard can
      persist.
    • setCameraState(state) — restore a snapshot verbatim (no re-fit to the current model).

    New public types CameraView and CameraState. No new dependency, no IR/schema change, no animation
    (snapping is instant). The low-resource 2D renderer has no 3D pose, so it honors these as documented
    disclosures (getCameraState()null; setView/setCameraStaterenderer-unsupported) rather
    than fabricating a pose. Covered across all four adapters by the portable behavioral suite.

Patch Changes

  • #282 54b54fe Thanks @sobechestnut-dev! - Keyboard-operable camera for embedded viewers (DD-004 a11y) (#275/M4)

    The embedded adapter canvases had aria-label but no tabindex, so they weren't focusable, and the
    renderer never enabled OrbitControls key events — only the standalone demo page was keyboard-usable.
    Now every adapter canvas is focusable (tabindex="0") and the renderer enables OrbitControls keyboard
    events scoped to the canvas (arrow keys pan the view when it's focused, without hijacking the page's
    arrow keys). Keyboard operability is satisfied for embedders, not just the demo.

  • Updated dependencies [804cafb, b671d02, 54b54fe, bb2af7a]:

    • @chestnutlabs/gcode-renderer-three@0.5.0
    • @chestnutlabs/gcode-preview-core@0.5.0
    • @chestnutlabs/gcode-parser@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-renderer-three@0.5.0

Minor Changes

  • #283 804cafb Thanks @sobechestnut-dev! - Adapter surface: capabilities/warnings on ready + declarative view/cameraState (#275 M3+M6)

    M3 — the parse-complete / ready event now carries capabilities (the per-field confidence
    map) and warnings alongside { segments, layers, complete }, so consumers can gate their own UI on
    capability-honesty without reaching for the raw handle.

    M6 — the setView/getCameraState/setCameraState methods (#268) get first-class declarative
    props on all four adapters: a view prop (preset orientation) and a cameraState prop (restore),
    paired with a new camera-changed event (renderer → controller → adapters, emitted when a user
    camera interaction settles) so a cameraState binding round-trips. The 2D renderer keeps disclosing
    via renderer-unsupported rather than fabricating a pose. Behavioral-suite coverage added for the
    capabilities/warnings payload across all four adapters.

  • #270 bb2af7a Thanks @sobechestnut-dev! - Preset camera views + serializable camera state (#268)

    Adds three imperative camera methods, threaded from the renderer through PreviewRenderer and the
    controls handle into all four adapters:

    • setView(view) — snap to a preset orientation (top/bottom/front/back/left/right/iso),
      instant, preserving the active projection.
    • getCameraState() — read the current camera as a serializable CameraState
      ({ position, target, zoom, cameraMode }, scene coordinates); a stable contract a dashboard can
      persist.
    • setCameraState(state) — restore a snapshot verbatim (no re-fit to the current model).

    New public types CameraView and CameraState. No new dependency, no IR/schema change, no animation
    (snapping is instant). The low-resource 2D renderer has no 3D pose, so it honors these as documented
    disclosures (getCameraState()null; setView/setCameraStaterenderer-unsupported) rather
    than fabricating a pose. Covered across all four adapters by the portable behavioral suite.

Patch Changes

  • #269 b671d02 Thanks @sobechestnut-dev! - Camera UX polish: enable OrbitControls affordances already available (#267)

    Turns on zoomToCursor (wheel zoom moves toward the pointer, not the orbit target) and derives
    minDistance/maxDistance clamps from the framed model size so the view can't dolly through the
    model or lose it at the extremes. Clamps are recomputed in frame(), so they track each file's
    bounds. Internal to scene.ts — no dependency, no public-API/adapter change; the headless
    still-render path (no OrbitControls) is unaffected.

  • #282 54b54fe Thanks @sobechestnut-dev! - Keyboard-operable camera for embedded viewers (DD-004 a11y) (#275/M4)

    The embedded adapter canvases had aria-label but no tabindex, so they weren't focusable, and the
    renderer never enabled OrbitControls key events — only the standalone demo page was keyboard-usable.
    Now every adapter canvas is focusable (tabindex="0") and the renderer enables OrbitControls keyboard
    events scoped to the canvas (arrow keys pan the view when it's focused, without hijacking the page's
    arrow keys). Keyboard operability is satisfied for embedders, not just the demo.

  • Updated dependencies []:

    • @chestnutlabs/gcode-colors@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-bgcode@0.5.0

Patch Changes

  • Updated dependencies []:
    • @chestnutlabs/gcode-containers@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-colors@0.5.0

Patch Changes

  • Updated dependencies []:
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-containers@0.5.0

Patch Changes

  • Updated dependencies []:
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-dialects@0.5.0

Patch Changes

  • Updated dependencies []:
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-parser@0.5.0

Patch Changes

  • Updated dependencies []:
    • @chestnutlabs/gcode-bgcode@0.5.0
    • @chestnutlabs/gcode-containers@0.5.0
    • @chestnutlabs/gcode-dialects@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/gcode-renderer-2d@0.5.0

Patch Changes

  • Updated dependencies []:
    • @chestnutlabs/gcode-colors@0.5.0
    • @chestnutlabs/toolpath-core@0.5.0

@chestnutlabs/toolpath-core@0.5.0

@github-actions
github-actions Bot force-pushed the changeset-release/dev branch from 6ff86d4 to f84826c Compare August 14, 2026 15:28
Changesets' GITHUB_TOKEN push doesn't trigger workflows (release gotcha #1),
so the version PR's required build check never ran → BLOCKED. This empty
commit kicks CI so #271 can merge.
@sobechestnut-dev
sobechestnut-dev merged commit 89fa98a into dev Aug 14, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant