Repository navigation
Highlights
This release brings cross-tenant history search, a configurable URL exclude list, and a substantial rewrite of the extension client and bridge protocol.
History search
- Shared browsing history is now collected from every tenant. Each visit carries its source tenant, title, URL, and timestamp.
- A new side panel in the extension provides search across all tenants, with scope and sort controls, age filtering, keyboard navigation, and grouping of results that share a title and domain.
- Results show visit metadata (last visited, visit count) and support right-click delete.
- A configurable hotkey opens the side panel directly.
alloy import-firefoximports history from an existing Firefox profile. Imported entries respect the exclude patterns.
Configurable URL exclude patterns
- Exclude patterns are managed in a separate config file with a row-based editor on the config page (replacing the textarea).
- Defaults now cover the major search engines (using
[.]instead of backslash escapes for readability). - Patterns also filter history collection, so excluded URLs are never recorded.
Extension and protocol rewrite
- The extension Client is now port-based with message passing and proxy support.
sendMessageis gone from page code; popup, options, and side panel pages all communicate through the multiplexer. - The multiplexer is event-based with disconnect propagation; popups detect bridge disconnects and re-register cleanly.
- The bridge protocol has moved to its own library, with the serializer and deserializer consolidated into a single
command_codecmatch and frames parameterised on payload. - Response payloads are now
(json, string) Result.t, replacing the ad-hocresponse_payloadtype. - The coordinator event loop has been replaced with direct callbacks, simplifying the daemon side.
Other improvements
- Background worker tracks
Page_loadedevents for more accurate tab state. - Daisy-chain proxy tests and multiplexer tests added.
- Various Chrome API bindings reorganised (
Port,History,Commands,Side_panel). - Reconnect button removed from popup (re-registration is automatic).
Fixes
- Bridge function rename and
is_closedhandling corrected. - Extension tests updated for the new protocol and multiplexer.
- CI: declare
alcotest-lwtas a test dependency and pre-populate the opam download cache to work around upstream source-host outages.
Full Changelog: v0.9.36...v0.9.40