Skip to content

Release v0.0.9

Latest

Choose a tag to compare

@ImElio ImElio released this 26 Mar 22:40
· 1 commit to main since this release

Focused pre-release aimed at hardening the Frog core ahead of v0.1.0.

Added

  • Structured runtime errors with stable codes FROG201..FROG208.
  • Extended validator coverage with new issue codes FROG011, FROG109, and FROG110.
  • frog.InspectModel(...) plus exported validation report/types for tooling and diagnostics.
  • KeyMap, KeyBinding, and frog.RenderKeyHelp(...) for lightweight in-app key help.
  • frog.NewThrottledRenderer(...) for FPS-capped rendering.
  • Core tests covering renderer behavior, runtime safety, and validator rules.

Changed

  • frog.Run and frog.RunContext now return structured runtime errors for nil models/renderers, panics in Init / View / Update / Cmd, and nil models returned from Update.
  • Renderer diffing now falls back to full repaint when wrapped lines make line-by-line updates unsafe.
  • Full-frame rendering now uses Windows-safe output, fixing multi-line layout drift and stale fragments in wrapped views.
  • Validator now blocks only on real errors; warning-only reports remain available through frog.InspectModel(...).
  • Validator now detects typed-nil models and validates Init() / Update() signatures more strictly.
  • Input and resize delivery are now context-aware, reducing blocked sends during shutdown.
  • Windows VT handling is more robust for both output and input modes.
  • Public docs and exported API comments were cleaned up ahead of release.

Notes

  • ValidateModel(...) is still the default gate in frog.Run(...), but warnings no longer stop app startup.
  • InspectModel(...) is the recommended entry point for tooling, examples, and validator-focused workflows.
  • View() should remain fast and side-effect free; the renderer is now more defensive around multi-line and wrapped content.
  • v0.0.9 is the stabilization pass before the planned v0.1.0 API freeze.