Understand opencode-wakatime heartbeat and rate limiting
masterTo avoid API spam, the plugin implements a rate-limited heartbeat system:
- Rate Limit: 1 heartbeat per minute per project.
- Triggering: Heartbeats are processed when
chat.messageevents occur or when tool completions are detected viamessage.part.updated. - Session Lifecycle: The plugin sends a final heartbeat when the session becomes idle or ends.
- Data Flow: Tool execution $\rightarrow$ Extract changes $\rightarrow$ Heartbeat Queue $\rightarrow$ Rate Limiter $\rightarrow$
wakatime-cli$\rightarrow$ WakaTime API.