Skip to content

v0.2.195

Choose a tag to compare

@proggeramlug proggeramlug released this 18 Mar 21:45
· 4619 commits to main since this release

Documentation

Comprehensive perry.toml reference

New docs/src/cli/perry-toml.md — the complete reference for project configuration:

  • All 10 sections: [project], [app], [build], [macos], [ios], [android], [linux], [publish], [audit], [verify]
  • Every field with type, default, and description
  • Bundle ID resolution order per platform
  • Entry file resolution priority
  • Build number auto-increment behavior
  • macOS distribution modes (appstore, notarize, both)
  • Environment variables for CI/CD
  • Global config (~/.perry/config.toml) interaction
  • CI/CD pipeline example (GitHub Actions)

Geisterhand documentation rewrite

Complete rewrite of docs/src/testing/geisterhand.md:

  • Full API reference for all 14 HTTP endpoints with request/response formats
  • Widget type and callback kind tables
  • Platform setup for all 5 platforms (including iOS physical device, Android adb)
  • Test automation patterns: shell scripts, Python, visual regression, chaos stress testing
  • CI pipeline integration example
  • Architecture diagram with thread safety model
  • Build system details (auto-build, feature flags, manual cross-compilation)
  • Troubleshooting guide

Bug Fixes (since v0.2.194)

  • NSView clipping: embedded NSViews now clip to bounds (masksToBounds) + background color caching
  • NSStackView background colors: cache and re-apply background colors after detach/re-attach
  • Uint8Array: new Uint8Array(arrayVariable) correctly creates from array, not as length
  • keccak256: native keccak hash intercept, overflow field read, buffer length fixes
  • Shift operations: 32-bit truncation in integer-specialized functions
  • JSON.parse: array truncation at 16 elements fixed, throws on invalid input
  • Uint8Array.set(): set(source, offset) was a no-op, now implemented
  • BigInt NaN-boxing: args use BIGINT_TAG for cross-module and same-module calls
  • Optional chaining: nested Conditional, toString detection, string return NaN-boxing
  • IndexSet: string NaN-boxing uses STRING_TAG, not POINTER_TAG
  • Native method dispatch: field-scan-and-call for POINTER_TAG objects in js_native_call_method
  • MySQL: DATETIME/BLOB types, optional chaining calls, Date(string), Math.min/max spread

Other

  • Crash reporting: ~/.hone/crash.log for Chirp telemetry