Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
53e16f9
enable AVIF image conversion
ExtraBinoss Jul 27, 2026
e1bd174
index AVIF images and expose asset preparation
ExtraBinoss Jul 27, 2026
97a525e
expose prepared assets to conversion
ExtraBinoss Jul 27, 2026
0f5206a
persist converted image relationships
ExtraBinoss Jul 27, 2026
adb164d
register derivative database support
ExtraBinoss Jul 27, 2026
5bb1103
add converted image relationship schema
ExtraBinoss Jul 27, 2026
4046c39
add native multi-format image conversion
ExtraBinoss Jul 27, 2026
5078f7b
register image conversion command
ExtraBinoss Jul 27, 2026
932ca9b
add image conversion frontend types
ExtraBinoss Jul 27, 2026
cc0931b
expose image conversion through Tauri API
ExtraBinoss Jul 27, 2026
16358e9
add Spotlight conversion workflow
ExtraBinoss Jul 27, 2026
067b94f
add conversion action to Spotlight results
ExtraBinoss Jul 27, 2026
f9b95c5
translate Spotlight conversion in English
ExtraBinoss Jul 27, 2026
4d71aea
translate Spotlight conversion in French
ExtraBinoss Jul 27, 2026
227035c
translate Spotlight conversion in Spanish
ExtraBinoss Jul 27, 2026
5257f4c
translate Spotlight conversion in German
ExtraBinoss Jul 27, 2026
cdbbe3b
translate Spotlight conversion in Italian
ExtraBinoss Jul 27, 2026
cf68554
translate Spotlight conversion in Portuguese
ExtraBinoss Jul 27, 2026
4eb23d8
translate Spotlight conversion in Japanese
ExtraBinoss Jul 27, 2026
c996705
translate Spotlight conversion in Chinese
ExtraBinoss Jul 27, 2026
58ad620
translate Spotlight conversion in Arabic
ExtraBinoss Jul 27, 2026
9a743b3
translate Spotlight conversion in Russian
ExtraBinoss Jul 27, 2026
5b05617
read source embeddings directly for conversion reuse
ExtraBinoss Jul 27, 2026
31d343d
fix conversion shortcut priority
ExtraBinoss Jul 27, 2026
fd0affb
reuse persisted AI embeddings during conversion
ExtraBinoss Jul 27, 2026
ae45894
ci: validate Spotlight conversion branch
ExtraBinoss Jul 27, 2026
4f789e7
ci: allow feature branch validation PR
ExtraBinoss Jul 27, 2026
fca1b3c
style: format Spotlight conversion Rust files
ExtraBinoss Jul 27, 2026
993ff99
ci: capture temporary typecheck diagnostics
ExtraBinoss Jul 27, 2026
2b465ca
ci: require manual [RELEASE] confirmation by ExtraBinoss
ExtraBinoss Jul 27, 2026
575cfa9
ci: remove temporary typecheck workflow
ExtraBinoss Jul 27, 2026
fec72d8
add image and banner for the readme, now it looks good!
ExtraBinoss Jul 27, 2026
9562334
Fix conversion progress event payload
ExtraBinoss Jul 27, 2026
5963416
Merge branch 'agent/spotlight-image-conversion' of github.com:ExtraBi…
ExtraBinoss Jul 27, 2026
9bfff84
Redesign Spotlight conversion workflow
ExtraBinoss Jul 27, 2026
6832655
Keep converted images in Spotlight results
ExtraBinoss Jul 27, 2026
7eadbc2
Add development search IPC diagnostics
ExtraBinoss Jul 28, 2026
0adc23b
Profile Spotlight semantic query round trips
ExtraBinoss Jul 28, 2026
ffcb048
Profile semantic provider execution
ExtraBinoss Jul 28, 2026
17bb28c
Trace Rust search command latency
ExtraBinoss Jul 28, 2026
fa298e2
Add staged native search diagnostics
ExtraBinoss Jul 28, 2026
2dc9106
Profile vector search stages in development
ExtraBinoss Jul 28, 2026
2e6e1d7
Correlate vector diagnostics with search requests
ExtraBinoss Jul 28, 2026
4a99606
Allow correlated search diagnostics
ExtraBinoss Jul 28, 2026
e77ad96
Reuse Spotlight search diagnostic identifiers
ExtraBinoss Jul 28, 2026
0cd53c5
Trace Spotlight search end to end
ExtraBinoss Jul 28, 2026
c58d0fa
Keep result logging outside measured search path
ExtraBinoss Jul 28, 2026
e00a32b
Keep search diagnostics debug only
ExtraBinoss Jul 28, 2026
d763d8b
Keep vector diagnostics out of release builds
ExtraBinoss Jul 28, 2026
aace4b0
Avoid release-only diagnostic warnings
ExtraBinoss Jul 28, 2026
19d3987
Silence release diagnostic parameter warnings
ExtraBinoss Jul 28, 2026
cff38bf
Avoid diagnostic release argument overhead
ExtraBinoss Jul 28, 2026
da168bc
Avoid release diagnostic argument warnings
ExtraBinoss Jul 28, 2026
2607b0f
Avoid release search diagnostic argument warnings
ExtraBinoss Jul 28, 2026
6cf328f
Preserve correlated Tauri search argument
ExtraBinoss Jul 28, 2026
7a1b7c2
Stabilize correlated Spotlight timing anchors
ExtraBinoss Jul 28, 2026
89fd666
Keep semantic provider logging development only
ExtraBinoss Jul 28, 2026
4cbf862
Remove search diagnostic overhead from release
ExtraBinoss Jul 28, 2026
29864e8
Remove semantic timing overhead from release
ExtraBinoss Jul 28, 2026
8e57bd6
Skip Spotlight diagnostic IDs outside development
ExtraBinoss Jul 28, 2026
8ae0164
Avoid semantic provider timer setup in release
ExtraBinoss Jul 28, 2026
21b1d75
Keep semantic request IDs development only
ExtraBinoss Jul 28, 2026
a2f7f15
Export search diagnostics entrypoint
ExtraBinoss Jul 28, 2026
435d567
feat: make Spotlight search timing configurable
ExtraBinoss Jul 28, 2026
d12445f
perf: split Spotlight lexical and semantic debounce
ExtraBinoss Jul 28, 2026
b62e66d
add Spotlight search pagination state
ExtraBinoss Jul 28, 2026
ffade5b
add paged search response type
ExtraBinoss Jul 28, 2026
917cbad
support paged Spotlight search responses
ExtraBinoss Jul 28, 2026
a06739c
show total Spotlight results and load pages on scroll
ExtraBinoss Jul 28, 2026
ae74157
add paged search model
ExtraBinoss Jul 28, 2026
263943f
count paged search results
ExtraBinoss Jul 28, 2026
582a97d
paginate ranked search results
ExtraBinoss Jul 28, 2026
7e4a30d
expose paged search command
ExtraBinoss Jul 28, 2026
e5a59c0
export paged search entrypoint
ExtraBinoss Jul 28, 2026
71c8ad4
register paged search command
ExtraBinoss Jul 28, 2026
5c0c92b
preserve fused scores in paged search logs
ExtraBinoss Jul 28, 2026
af34ccd
export only used search entrypoints
ExtraBinoss Jul 28, 2026
bdff321
remove obsolete search diagnostics wrapper
ExtraBinoss Jul 28, 2026
6fc65d6
remove unused legacy search entrypoint
ExtraBinoss Jul 28, 2026
2824581
export paged search only
ExtraBinoss Jul 28, 2026
53dcda8
Guard converter keyboard shortcuts
ExtraBinoss Jul 28, 2026
19e2c68
Install converter keyboard guard
ExtraBinoss Jul 28, 2026
fdcecae
move Spotlight actions into bottom dock
ExtraBinoss Jul 28, 2026
f883143
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
7db2995
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
edcc748
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
46282ff
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
190c9b1
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
fe3f051
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
3759580
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
41fa330
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
74ba1fc
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
ff3aeb2
translate Spotlight action dock labels
ExtraBinoss Jul 28, 2026
cb3d93e
guard Spotlight action popover shortcuts
ExtraBinoss Jul 28, 2026
b28daaf
extend search requests for visual queries
ExtraBinoss Jul 28, 2026
f6b54f1
route pure visual searches through native search
ExtraBinoss Jul 28, 2026
639d7a4
expose vector counts for visual search
ExtraBinoss Jul 28, 2026
e94e69c
add paginated pure visual similarity search
ExtraBinoss Jul 28, 2026
6d4de29
expose stored image embeddings for similarity search
ExtraBinoss Jul 28, 2026
e4e4769
register visual search embedding command
ExtraBinoss Jul 28, 2026
2e4290a
add shared visual search types
ExtraBinoss Jul 28, 2026
8946759
add shared visual search session
ExtraBinoss Jul 28, 2026
0860c54
share one MobileCLIP vision worker across search features
ExtraBinoss Jul 28, 2026
35bfd96
prepare external images for visual search
ExtraBinoss Jul 28, 2026
a90bc32
register external visual query preparation
ExtraBinoss Jul 28, 2026
4309cc0
encode visual search sources with MobileCLIP
ExtraBinoss Jul 28, 2026
c927e15
route both search surfaces through visual search sessions
ExtraBinoss Jul 28, 2026
2bc2575
add the shared Imagyx search input
ExtraBinoss Jul 28, 2026
ee66281
use the shared search input in the main app
ExtraBinoss Jul 28, 2026
efc83d9
use the shared search input in Spotlight
ExtraBinoss Jul 28, 2026
c80b2dd
add find similar to Spotlight actions
ExtraBinoss Jul 28, 2026
01bd010
add find similar context menu to the main grid
ExtraBinoss Jul 28, 2026
6e34ca8
keep visual search pagination bound to its session
ExtraBinoss Jul 28, 2026
63921eb
preserve visual session identity across pagination
ExtraBinoss Jul 28, 2026
5f3b0bf
guard visual search Escape before Spotlight closes
ExtraBinoss Jul 28, 2026
9c602a1
route visual sessions around text inference
ExtraBinoss Jul 28, 2026
942c9a4
polish shared visual search input interactions
ExtraBinoss Jul 28, 2026
7403106
translate visual search in French
ExtraBinoss Jul 28, 2026
00b5abc
translate visual search in English
ExtraBinoss Jul 28, 2026
c2f5297
translate visual search in German
ExtraBinoss Jul 28, 2026
b46ca50
translate visual search in Spanish
ExtraBinoss Jul 28, 2026
0f68cdf
translate visual search in Italian
ExtraBinoss Jul 28, 2026
5b69cc1
translate visual search in Portuguese
ExtraBinoss Jul 28, 2026
40d4bf3
translate visual search in Russian
ExtraBinoss Jul 28, 2026
99afb33
translate visual search in Chinese
ExtraBinoss Jul 28, 2026
a4a9d0c
translate visual search in Japanese
ExtraBinoss Jul 28, 2026
ed3b239
translate visual search in Arabic
ExtraBinoss Jul 28, 2026
e3d639d
avoid duplicate semantic passes for visual queries
ExtraBinoss Jul 28, 2026
1e4b88b
unify main app search pages with Spotlight
ExtraBinoss Jul 28, 2026
4c6cfea
align main search timing and totals with Spotlight
ExtraBinoss Jul 28, 2026
bbf5db0
render external query previews from decoded pixels
ExtraBinoss Jul 28, 2026
d4d8689
make visual source exclusion explicit in Rust
ExtraBinoss Jul 28, 2026
72c8c92
centralize search timing and visual query routing
ExtraBinoss Jul 28, 2026
db0c953
keep visual encoding separate from shared search orchestration
ExtraBinoss Jul 28, 2026
3421129
install the shared search engine in every surface
ExtraBinoss Jul 28, 2026
e676930
complete shared search keyboard and cancellation behavior
ExtraBinoss Jul 28, 2026
08a4cd4
make visual search sessions race safe
ExtraBinoss Jul 28, 2026
02c7a14
bind visual inference results to the latest session
ExtraBinoss Jul 28, 2026
e6bd152
track native dialog focus state
ExtraBinoss Jul 28, 2026
413d6bf
keep Spotlight open for native image picker
ExtraBinoss Jul 28, 2026
34476fa
guard native image picker focus transitions
ExtraBinoss Jul 28, 2026
f47c541
install shared native dialog guard
ExtraBinoss Jul 28, 2026
f3e964b
fallback to persisted embedding for similar search
ExtraBinoss Jul 28, 2026
ee5fe7e
release native dialog guard safely
ExtraBinoss Jul 28, 2026
5144c6e
keep visual search errors localized
ExtraBinoss Jul 28, 2026
ba5094e
Refine Spotlight action dock and similar shortcut
ExtraBinoss Jul 28, 2026
c4b90e5
Restore visual results when Spotlight reopens
ExtraBinoss Jul 28, 2026
8fc263c
Strengthen full-width Spotlight dock shadow
ExtraBinoss Jul 28, 2026
17cba85
Tighten Spotlight action dock around controls
ExtraBinoss Jul 28, 2026
84d1d23
Use shared themed buttons for Spotlight actions
ExtraBinoss Jul 28, 2026
c760ef8
add spotlight result with the right open in imagyx
ExtraBinoss Jul 28, 2026
36edb17
Merge branch 'agent/spotlight-image-conversion' of github.com:ExtraBi…
ExtraBinoss Jul 28, 2026
28f3c07
Theme pressed shared button states
ExtraBinoss Jul 28, 2026
3ead47c
add spotlight search and thumbnails and moving border less bloat when…
ExtraBinoss Jul 28, 2026
b6184fb
Merge branch 'agent/spotlight-image-conversion' of github.com:ExtraBi…
ExtraBinoss Jul 28, 2026
673c041
image preview dialog and spotlight search fixed with ctrl+e and space…
ExtraBinoss Jul 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,19 @@ name: CI

