Skip to content

Releases: franciscoxc/cardinal

Cardinal 0.3.3

Choose a tag to compare

@franciscoxc franciscoxc released this 02 Aug 17:58

A one-line fix with a long explanation, because the cause was not where it looked.

Download

Cardinal_0.3.3_aarch64.dmg — Apple silicon, macOS 12 or later.

Signed with a Developer ID and notarized by Apple, so it opens without Gatekeeper warnings.

SHA-256  aea302ab3f83141f6f6d5ec153502f0a48446a79b79e6db5949ab29238ded3b0

Fixed

Columns could not be dragged on large result sets. Past the sortable-results limit — 20,000 by default, configurable in Preferences — the column titles grey out. Switching sorting off there is deliberate, since sorting a very large set is expensive. Taking column reordering with it was not.

The cause: the title is a button, and it was disabled with the disabled attribute. A disabled button swallows mouse events rather than bubbling them, so the press never reached the header cell that starts the drag. It now carries aria-disabled and refuses the sort in its handler, so it still reads as disabled to the eye and to assistive technology, while the press gets through.

Reordering columns is a layout choice and should not depend on how many results are on screen.

Credits

Cardinal was created by cardisoft and is MIT licensed. This fork continues that work; the search engine is theirs.

Cardinal 0.3.2

Choose a tag to compare

@franciscoxc franciscoxc released this 02 Aug 12:32

Two column bugs, one of them older than the reordering feature that exposed it.

Download

Cardinal_0.3.2_aarch64.dmg — Apple silicon, macOS 12 or later.

Signed with a Developer ID and notarized by Apple, so it opens without Gatekeeper warnings.

SHA-256  85fe31d89625ad53b4cad47e0db2d11b7eea4e04a66c5fe34a54627aa1e3d889

Fixed

Rows did not follow the column order. The header reordered but the rows kept the original layout while emitting their cells in the new order, so every title sat over the wrong content — and a column appeared not to carry its width with it.

Columns collapsed to 30px and stayed there. Column widths are derived once from the window width, and the first render can happen before the window has its real size, since macOS restores window state after creating the window. Every ratio then floors at the 30px minimum, and because the resize handler only ever recomputed the filename column, the other four stayed 30px for the rest of the session — unreadable, and far too small a target to drag or resize.

That is why reordering seemed to need a search first: with a real result set on screen the window had usually been touched, and the columns had recovered. The layout is now repaired as soon as a real width is known.

Credits

Cardinal was created by cardisoft and is MIT licensed. This fork continues that work; the search engine is theirs.

Cardinal 0.3.1

Choose a tag to compare

@franciscoxc franciscoxc released this 02 Aug 12:16

Column reordering never actually worked in 0.3.0. This fixes it, and adds the small things that make the search bar feel finished.

Download

Cardinal_0.3.1_aarch64.dmg — Apple silicon, macOS 12 or later.

Signed with a Developer ID and notarized by Apple, so it opens without Gatekeeper warnings.

SHA-256  abc2c41915dfa352c9dae703a9a22771a23c961c190050ebca23b44e3af72914

Fixed

Column reordering. Pressing a header showed a translucent copy of the title, the cursor stayed on "copy", and letting go did nothing. The cause was not the code: Tauri's webview claims drag-and-drop at the native level so the page can receive dropped files, and that swallows the events HTML5 dragging depends on. Reordering now runs on pointer events, and gets what the attribute could not — the column darkens, the columns shuffle under the pointer instead of jumping at the end, and Escape cancels.

Dragging a file out to Finder still works: it only needs the drag to start before handing off to the native plugin, and never waits for a drop inside the page.

Improved

  • A clear button on the search field, the "Contains" field, the file-type dropdown and "Search in".
  • "Search in" starts folded. A scope restored from a previous session narrows every search while being easy to miss, so it is no longer remembered.
  • The "Contains" placeholder reads "(search inside)".

Credits

Cardinal was created by cardisoft and is MIT licensed. This fork continues that work; the search engine is theirs.

Cardinal 0.3.0

Choose a tag to compare

