Changelog
All notable changes to the LERP (Luau Education for Rive Professionals) course are documented here.
[1.4.1] — 2026-09-04
Changed
- Web compatibility refresh — aligned current course guidance to direct
Web
2.42.0at package gitHeadcb8b0d6a679746c77e33bee3f47a0fb749e25b9c. The package still embeds C++runtime-v0.1.344atd619bc2a83f3c592a57eb58b9c83315142bcfbfc, so this wrapper/host update does not introduce a new Luau declaration baseline. - Landing alignment — updated the bundled integration to
@rive-app/react-canvas@4.34.0, resolving Canvas2.42.0, while retaining singularstateMachineconfiguration and leaving GPU Canvas disabled for the checked-in non-GPU assets. - Current and historical versioning — updated current-facing API,
protocol, compatibility, and quick-reference pages to Web
2.42.0while retaining the 1.4.0 changelog and errata evidence as historical2.41.1statements.
Added
- Experimental Web GPU Canvas host option — documented
enableGPUCanvas?: booleanas a default-off Web import option, including deferred rendering, import-fixedRiveFilesemantics, React forwarding, and the incompatibility with an explicitly forced shared offscreen renderer. - Host support boundary — kept the JavaScript option separate from Luau globals and LSP declarations, and made no RAV or third-party host support claim without an exported GPU Canvas fixture in that host.
- Errata and generated artifacts — added
LERP-GAP-025and regenerated the course map, sitemap, AI feed, andllms-full.txtcopies for the 1.4.1 compatibility candidate.
[1.4.0] — 2026-09-01
Changed
- Runtime boundary refresh — aligned current course guidance to the direct
Web
2.41.1package line, package gitHead4ebb27c8e39c5e21210f1e60b13d3d56f2c9f104, and C++runtime-v0.1.344atd619bc2a83f3c592a57eb58b9c83315142bcfbfc. Released tag, canary, and main runtime refs agree. The337through344range adds layout, import, WASM-host, text-compatibility, command-queue, renderer, and Vulkan work. - Protocol and lifecycle rebaseline — corrected Layout
resizeto the optionalresize(self, size, displayScale)target callback, documented scale-change redispatch and two-parameter compatibility, preserveddrawCanvasretirement, promoted target-backed global ViewModels, and recorded released focus, layout, text, nested-artboard, module, WASM, and Web-host behavior. - Host boundary cleanup — separated current editor
Context.log,Tester.blob, FileFormat callbacks, and GPU rollout behavior from exact target-runtime claims. - Module/workspace boundary — distinguished authored
ScriptAssetmodules from the compiledScriptModuleAssethost payload. Serialized language values, method bits, handles, and IDs do not become globals or module names; only the authored name entersrequire("Name"). - Blob text reads — documented the exact target fields (
name,size,data), zero-bytedata == nilbehavior, and guardedbuffer.tostring(blob.data)conversion; removed any implied Blob string method. - Runtime and landing alignment — updated the landing to
@rive-app/react-canvas@4.33.1, which resolves Canvas2.41.1, and retained its singularstateMachineconfiguration. Rendered all six checked-in file-format7.0paths through Canvas and WebGL22.41.1, exercising runtime344's pre-7.3 compatibility branch. Web2.41.1still accepts plural state-machine playback and legacy direct controls while marking them for migration toward one state machine and data binding. - Dependency refresh — updated the docs toolchain to Docusaurus
3.10.2and local search0.55.3, updated the landing to Next.js16.3.4, and refreshed transitive locks. Remaining audit findings are upstream no-fix build-tool paths and are recorded in the release evidence. - Reproducible production install — the combined deployment build now runs
npm cifor the nested landing application on every build. This replaces any restored Vercel dependency cache with the exact reviewed lockfile graph before TypeScript checks the current singularstateMachineintegration.
Added
- File Formats API — added complete
FileFormat/TextFileFormat,FormatDocument,FormatSurface,FormatView,EditorContext, theme, scroll, highlighting, diagnostics, completion, hover, formatting, preview, and export-to-Blob coverage. - Focused Luau fixtures — added runtime
344plus current-editor binary and text FileFormat fixtures for downstream LSP reconciliation. - Analyzer and stdio commands — documented options-before-paths analyzer
use and
rive-luau-lspas the complete stdio command, without an extralspsubcommand. - Errata LERP-ERR-019 through LERP-GAP-024 — traced the FileFormat
misclassification, Layout requirement/signature drift, Context logging and
global-ViewModel evidence split, stale upstream
drawCanvasexamples, and the local Web documentation lag around singularstateMachine; recorded the pre-file-format-7.3 layout-controlled text risk and released-runtime asset run separately from static header evidence.
[1.3.0] — 2026-08-14
Changed
- Runtime boundary refresh — aligned the compatibility record to released
Web
2.40.0backed by C++runtime-v0.1.271; kept evidence-onlyruntime-v0.1.272separate. - Retired
drawCanvasmigration — removed the callback from active Node, Layout, lifecycle, quick-reference, shader, and lab guidance. Canvas and GPUCanvas recording now belongs indraw(self, renderer)with balanced frame/pass completion. - Expanded callable API coverage — documented source-confirmed 3D Vector
(
xyz,cross3, buffer writes),Mat4.lookAt/ortho, partial GPU buffer writes, source-only GPU texture-view format, Global ViewModels, Font/Blob properties, and library-scoped assets with explicit rollout tiers. - Lifecycle and correctness guidance — covered detached ViewModel advance, input wake-up, collapsed-node behavior, async context retention, converter safety, unsigned colors, scripted clipping, TextInput behavior, stable asset identity, and deferred Early Access GPU allocation.
- API boundaries — marked host/embedder APIs and editor/export metadata (including FileFormat/TextFileFormat and retired method bits) as non-callable Luau surfaces.
- Deterministic discovery feeds — AI feed generation now honors
SOURCE_DATE_EPOCHand otherwise derives a stable timestamp from this newest release heading, so required generation and production builds are byte-identical when source content is unchanged. - Errata LERP-GAP-017 — recorded the August 14
MCP-driven Rive Beta 0.8.5390 build 5377 validation of Vector/Mat4 math,
buffer writes, Mat2D/Mat4 equality, typed ViewModel lookups, the explicit
anycast required for Blob string/buffer/nilruntime writes, a successful ranged GPUBuffer write with both overflow rejections, and the failed liveGPUTextureView.formataccess. Context global-VM, imported-library, broader GPU lifecycle, and released Web 2.40.0 behavior remain unexecuted. - Errata LERP-ERR-018 — reconciled the complete
event surface to the live Editor reference and a diagnostics-clean analyzer
probe: current event names, exact
PointerType, full gamepad payloads, ListenerContext guards/accessors, and Node callbacks. Historical*Invocationwrapper names are now source/runtime compatibility notes rather than current Editor authoring guidance. The same probe acceptedAudioSound:pause/resume/play; event dispatch and audio calls remain runtime-unexecuted.
Added
learn_luau_rive_scripts/runtime-v0262-surface.luauas the focused static/LSP reconciliation fixture for the new math, ViewModel, and lifecycle surface.
[1.2.12] — 2026-06-14
Added
- While-loop freeze guard guidance (LERP-GAP-016) — strengthened the Fundamentals -> Iteration infinite-loop warning and added an Exercise 4 safety note in Fundamentals -> Control Flow. Reported by Rive Community user Avo. The note calls out the exact failure mode from the reported
Exercise4_WhileCountdownscript: awhile energy > 0 doloop that incrementsstepsbut never changesenergy, causinginit()to never return.
Fixed
- Control Flow Exercise 4 learner-safety gap — the exercise now explicitly warns not to run a while loop unless the loop body changes the countdown value, because a non-ending loop in
init()can make affected Rive editor builds unresponsive. Reported by Rive Community user Avo.
[1.2.11] — 2026-06-12
Fixed
- Exercise 3 triangle winding (LERP-ERR-015) — the Node Protocol drawing exercise described its triangle points in counter-clockwise order, which the current clockwise-fill renderer does not draw, so following the exercise exactly produced an invisible shape. Point order corrected to clockwise. Reported by GitHub user belal-sweileh in issue #2; reproduced live in the Early Access editor (2026-06-12) with a side-by-side CW/CCW probe.
Added
- Winding-direction guidance — new warnings in the Exercise 3 premise, the Path API reference, and the quick reference: fills require clockwise winding (y points down in artboard coordinates), and the scripting API currently exposes no fill-rule control on
PathorPaint. - Errata entry LERP-ERR-015 — full evidence trail for the winding behavior, including the runtime's clockwise fill pipeline.
[1.2.10] — 2026-06-12
All items in this release were validated live in the Rive Early Access editor (2026-06-11) using instrumented probe Node scripts and Test-protocol runtime checks driven through the Rive MCP, cross-checked against the editor's built-in scripting reference.
Added
- Node advance two-clock model (LERP-GAP-012) — new "Playback vs Design Mode: The Two advance() Clocks" section in
rive/protocols/node-lifecycleplus an advance-semantics admonition inrive/protocols/node-protocol: returningfalseunsubscribes from the playback advance loop only (a false-returning probe received zero advance calls during ~10 s of playback while drawing ~600 frames);drawis fully independent; design-modeadvancefires as event-driven settle passes withseconds = 0and ignores the return value. Includes guard rules for time-based math. Color.toFloatin the Color reference — surfaced inapi/core-types(previously only documented in the GPU shaders page) with runtime-confirmed output values.- Color runtime representation — documented that
Coloris a plain Luaunumber(ARGB packed integer) and that raw hex literals such as0xFFFF0000are validColorvalues. - Vector
zcomponent and[3]indexing — documented inapi/core-types(always0for 2D vectors; populated by 3D APIs such asMat4:transformPoint). - Errata tracker entries — added LERP-ERR-011, LERP-GAP-012, LERP-ERR-013, and LERP-GAP-014 with live-probe evidence, including the upstream Rive report (the editor reference's
Paint.withexample usesColor.hex, which does not exist at runtime, and itsadvancecomment contradicts measured behavior).
Fixed
- Node
drawrequirement (LERP-ERR-011) —drawwas incorrectly documented as required for a Node script to appear in the add-to-scene menu. Editor-validated: a draw-less script compiles cleanly, appears in the menu, places as a script node, and runsinit/advance. Updated the requirements block, protocol table, AE/JS comparison, common-mistakes section, exercise premise, and quiznode-protocol-q1inrive/protocols/node-protocol. - Deprecated Vector instance-method usage (LERP-ERR-013) — the glossary Vector entry and the environment Vector exercise still taught
vec:length()/vec:normalized()despite the core-types deprecation table; both now use staticVector.length(...)/Vector.normalized(...). - Styling/Path reference drift (LERP-GAP-014) —
PaintDefinition.gradientis now typed(Gradient | false)?with a note that assigningfalsealso clears the livepaint.gradientproperty (reads backnil); the path mutation rule is now stated generally (any mutation after drawing requires waiting a frame, not justreset());path:addaccepts anyPathData;positionAndTangentdocuments distance clamping and the normalized tangent;extractdocuments clamping and thestartWithMovedefault oftrue.
Changed
- Course metadata refresh — sidebar "Last reviewed" date updated for this errata pass.
[1.2.9] — 2026-06-04
Added
- Script save/recompile onboarding note — added an early first-script warning with the save-state indicator screenshot so learners know the blue tab dot means unsaved changes and saving recompiles the script. Reported by Rive Community user Avo.
- Avo-reported errata tracker entries — added resolved errata entries for script save/recompile workflow, Node script placement/code-access wording, and exercise validator whitespace feedback.
Changed
- Runtime compatibility baseline revalidated — updated the current public runtime package line from
2.37.6to2.37.8, pinned npmgitHeadbc560112ab2ee7d0afd3418bd97970c2fcb36532, revalidated source-level API rows againstruntime-v0.1.106(5360c834eac2adbdfc49c808d1b2a8c61b014bbf), and clarified that shader/GPU lessons remain Rive Early Access editor-only. - Node script placement language clarified — reworded setup steps across lessons, exercises, project pages, API references, and the exercise registry from "attach to a shape" toward "add to the artboard, position or nest the script node." Reported by Rive Community user Avo.
Fixed
- Node placement code-access gap (LERP-GAP-008) — clarified that nesting a Node script under a shape/group affects normal hierarchy behavior, but does not pass parent
NodeDataor existing shapePathDatainto Node callbacks. Reported by Rive Community user Avo. - Exercise validator whitespace feedback (LERP-ERR-010) — failed-answer displays now preserve exact spaces/tabs and call out whitespace-only mismatches, so copying a displayed failed answer cannot silently normalize spacing. Reported by Rive Community user Avo.
[1.2.8] — 2026-06-04
Added
- ScriptedInterpolator protocol coverage — added
rive/protocols/scripted-interpolator-protocolwith runtime-backed behavior, fallback semantics, exercise, and quiz. - Interpolation API page — added
api/interpolationand linked it in API Reference navigation so ScriptedInterpolator has a direct API location. - Mat4 API coverage — expanded
api/core-typeswith full Mat4 constructors, static helpers, transforms, buffer write, and operator semantics. - Promise/async/await reference — added Promise runtime coverage to
api/systemand quick-reference usage snippets for async image decode workflows. - Context advanced rendering coverage — added
context:canvas,context:gpuCanvas,context:features,context:preferredCanvasFormat,context:loadShader, andcontext:decodeImagetoapi/data-input. - GPU Shaders and 3D Rendering course chapter — added
advanced/gpu-shaderswith early-access shader workflow guidance,drawCanvaslifecycle positioning, WGSL/Luau examples, 3 exercises, and 5 quizzes. - GPU Shaders API reference — added
api/gpu-shaderscoveringGPUCanvas,Shader,GPURenderPass,GPUPipeline,GPUBuffer,GPUTexture,GPUSampler, bind groups, descriptor types, string literal types,GPUFeatures,Image:view(), and shader troubleshooting. - GPU Shader Example Labs project — added
projects/gpu-shader-labsas a guided 10-lab path based on the corrected local Rive shader example pack, covering first triangle setup, uniform animation, UV debugging, image sampling, sampler modes, dissolve masks, two-pass blur, depth-tested 3D geometry, ray marching, and glass distortion. - Shader lab exercises and quizzes — added 3 validator-backed project exercises and 4 quizzes focused on typed descriptors, guarded shader/image setup,
UBOEntry.size, and explicit render-to-texture source strategies. - Release and deployment workflow — added
release-workflowas the canonical maintainer protocol for drafting, local review, commit/tag release, Vercel production deploys, verification, and rollback.
Changed
- Runtime compatibility baseline updated — refreshed
rive/runtime-compatibilityto the May 12, 2026 course-wide audit with upstream runtime snapshotruntime-v0.1.64(b25a32218c6308ac8dc4b1cb69df62de84d78ba4) and npm C++ WASM runtime line2.37.6(gitHead2833de372c0d22596494c89c328008ce5b1106d7, published May 8, 2026 UTC). - Release-tier alignment for advanced rendering APIs — reclassified GPU/shader object families as
Preview / rollout-dependentwhile keepingCanvas+decodeImage/DecodedImageas officially released advanced surfaces; updatedapi/data-input,api/assets, andrive/runtime-compatibility. - Listener payload coverage expanded — updated Events and ListenerAction docs with gamepad payload guards/accessors and explicit invocation field mapping.
- Node lifecycle coverage expanded — added keyboard/text callback handling guidance and propagation semantics (
return truestops propagation). - Artboard input typing guidance improved — updated Inputs docs to include
Input<Artboard<Data.X>>andInput<Artboard<nil>>patterns, plusinstance(viewModel)guidance. - Current shader naming adopted — new examples now use
context:shader(name)andGPUCanvas.format, and explicitly flag oldercontext:loadShader(name)/context:preferredCanvasFormat()references as stale for new LERP shader material. - Lifecycle docs expanded —
drawCanvas(self)is now documented in Node, Layout, lifecycle, capability matrix, quick reference, glossary, and shader lessons as the correct phase for offscreenCanvasandGPUCanvasrendering. - Shader lesson updated for type-safe runtime-v0.1.106 patterns — rewrote the minimal triangle and supporting snippets to use non-null local GPU resources, typed descriptor helpers, local optional-field guards in
drawCanvas, and byte-accurate uniform binding sizes. - GPU API reference tightened — documented descriptor-local construction,
getBindGroupLayoutauto-layout caveats, optionalcontext:shader(name)failure causes, image asset requirements, sampler blur checks, WGSL swizzle assignment limits, and explicit source-texture requirements for glass effects. - Runtime compatibility shader baseline clarified — updated
rive/runtime-compatibilityto label the runtime-v0.1.106 shader baseline as Rive Early Access only, while preserving the May 12, 2026 course-wide runtime audit as the main baseline. - External editor tooling documented — added Rive Luau LSP / VS Code extension recommendations for writing
.luauscripts in VS Code, Cursor, Windsurf, and other LSP-capable editors, including shader-specific syntax and descriptor-checking guidance. - Course metadata refreshed — updated sidebar review date, site map, progress registry, quiz tracking, discoverability artifacts, and course counts for the roll-up release.
Fixed
- PropertyList inconsistency (LERP-ERR-006) — replaced stale
list.count/list:item(index)usage withlist.length/list[index]and documentedclear,removeAt, andremoveAllOfin API and advanced lessons. - Version alignment drift — synchronized runtime-version references across API, protocol, matrix, and compatibility pages to a single May 12, 2026 audit baseline.
[1.2.7] — 2026-04-27
Added
- Runtime compatibility baseline page — added
rive/runtime-compatibilitywith both a pinned runtime source snapshot (npm gitHead@5581955for runtime line2.37.4, published April 24, 2026 UTC) and the current C++ WASM npm runtime release line (2.37.4across@rive-app/canvas,@rive-app/canvas-lite,@rive-app/webgl2,@rive-app/canvas-advanced), plus a live/partial/not-exposed matrix for docs-labeled "Coming soon" surfaces.
Changed
- API pages aligned to runtime baseline — Events now documents ListenerContext payload kinds (pointer/keyboard/text/focus/reported/view-model-change/none), Assets documents
AudioSource.duration, and Hierarchy explicitly marksNodeReadData.paint/asPath/asPaintas baseline-validated. - System + Glossary output wording —
Output<T>is now documented as not currently exposed in this baseline C++ Luau binding surface. - Listener lessons/quizzes updated — ListenerAction and Listeners protocol pages now teach the payload-guard pattern (
is...+as...) as the safe default. - Metadata and navigation sync — Intro, Quick Reference, Site Map, and sidebar metadata now include runtime baseline tracking links and updated review date.
- Audit protocol documentation — runtime baseline page now records how verification was executed (npm release checks, runtime commit pin, docs
(Coming soon)diffing, and binding-level confirmation) and defines required fields for future changelog runtime-audit entries.
[1.2.6] — 2026-04-26
Fixed
- OOP Exercise 6 (Read-Only Table) — corrected the exercise to use a proxy-table read-only pattern (
source+proxy) so writes to existing keys are properly blocked through__newindexon the proxy. Reported in GitHub issue #1. - Exercise registry sync — updated
oop-indexmeta-6hints and explanation to reflect true Luau metamethod behavior from issue #1.
[1.2.5] — 2026-04-26
Added
- Rive errata tracker review pass — integrated corrections from
docs/rive/rive-doc-errata.mdxand marked this batch as resolved in LERP.
Fixed
- ListenerAction callback guidance — docs now prefer
performAction(self, listenerContext)and markperform(self, pointerEvent)as legacy. - Path Effect command checks — replaced runtime
CommandType.*examples with editor-validated string comparisons and clarifiedCommandTypeis not a guaranteed global Luau table. - ViewModel context semantics — corrected
context:viewModel()wording to immediate data-context behavior and clarifiedcontext:rootViewModel()for root/artboard state. - Property listener lifetime warnings — added guidance to retain VM/property handles on
self(or use anchored overloads) for long-lived listeners. - Node pointer-event consumption guidance — replaced boolean return consume/propagate wording with
event:hit()/event:hit(true).
Changed
- Course metadata — updated Intro snapshot date/counts and sidebar "Last reviewed" date for the errata pass.
[1.2.4] — 2026-03-23
Added
- Tips and Tricks page — new reference index of proven workarounds and non-obvious patterns: Bus Module Pattern (with use cases for bounds, Input types, and EventBus),
advance()return value gotcha,and/orstring literal type widening, Sustained-Boolean Pattern (with boolean reset and trigger listener bug note), cubic bezier easing in pure Luau, and debug toggle convention - Bus Pattern documentation — new section in Util Protocol explaining intentional shared state via
require()caching for cross-script communication, with production-tested code examples (HitboxBus, PathEffect-to-Node data sharing)
Changed
- Util Protocol reframed — replaced blanket "avoid global state" language with nuanced guidance distinguishing accidental shared state (dangerous) from intentional bus architecture (legitimate pattern); updated quiz explanation, gotcha section, and summary accordingly
- Sidebar — added Tips and Tricks entry between API Reference and Quick Reference
Fixed
- Internal contradiction resolved — Listener Protocol already taught EventBus as legitimate shared state via Util scripts, while Util Protocol labeled all module-level state as BAD/WRONG; both pages now present a consistent position
[1.2.3] — 2026-03-14
Added
- Complete Input type reference — every
Input<T>type now has its own section in the API reference with when-to-use explanation, factory default, how-to-read, complete code example, and editor setup steps (for types that need it) Input<Trigger>documentation — new "Trigger Inputs" section in Inputs guide, empirically validated in the Rive editor with 5 test scripts- Trigger execution order — documented the ground-truth frame order: trigger fn → advance → update (trigger function is called directly, not through update)
- Changelog page — new sidebar entry after Trust & Transparency linking to rendered changelog
Changed
- Input API reference rewritten — replaced bare code-block type list with per-type sections:
Input<number>,Input<boolean>,Input<string>,Input<Color>,Input<Data.X>,Input<Artboard>,Input<Trigger>, and Change Handling — all written for non-programmers - Trigger moved from Events to Data & Input —
Triggeris a data input type, not a pointer event; Events page now redirects to the correct location - Events page — simplified to PointerEvent only, with redirect link for Trigger
- Sidebar author metadata — "Last reviewed" updated to March 14, 2026
Fixed
- Trigger factory default — documented that
late()causes runtime error "expected trigger X to be a function"; must usefunction() end - Removed incorrect claims —
Input<Trigger>?does NOT hide triggers from the UI; you CAN assign to trigger inputs in init (and it sticks)
[1.2.2] — 2026-03-04
Added
- Path winding troubleshooting guidance — added a dedicated section in Procedural Geometry covering even-odd fill behavior, contour winding conflicts, cross-product detection, and strategy tradeoffs for multi-contour paths
- New advanced procedural exercise — added
Exercise 8: Fix Conflicting Winding in a Spike Burstwith validator IDadvanced-procedural-8 - Debugging cross-reference — added a new common error pattern for "shapes disappear with no runtime error" linking to the winding guidance
Changed
- Course snapshot metadata — refreshed intro page "Course at a Glance" counts and update date
- Trust sidebar metadata — updated "Last reviewed" date in the sidebar author meta block
[1.2.1] — 2026-02-27
Added
- Script capability matrix — new cross-protocol reference page summarizing supported callbacks and APIs by script type
- AI agent protocol guidance — added internal protocol notes (32-bit numeric bounds, pure Luau runtime rules,
noneutility semantics, and component-list generation rules)
Fixed
- Exercise expected outputs — replaced 76
ANSWER: <your result>placeholders with exact validator answers across 20 docs pages - ViewModels context API references — removed invalid
context:artboard()/context:node()calls and aligned examples with supported context methods - Exercise and quiz tracking maps — synchronized docs and local registry/index so all exercise and quiz IDs are mapped correctly
Changed
- Course consistency pass — resolved cross-page wording and metadata drift discovered during final v1.2 review
[1.2.0] — 2026-02-23
Added
- Rive AI Agent guide — comprehensive documentation of all 14 tools available to the Rive AI coding assistant, including workflow examples and tips
- ListenerAction protocol — new script protocol page for state machine listener action scripts
- TransitionCondition protocol — new script protocol page for custom state machine transition conditions
- Audio system documentation — AudioSource, AudioSound, and the Audio global API added to API reference
- Blob type documentation — binary data assets in API reference
- DataContext type — hierarchy traversal for data binding contexts
- Vector static methods —
Vector.cross,Vector.scaleAndAdd,Vector.scaleAndSuband other previously undocumented static methods - ImageSampler constructor — proper function constructor documentation replacing placeholder
- CHANGELOG.md — this file, with reconstituted version history
Fixed
- Path Effect scope wording — clarified that path effects apply to both strokes and fills (not strokes-only)
- Vector deprecated methods — instance methods (
vec:length(),vec:dot(), etc.) now marked as deprecated with static alternatives shown - ImageFilter values — corrected
trilineartobilinear(trilinear does not exist in Rive) - ImageSampler API — documented as function constructor
ImageSampler(wrapX, wrapY, filter)instead of opaque object - Context methods — added missing
rootViewModel(),dataContext(),image(),blob(),audio() - BlendMode usage — corrected from namespace access (
BlendMode.multiply) to string literals ("multiply") - PathEffect.update() signature — added missing
node: NodeReadDataparameter - PathCommand point counts — corrected to reflect Vector objects (1, 1, 2, 3) not raw number pairs (2, 2, 4, 6)
- DataValue type-check methods — corrected from property access to method calls (
dv:isNumber()notdv.isNumber) - PropertyList:insert parameter order — corrected to
insert(vm, index)per API - viewModel:getViewModel() return type — corrected to
PropertyViewModel? - artboard:instance() signature — added optional
viewModelparameter - artboard:node() return type — corrected to
NodeData? - Scene Node init() signature — added missing
context: Contextparameter - renderer:drawImageMesh signature — added full parameter list
- ContourMeasure documentation — expanded to show it has full PathMeasure capabilities, not just iteration
- NodeReadData missing methods — added
asPath()andasPaint() - PropertyList missing listeners — added
addListener()andremoveListener()
Changed
- Script types count — updated from 6 to 8 to include ListenerAction and TransitionCondition
- Quick Decision Guide — expanded mermaid chart with new script types
- Factory Functions table — added ListenerAction and TransitionCondition, removed Listener (not a script type)
- Glossary — added 8+ new terms (ListenerAction, TransitionCondition, AudioSource, AudioSound, Blob, DataContext, ImageSampler, Output)
- Strict-mode guidance — removed blanket
--!strictassumptions in docs where runtime behavior makes strict mode optional
[1.1.2] — 2026-02-17
Fixed
- Added
.vercelto.gitignore
[1.1.1] — 2026-01-24
Fixed
- Major audit fixes across documentation based on runtime testing
- Navigation routing improvements for experience-based paths
- Untracked
.claudefolders from the repository - Strict mode optionality wording clarified in docs
[1.1.0] — 2026-01-15
Added
- Rive Luau expert agent with skills integration
- Beginner-friendly "Your First Script" page
- Beginner exercise with proper template format
- Test scripts support added to gitignore
Fixed
- Categorical claims corrected based on runtime testing
[1.0.1] — 2026-01-15
Added
- Glossary expanded with 25+ new terms
- Mat2D wrapped in Term component for consistent linking
Fixed
- API claims corrected and missing documentation added (#87)
- Angle bracket escaped in MDX to fix compilation error
[1.0.0] — 2026-01-14
Added
- Complete exercise system with progress tracking
- Comprehensive lesson improvements with AE/JS comparisons
- All lessons migrated to Rive-first format with dark mode fixes
- Comprehensive lessons for Fundamentals, Types, and OOP modules
- Complete API reference and quick-reference content
- CI/CD deployment pipeline
- LERP brand assets
Fixed
- Exercise expected-output blocks switched from literal answers to guidance placeholders (later reverted in 1.2.1)
- Build warnings resolved across all exercises
[0.8.0] — 2026-01-13
Added
- Migrated to Docusaurus with interactive quizzes
- Loading indicator and fallback links
- Code exercises and quiz reset functionality
[0.5.0] — 2026-01-13
Added
- Split guide into loadable parts
- Navigation links to reference docs
- Improved layout and reference documentation
[0.1.0] — 2026-01-13
Added
- Initial LERP course added to forge platform