v0.2.195
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.logfor Chirp telemetry