Changelog
v3.0.1May 28, 2025

Bug fixes and stability

Patch release addressing issues found in the v3.0.0 GA launch: npm publish pipeline, session timeout edge cases, dashboard cost accuracy, macOS startup time, and webhook retry behavior.


Fixed

npm publish pipeline now correctly bundles native binaries

The v3.0.0 npm publish had a pipeline misconfiguration that caused the native keystore binary to be excluded from the published package on Windows. Users installing forg-agent on Windows would fall back to the file-backed keystore silently. v3.0.1 correctly bundles the CGO=1 Windows binary (DPAPI keystore) in the npm package.

Fixed

Session timeout rule no longer fires on sessions with <5 calls

The idle session detection logic in the Rule Engine was incorrectly triggering the timeout rule for very short sessions (fewer than 5 API calls) that had naturally completed. The root cause was the gap detection algorithm not distinguishing between 'session complete' and 'session idle'. Fixed by checking the SessionEnd event presence before applying the idle timeout logic.

Fixed

Dashboard cost totals now correctly exclude refunded signals

When a signal was refunded (e.g., an API call that failed after billing), the refund was not being applied to the dashboard cost totals. Cost totals now correctly reflect refunded signals. This only affects a small percentage of signals, but the discrepancy was confusing when comparing FORG totals to API provider invoices.

Improved

Agent startup time reduced from 340ms to 180ms on macOS

The macOS Keychain lookup on agent startup was making a synchronous call to Security.framework that added significant startup latency. v3.0.1 caches the keychain read after the first successful activation, reducing cold-start from ~340ms to ~180ms. Warm starts (already activated) are unchanged at ~40ms.

Fixed

Webhook retry now uses exponential backoff

Webhook delivery retries were using a linear backoff (1s, 2s, 3s...) which could overwhelm endpoints that were rate-limiting or recovering from downtime. v3.0.1 switches to exponential backoff with jitter: 1s, 2s, 4s, 8s, 16s, capped at 30s. Total retry window is 72 hours.