on:
workflow_dispatch:
inputs:
release_marker:
description: 'Type [RELEASE] to run the release CI'
required: true
type: string

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
frontend:
if: github.actor == 'ExtraBinoss' && inputs.release_marker == '[RELEASE]'
name: Vue / TypeScript
runs-on: ubuntu-24.04
timeout-minutes: 15
Expand All @@ -27,6 +33,7 @@ jobs:
run: npm run build

rust:
if: github.actor == 'ExtraBinoss' && inputs.release_marker == '[RELEASE]'
name: Rust (${{ matrix.os }})
strategy:
fail-fast: false
Expand Down
22 changes: 8 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,17 @@

<br />

<table>
<tr>
<td align="center">
<strong>Banner placeholder</strong><br />
Replace this block with <code>docs/assets/imagyx-banner.webp</code><br />
Expected size: <strong>1600 × 800 px</strong> · 2:1 ratio · WebP or PNG<br />
Keep important content inside the centered 1200 × 600 px safe area.
</td>
</tr>
</table>
<p align="center">
<img src="./docs/assets/imagyx-banner.png" alt="Imagyx banner" width="100%" />
</p>

## Demo

See how Imagyx lets you search your local image library instantly using natural language.

<!--
When the banner is ready, replace the placeholder table with:
<p align="center">
<img src="./docs/assets/imagyx-banner.webp" alt="Imagyx natural-language image search" width="100%" />
<video src="./docs/assets/IMAGYX-demo.webm" controls width="100%" autoplay loop muted></video>
</p>
-->

<br />

Expand Down
Binary file added docs/assets/IMAGYX-demo.webm
Binary file not shown.
Binary file added docs/assets/imagyx-banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ dirs = "6"
walkdir = "2.5"
notify = "8"
rayon = "1.11"
image = { version = "0.25.10", default-features = false, features = ["jpeg", "png", "webp", "gif", "bmp", "tiff", "ico", "rayon"] }
image = { version = "0.25.10", default-features = false, features = ["avif", "jpeg", "png", "webp", "gif", "bmp", "tiff", "ico", "rayon"] }
arboard = "3"
parking_lot = "0.12"
chrono = { version = "0.4", features = ["serde"] }
Expand Down
Loading