@franciscoxc franciscoxc released this 02 Aug 11:44

The rest of the search comes up to the surface: the filters that used to be typed syntax are now controls in the bar, and the app can finally tell you whether you are running the latest build.

Download

Cardinal_0.3.0_aarch64.dmg — Apple silicon, macOS 12 or later.

Signed with a Developer ID and notarized by Apple, so it opens without Gatekeeper warnings. Open the DMG, drag Cardinal to Applications, and grant Full Disk Access when macOS asks.

SHA-256  24212e451b1a9d3ad421c6717d038798e3c37277732e4bd10490b0db0bb32a95

What's new

A "Contains" field, beside the one for names, for searching inside files. It writes content:"…" into the query — the same way the type dropdown writes type: — so the search bar still says exactly what is being searched.

The file-type dropdown got icons and got shorter. Document, PDF, Presentation and Spreadsheet are one "Document" entry now. It writes an OR of the four groups rather than changing what type:doc means.

"Search in" opens a folder picker. The folder icon used to fold the field away, which is not what an icon shaped like a folder promises. Folding moved to a chevron beside it, and the placeholder now names the default: "Search in… (whole disk)".

Columns can be reordered by dragging their titles, and the snippet column sits next to the file name. The order is remembered.

Check for Updates… in the Cardinal menu. It asks GitHub for the latest release, tells you where you stand, and offers the download page only when there is something newer. There is no check on launch and no background updater: Cardinal makes no network request you did not ask for.

The Help menu's updates entry pointed at the wrong project — the upstream repository's releases rather than this fork's. Fixed.

Also

  • The icon's sparkles are orange; the pale gold disappeared against light backgrounds.
  • A column order saved by an older version is repaired on read instead of trusted, so a column added later still appears.
  • tauri and @tauri-apps/api are back in step; the mismatch introduced by the dialog plugin blocked packaging.

Credits

Cardinal was created by cardisoft and is MIT licensed. This fork continues that work; the search engine is theirs. The generic parts of this release are offered back upstream in cardisoft/cardinal#226.

Cardinal 0.2.0

Choose a tag to compare

@franciscoxc franciscoxc released this 01 Aug 23:48

First release of this fork. Cardinal is an excellent search engine wrapped in an interface that hides it; this release starts pulling the power up to the surface.

Download

Cardinal_0.2.0_aarch64.dmg — Apple silicon, macOS 12 or later.

Signed with a Developer ID and notarized by Apple, so it opens without Gatekeeper warnings. Open the DMG, drag Cardinal to Applications, and grant Full Disk Access when macOS asks — Cardinal needs it to index and watch your files.

SHA-256  a07d3d03a38441364dad869cd8cdc278b0b5ac55c68dbfdf9c00d2a3454a39de

What's new

A file-type dropdown next to the search bar. Picking a type writes it into the query — type:image — instead of hiding in the control, so the search bar stays the single source of truth and the syntax is there to be learned. A query the dropdown cannot represent faithfully (a negated !type:, two of them, one inside a boolean group) reads as "Custom" and is left alone.

type:email. Covers .eml, .emlx, .emlxpart, .msg and .mbox, with mail and message as synonyms. Apple Mail's formats are the ones nobody finds by name.

Content searches show what they matched. A content: search now has a context column with the surrounding text from inside each file and the searched term highlighted.

"Folder scope" is now "Search in", in all 15 languages.

The search input has an accessible name, so screen readers can announce it. Thanks to @dkattan (#220).

Under the hood

  • Content snippets are extracted by the search engine itself, next to the matcher they mirror, sharing its chunked read and Rabin-Karp finder rather than a second implementation in the app.
  • Highlighted content terms come from the real query parser: !content: no longer highlights, and content:"Bearer " keeps its trailing space.
  • Result rows hydrate in parallel, so icon and snippet reads no longer queue behind each other.
  • The app now uses its own bundle identifier, com.franxc.cardinal, so it never collides with an upstream install on the same Mac.

Credits

Cardinal was created by cardisoft and is MIT licensed. This fork continues that work; the search engine is theirs.