Repository navigation
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(vision): video domain contracts (PR-V1a) by @bringfire in #108
- feat(vision): video runtime — provider, manager, ledger (PR-V1b) by @bringfire in #109
- refactor(vision): video registry + codec + per-model pricing (PR-V1c) by @bringfire in #110
- feat(vision): video HTTP routes + RookSubsystemRoot composition (PR-V2) by @bringfire in #111
- feat(vision): VisionTab UI for video (PR-V3) by @bringfire in #115
- feat(vision): RookVision PR-V4 — MCP tools + native HTTP parity for video by @bringfire in #116
- Phase 0 evidence: multi-provider generation contracts by @bringfire in #117
- docs(vision): multi-provider Phase 1 implementation plan by @bringfire in #118
- feat(vision): generation seam — modality-neutral provider abstraction (Phase 1 PR-1) by @bringfire in #119
- docs(vision): Phase 1 plan v1.2 — post-PR-1 implementation lessons by @bringfire in #120
- PR-2: Adapt video generation to generic provider seam by @bringfire in #121
- feat(vision): add managed image provider seam by @bringfire in #122
- feat(vision): add keyed generation secret store by @bringfire in #123
- [codex] Plan fal-first multi-provider Phase 2 by @bringfire in #124
- [codex] add fal substrate and secret metadata by @bringfire in #125
- [codex] add fal sync image provider by @bringfire in #126
- docs(agent): align persona prompts with gh_edit/gh_move schemas by @bringfire in #127
- fix(chat): UI block Apply now triggers streaming agent reaction by @bringfire in #128
- [codex] Repair chat history after cancelled tool calls by @bringfire in #129
- feat(vision): add fal video provider support by @bringfire in #130
- feat(vision): add provider settings and picker UX by @bringfire in #131
- fix(webview): gate focus repaint workaround by @bringfire in #132
- [codex] PR-10 Replicate substrate by @bringfire in #133
- [codex] Add hidden image job substrate (stacked) by @bringfire in #134
- [codex] Add hidden Replicate image provider by @bringfire in #135
- [codex] Add Replicate Settings and visible image model by @bringfire in #136
- [codex] Add durable image job lifecycle ledger by @bringfire in #137
- PR-16: Flux 2 Pro source-image workflow by @bringfire in #138
- PR-17: Add fal GPT Image 2 edit source-image jobs by @bringfire in #139
- PR-18: Seedance 2.0 image-to-video by @bringfire in #140
- PR-19: Upload Seedance source frames through fal CDN by @bringfire in #141
Full Changelog: v1.5.1...v1.5.2