v0.1.4
Liang v0.1.4 Release Notes
This release is a focused set of correctness and reliability fixes, based on a full code review of the event pipeline and setup flow. No new features.
Fixes
-
Fixed silently dropped events when hooks fire in quick succession
- When Cursor emitted multiple hook events close together (e.g.
stop+sessionEnd, orsessionStart+beforeSubmitPrompt), only the last event was processed and everything in between was dropped. - The adapter now publishes events incrementally and the state engine processes each one in order, so no intermediate state is lost.
- When Cursor emitted multiple hook events close together (e.g.
-
Fixed unbounded memory growth from the event buffer
- The adapter previously accumulated every received event in an ever-growing array that was never trimmed. Events are now streamed one at a time instead of buffered.
-
Fixed auto-install / uninstall overwriting your existing Cursor hooks
- Installing or uninstalling the bridge used to replace or delete the entire
~/.cursor/hooks.json, wiping any hooks you had configured for other tools. - Installation now merges Liang's entries into the existing file, and uninstall removes only Liang's entries, leaving everything else intact.
- Installing or uninstalling the bridge used to replace or delete the entire
-
Fixed a race condition that could permanently lose events
- The file-watcher and the periodic health check could read the same file concurrently, occasionally corrupting a line so its event was lost forever. All reads are now serialized on a single queue.
-
Fixed task status leaking across parallel conversations
- When one conversation finished while another was still running, the "finishing" transition could mark every in-progress task as finished. Task-state propagation is now scoped to the conversation that triggered the transition.
-
Fixed cross-conversation event de-duplication dropping legitimate events
- The de-duplication signature omitted the conversation and generation IDs, so two distinct events within the window could be treated as duplicates. The signature now includes both IDs.
-
Fixed two settings silently resetting after restart
- "Cursor status label" and "Notch expansion panel" were saved but never restored on launch, so they always reverted to their defaults. They are now restored correctly.
-
Fixed the bridge script passing the full payload via command-line arguments
- The payload (which can include large tool input) was passed to Python as an
argvargument, riskingARG_MAXfailures on large files and briefly exposing the payload inps. It now flows over stdin.
- The payload (which can include large tool input) was passed to Python as an
-
Fixed the adapter starting even when hooks were disabled at launch
- When Cursor hooks were already disabled, the adapter still started and reported itself connected. It now honors the disabled state consistently, matching the runtime behavior.
System Requirements
- macOS 14.0 or later
- Apple Silicon (arm64)
Checksums
Liang-0.1.4.dmg: 2,833,142 bytes- SHA-256:
4d258ccb6a8fb1bc7592438eb1d7477929b18d154405589d3f1c2c4053769ba3