111b952 fix(ml): load SigLIP image-only processor — embedder.py switches AutoProcessor.from_pretrained() → SiglipImageProcessor.from_pretrained(). FC's embedder only does image inference; the full AutoProcessor was pulling in SiglipTokenizer which requires sentencepiece at import time, causing the ml-worker to crash before doing any work. Image-only loader skips the tokenizer entirely. No new deps.
Settings tabs strip is now position: sticky; top: 64px so it stays parked under the AppShell TopNav while content scrolls.
Import-tab layout reorders to Trigger → Tasks → Filters so hit/miss feedback sits directly under the buttons.
Store toast wording adapts per mode; task list re-fetches 2s after trigger.
dc3bce7 chore(ext): bump extension to 1.0.1 — first sign-and-publish trigger for the browser extension. Workflow signs the XPI on the merge-to-main run and commits it back under frontend/public/extension/. Operator-verified all three required secrets (MOZILLA_AMO_JWT_KEY, MOZILLA_AMO_JWT_SECRET, RELEASE_TOKEN) are configured.
Verification post-merge
Rebuild ml-worker image, restart, fire a tag_and_embed against any image — should no longer throw the SentencePiece ImportError.
Settings → Import: Deep scan button present, tabs stick to top of viewport while scrolling the Maintenance panel.
Extension workflow on main: sign-and-publish job lands a frontend/public/extension/fabledcurator-1.0.1.xpi side-commit. Release tag is cut AFTER that lands so the v26.05.25.3 image carries the XPI.
## Summary
Three commits on dev:
- **`111b952` fix(ml): load SigLIP image-only processor** — `embedder.py` switches `AutoProcessor.from_pretrained()` → `SiglipImageProcessor.from_pretrained()`. FC's embedder only does image inference; the full AutoProcessor was pulling in `SiglipTokenizer` which requires `sentencepiece` at import time, causing the ml-worker to crash before doing any work. Image-only loader skips the tokenizer entirely. No new deps.
- **`f657582` feat(import-ui): deep scan button + sticky tabs + tasks-above-filters + Scanning-undefined fix**
- Add **Deep scan** button (backend already accepted `mode: 'deep'` for phash backfill chaining).
- `/api/import/status` now returns `source_path` + `scan_mode` (fixes "Scanning undefined —" banner).
- Settings tabs strip is now `position: sticky; top: 64px` so it stays parked under the AppShell TopNav while content scrolls.
- Import-tab layout reorders to **Trigger → Tasks → Filters** so hit/miss feedback sits directly under the buttons.
- Store toast wording adapts per mode; task list re-fetches 2s after trigger.
- **`dc3bce7` chore(ext): bump extension to 1.0.1** — first sign-and-publish trigger for the browser extension. Workflow signs the XPI on the merge-to-main run and commits it back under `frontend/public/extension/`. Operator-verified all three required secrets (`MOZILLA_AMO_JWT_KEY`, `MOZILLA_AMO_JWT_SECRET`, `RELEASE_TOKEN`) are configured.
## Verification post-merge
- Rebuild ml-worker image, restart, fire a `tag_and_embed` against any image — should no longer throw the SentencePiece ImportError.
- Settings → Import: Deep scan button present, tabs stick to top of viewport while scrolling the Maintenance panel.
- Extension workflow on main: sign-and-publish job lands a `frontend/public/extension/fabledcurator-1.0.1.xpi` side-commit. Release tag is cut AFTER that lands so the v26.05.25.3 image carries the XPI.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Three commits on dev:
111b952fix(ml): load SigLIP image-only processor —embedder.pyswitchesAutoProcessor.from_pretrained()→SiglipImageProcessor.from_pretrained(). FC's embedder only does image inference; the full AutoProcessor was pulling inSiglipTokenizerwhich requiressentencepieceat import time, causing the ml-worker to crash before doing any work. Image-only loader skips the tokenizer entirely. No new deps.f657582feat(import-ui): deep scan button + sticky tabs + tasks-above-filters + Scanning-undefined fixmode: 'deep'for phash backfill chaining)./api/import/statusnow returnssource_path+scan_mode(fixes "Scanning undefined —" banner).position: sticky; top: 64pxso it stays parked under the AppShell TopNav while content scrolls.dc3bce7chore(ext): bump extension to 1.0.1 — first sign-and-publish trigger for the browser extension. Workflow signs the XPI on the merge-to-main run and commits it back underfrontend/public/extension/. Operator-verified all three required secrets (MOZILLA_AMO_JWT_KEY,MOZILLA_AMO_JWT_SECRET,RELEASE_TOKEN) are configured.Verification post-merge
tag_and_embedagainst any image — should no longer throw the SentencePiece ImportError.frontend/public/extension/fabledcurator-1.0.1.xpiside-commit. Release tag is cut AFTER that lands so the v26.05.25.3 image carries the XPI.🤖 Generated with Claude Code