Repository navigation
Releases: bringfire/Rook
Releases · bringfire/Rook
Release list
Rook v1.5.13
What's Changed
- Fix RIR Grasshopper solver enable race by @bringfire in #250
- [codex] Defer gh_edit solves past callback return by @bringfire in #252
- [codex] Fix Rhino workbench launch environment by @bringfire in #253
- [codex] Classify Rhino vision presentation tool by @bringfire in #254
- [codex] Delegate rhino_launch to owned workbench launcher by @bringfire in #255
- release: bump versions to 1.5.13 by @bringfire in #256
Full Changelog: v1.5.12...v1.5.13
Rook v1.5.12
Highlights
- Installer process-conflict handling (#237 / #240): upgrading Rook with a live agent session now shows a clear, plain-English dialog instead of a charmap traceback.
- Bundled Python runtime hardening: BOM-tolerant manifest read + BOM-less write (release-tooling fix), and a fail-closed wheelhouse staleness guard.
Known issues (targeted for 1.5.13)
- #247 — Grasshopper definitions do not auto-solve under Rhino.Inside.Revit (the GH document loads with
Enabled=false, so the safe-solve policy defers recompute). Standalone Rhino is unaffected. Workaround: toggle the GH solver / force a recompute. - #246 —
gh_editmay return "GH callback request timed out" on the first solve of an LLM/Chirp cascade even though the edit fully succeeded (synchronous cross-boundary solve). The canvas is correct; re-snapshot to confirm.
What's Changed
- fix: artifact store corruption recovery + delete-while-streamed (#241) by @bringfire in #242
- fix: installer process conflict handling and chat manifests (#237, #240) by @bringfire in #244
- release: bump versions to 1.5.12 by @bringfire in #245
- build: fail-closed guard for stale bundled Python wheelhouse by @bringfire in #248
- fix: BOM-tolerant runtime-manifest read + BOM-less write (release blocker) by @bringfire in #249
Full Changelog: v1.5.11...v1.5.12
Rook v1.5.11
What's Changed
- [codex] RookBIM Phase 1 live evidence loop by @bringfire in #198
- Add RookBIM runtime category resolution by @bringfire in #199
- Add gh_update_script agent edit API by @bringfire in #200
- [codex] Native dispatcher command-active policy by @bringfire in #194
- [codex] add Rook ecosystem architecture roadmap by @bringfire in #201
- [codex] Phase 1 runtime capability discovery by @bringfire in #202
- [codex] Stabilize companion load during recent-file startup by @bringfire in #203
- [codex] Add Phase 2 Slice 1 route diagnostics by @bringfire in #204
- [codex] Add Phase 2A vision and viewport diagnostics by @bringfire in #205
- [codex] Add Phase 2B block mutation proxy diagnostics by @bringfire in #206
- Phase 2C RookBIM diagnostics by @bringfire in #207
- fix(gh): prevent Rhino crash when updating a GH script while the solver is locked by @bringfire in #208
- P1: read-only Rhino sessions + liveness (rhino_sessions, rhino_session_capabilities) by @bringfire in #209
- P2: structured bridge-failure diagnosis (call_rhino failures -> agent-consumable envelopes) by @bringfire in #210
- P3: explicit session-targeted mutation (canonical
sessionrouting selector) by @bringfire in #211 - P4: owned Workbench session launch (rhino_workbench_launch / list / close) by @bringfire in #212
- P5: persistent owned-session registry (durable ownership + adopt-on-restart) by @bringfire in #213
- docs(rooksplat): add Slice 1 mesh2splat design and plan by @bringfire in #214
- test: stabilize non-live pytest collection (retire hand-built ignore lists) by @bringfire in #216
- docs: tool-result-surface contract (durable home for the P6 lesson) by @bringfire in #219
- Router P6 Slice 1: durable artifact perception by @bringfire in #217
- Tool surface cleanup (#218): blessed call_tool parser + formatter contract pin + p3–p6 harness migration by @bringfire in #220
- Rhino launch hardening (#222): split launch primitives + structured LaunchOutcome (Phase 1) by @bringfire in #223
- P7 Slice 1: merge-contract registry — record + validate fan-in intent by @bringfire in #224
- P7 Slice 2: declared-target state machine — declare + promote a master before it exists by @bringfire in #225
- P7 Slice 3: planned merge contracts — record future fan-in, activate into strict contracts by @bringfire in #226
- P7 linked-block substrate — observable linked identity + deterministic naming by @bringfire in #227
- P7 Slice 4: linked-block merge executor (rhino_merge_contract_execute) by @bringfire in #228
- P7 Slice 5: chained linked-block recomposition (proof/harness) by @bringfire in #229
- release: bump versions to 1.5.10 by @bringfire in #231
- fix: level-triggered WebView presentation reconciler (#233) by @bringfire in #234
- release: unify bundled-python installer with reconciler main by @bringfire in #235
- release: bump versions to 1.5.11 by @bringfire in #236
- fix: utf-8 encoding for installer config IO (release blocker) by @bringfire in #238
Full Changelog: v1.5.9...v1.5.11
Rook v1.5.9
Rook v1.5.9
Installer release built from main commit 918778e.
Validation summary:
- Local standalone Rhino smoke passed with native ping
pongand plugin version 1.5.9. - Independent clean-laptop Revit/Rhino.Inside + Grasshopper validation passed through MCP and direct native HTTP.
- Grasshopper was ready for edit with 0 errors and 0 warnings.
- Chat service health passed.
Known caveat:
- A long-lived Codex MCP session had stale/unhealthy discovery, while a fresh Codex MCP session passed. This was treated as a session health issue, not a Rook 1.5.9 install/runtime failure.
Installer SHA256:
AB4EEC0C579B78F5BFAFF64F5C23B497A334632B96C919A07E880E92CCFD960C
FFmpeg source bundle SHA256:
A0AE9CD7716343F979B194506D0724FAA7BAE026D591351CE6BF78ABE872F0CE
Rook 1.5.8
Rook 1.5.8 release.
Validated release commit: 584b151
Installer SHA256:
841583BBB61258DFE8A5128EA143C42878FF3F1EF7459DE7C601010428379AFC
Highlights:
- Fixes installed runtime path bootstrap when Rook is launched directly from the installed venv without ROOK_* environment variables.
- Keeps bundled command knowledge authoritative over stale mutable command metadata for release safety.
- Fixes Rhino.Inside Revit native discovery publication and strict MCP target discovery.
- Refreshes bundled LGPL FFmpeg payload and publishes corresponding source bundle artifacts.
Validation:
- Release artifact validation passed for installer, smoke manifest, and release manifest.
- Same-version repair/overwrite from an older 1.5.8 candidate passed installed-runtime proof.
- Standalone Rhino 8 smoke passed: native autoload, discovery JSON, native ping, companion load, chat health, and basic RookChat.
- Rhino.Inside Revit 2024 smoke passed: Revit-hosted discovery JSON, native ping, fresh MCP default/explicit-port ping, bad-port requested_port_not_discovered, companion startup evidence, and chat health.
Upgrade note:
After installing or updating Rook, restart Codex/Claude so existing MCP sessions pick up the refreshed installed runtime and discovery behavior.
Rook v1.5.6
What's Changed
- [codex] Add video poster sidecar producer by @bringfire in #145
- [codex] Add video frame sidecar producer by @bringfire in #146
- Add bounded video sidecar startup backfill by @bringfire in #147
- [codex] Bundle LGPL FFmpeg for video sidecars by @bringfire in #148
- [codex] Add durable media gallery import by @bringfire in #149
- [codex] tighten gh_edit partial failure contract by @bringfire in #150
- [codex] Guard GH legacy routes with readiness boundary by @bringfire in #151
- Panel-locked Rhino targeting for Rook MCP by @bringfire in #152
- [codex] harden hosted panel lifecycle by @bringfire in #153
Full Changelog: v1.5.5...v1.5.6
Rook v1.5.5
Rook v1.5.4
Rook v1.5.3
What's Changed
- [codex] Add Rhino runtime harness by @bringfire in #142
- Add Prompt Memory suite docs, OpenAPI, and integration plan by @bringfire in #143
- Add GEMMA_COMPETITION_STRATEGY.md: Rook × Gemma challenge plan by @bringfire in #144
Full Changelog: v1.5.2...v1.5.3
Rook v1.5.2
What's Changed
- feat(split): add rhino_split_disjoint_breps for Revit polysurface cleanup by @bringfire in #12
- feat(blocks): batch block-definition mutation tools (ABI v8 + v9) by @bringfire in #13
- feat(blocks): rhino_block_transform_instance_batch (ABI v10) by @bringfire in #14
- feat(layers): rhino_layer_set_properties_batch (native, best-effort) by @bringfire in #15
- chore(mcp): backfill prior batch tools into discovery surfaces by @bringfire in #16
- chore(mcp): backfill rhino_split_disjoint_breps into explorer/registry.py by @bringfire in #17
- feat(intent): CapabilityRouter coverage for 8 batch tools + paired singles by @bringfire in #18
- chore(explorer): categorize 14 block + layer mutation tools by @bringfire in #19
- feat(intent): CapabilityRouter sweep for historical block tools (12 ops) by @bringfire in #20
- feat(blocks): add rhino_block_replace_object_geometry_batch by @bringfire in #21
- feat(blocks): add rhino_block_transform_object_batch by @bringfire in #22
- feat(blocks): add replace-instance-batch and harden block tool contracts by @bringfire in #23
- fix(blocks): apply non-origin basePoint via local-coord definition storage by @bringfire in #25
- fix(blocks): normalize world-coord source in companion replace-object-geometry (#27) by @bringfire in #30
- test(blocks): live-Rhino regression coverage for replace-object-geometry (#31) by @bringfire in #32
- feat(blocks): migrate basePoint metadata to Rook-owned UserData with legacy fallback (#28) by @bringfire in #33
- test(blocks): live-Rhino coverage for link/refresh/merge UserData preservation (#35) by @bringfire in #36
- fix(gh): rich script pin editing + wire preservation by @bringfire in #43
- fix(gh): persist script pin descriptions across recompile (#42) by @bringfire in #44
- fix(gh): access-aware Python preamble coercion for list/tree pins (#40) by @bringfire in #46
- fix(gh): stamp ReferenceID on SetReference wrappers (partial #45) by @bringfire in #48
- fix(gh): Python preamble reads raw wrappers via ghenv.VolatileData (closes #45) by @bringfire in #49
- test(blocks): live-Rhino characterization for rebase invariants (#26) by @bringfire in #51
- fix(blocks): extract MutateDefinitionLocalFrame helper (#26) by @bringfire in #52
- fix(routes): retire dead rhino_loft / rhino_sweep MCP tools (PR-0) by @bringfire in #54
- feat(routes): /surface/pipe typed route (Phase 1 PR-1) by @bringfire in #55
- feat(routes): /surface/loft + plural contract (Phase 1 PR-2) by @bringfire in #56
- feat(routes): /surface/sweep1 + /surface/sweep2 (Phase 1 PR-3) by @bringfire in #57
- feat(routes): /surface/revolve typed route (Phase 1 PR-4) by @bringfire in #58
- feat(routes): /array/linear + /array/rectangular typed routes (Phase 1 PR-5) by @bringfire in #59
- feat(routes): /array/polar typed route (Phase 1 PR-6) by @bringfire in #60
- test(intent_runtime): pin Phase 1 typed-route four-surface coverage by @bringfire in #61
- feat(routes): /select additive compatibility (Phase 2 PR-0) by @bringfire in #62
- feat(routes): /annotation/text typed route (Phase 2 PR-1) by @bringfire in #63
- feat(routes): /annotation/dim-linear typed route (Phase 2 PR-2) by @bringfire in #64
- feat(routes): /annotation/dim-aligned typed route (Phase 2 PR-3) by @bringfire in #65
- feat(routes): /annotation/dim-radius + /annotation/dim-diameter (Phase 2 PR-4) by @bringfire in #66
- feat(routes): /annotation/dim-angle typed route (Phase 2 PR-5) by @bringfire in #67
- feat(routes): /annotation/leader typed route (Phase 2 PR-6) by @bringfire in #68
- feat(routes): /annotation/dot typed route (Phase 2 PR-7) by @bringfire in #69
- feat(routes): /usertext/object-set + /usertext/object-get typed routes (Phase 2 PR-9) by @bringfire in #70
- feat(routes): /usertext/document-* + Phase 2 campaign close (PR-10) by @bringfire in #71
- feat(routes): /surface/edge + /curve/blend typed routes (Phase 2 surface/curve PR-1) by @bringfire in #72
- feat(routes): /surface/patch typed route (Phase 2 surface/curve PR-2) by @bringfire in #73
- feat(routes): /surface/network typed route (Phase 2 surface/curve PR-3) by @bringfire in #74
- feat(routes): /curve/boolean typed route (Phase 2 surface/curve PR-4 — campaign close) by @bringfire in #75
- feat(routes): /usertext/object-delete + /usertext/document-delete by @bringfire in #76
- feat(blocks): rhino_block_reset_scale_batch + 6-handler envelope hygiene by @bringfire in #77
- fix(gh): forward declared pin
typeto /gh/script-params payload (closes #38) by @bringfire in #78 - fix(gh): pre-validate /gh/script-params before component mutation (closes #39) by @bringfire in #79
- test(gh): gh_set_script_pins coverage + outputs-recipient live case (closes #41) by @bringfire in #80
- fix(gh): emit runtime warning when preamble cast falls back to cast(0) (closes #50) by @bringfire in #81
- fix(surface): detect curve-crosses-axis in /surface/revolve (Phase 3 PR-1) by @bringfire in #82
- fix(gh): contract hygiene for script-component routing (design-pass PR-1) by @bringfire in #83
- fix(gh): unified gh_create_script tool with language discriminator (design-pass PR-2) by @bringfire in #84
- fix(gh): gh_execute_intent handoff on script-component intents (design-pass PR-3) by @bringfire in #85
- fix(gh): modern RhinoCode C# Script resolver visibility + preference by @bringfire in #86
- fix(gh): Python 3 modern-over-IronPython 2 legacy resolver preference by @bringfire in #87
- feat(telemetry): persist substrate observations to JSONL by @bringfire in #88
- feat(blocks): distribute along curve by @bringfire in #89
- test(infra): scaffold C# unit-test project (Rook.Tests) by @bringfire in #90
- feat(settings): RookSettingsStore + RookPaths.SettingsRoot by @bringfire in #91
- feat(artifacts): ArtifactStore + neutral manifest contract by @bringfire in #92
- feat(webui): Pattern A JS<->C# bridge in RookWebSurface by @bringfire in #93
- feat(viewport): Tier 3 SDK-backed capture via companion bridge by @bringfire in #94
- feat(vision): domain services + /vision/* routes (PR-5a) by @bringfire in #95
- feat(vision): artifact management routes (PR-5b) by @bringfire in #96
- feat(mcp): Vision MCP tools + tool-catalog wiring (PR-6) by @bringfire in #97
- feat(ui): virtual-resource hook + generalized tab cleanup (PR-7a) by @bringfire in #98
- feat(vision): VisionTab UI — Pattern A WebUI surface (PR-7b) by @bringfire in #99
- fix(plugin): serialize startup retries and prevent re-entry by @bringfire in #100
- fix(vision): v1 polish — live viewport capture + API key preview by @bringfire in #101
- [codex] polish Vision framing and WebView lifecycle by @bringfire in #102
- [codex] Fix RookVision WebView activation recovery by @bringfire in #103
- feat(vision): swap placeholder header logo for ROOK mark by @bringfire in #104
- Fix RookVision viewport preview artifacts by @bringfire in #105
- Add per-image Show in Folder action to RookVision Gallery modal by @bringfire in #106
- feat(vision): vendor Archivo + JetBrains Mono variable fonts by @bringfire in #107
- feat(...