Repository navigation
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, andFROG110. frog.InspectModel(...)plus exported validation report/types for tooling and diagnostics.KeyMap,KeyBinding, andfrog.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.Runandfrog.RunContextnow return structured runtime errors for nil models/renderers, panics inInit/View/Update/Cmd, and nil models returned fromUpdate.- 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 infrog.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.9is the stabilization pass before the plannedv0.1.0API freeze.