Repository navigation
Fix duplicate analysis runs, model swapping, stale cloud overrides and OCR-fallback caching found in a live run - #106
Merged
Conversation
…OCR-fallback caching, folder cards, icons Found while watching a live run on an RTX 4050 (6 GB): - Discover: a run whose batch request is refused because this window's earlier batch is still running (Discover re-mounted mid-batch) now waits for it and reruns from the cache, instead of starting the per-file pool in parallel. That fallback analyzed the same files two or three times at once, showed duplicate notifications, kept the progress count low, restarted in a loop, and left no memory for the vision model. - Smart-folder watcher: files a user-started analysis is working on are deferred and re-checked afterwards (userAnalysisInFlight registry, marked by the batch and per-file analysis handlers). - Memory: on a GPU that cannot hold both, the embedding model loads on the CPU beside the resident text model (keepBeside) instead of evicting it and reloading the 7B text model for every file (~4-5 s per file). - Keyframe consent: overrides of deleted smart folders no longer count as a cloud Analysis route. - Image analysis: a text result that stands in for a failed vision step is not cached, so the next analysis tries vision again. - Target Smart Folders: long paths wrap inside the card; quoted descriptions are not shown in doubled quotes. - The sparkle icon is replaced everywhere with icons for what each place does.
This was referenced Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Found while watching a live dev run on an RTX 4050 Laptop GPU (6 GB, CUDA) with real files.
Fixes
CONCURRENCY_LIMIT). The new run used to treat that as a failure and start the per-file worker pool, so the same files were analyzed two or three times at once. In the live log that meant five restarts, a stuck model-load lock that was force-released, the vision model unable to start, and an image falling back to OCR. The run now waits for the earlier batch, then reruns and gets the finished files from the cache. A superseded or cancelled run stops. Refused attempts no longer send a cancel for a batch that never started. Seesrc/renderer/phases/discover/batchBusy.js.userAnalysisInFlightregistry is marked by the batch, document, image and media handlers. The smart-folder watcher defers a file that is in it and re-checks it 15 s later against the analysis history._loadOptionsBesideTextplus the memory manager'skeepBeside), without the CPU warning badge. The existing rule that an idle resident is evicted stays unchanged.sparklestolightbulb.Verified
discoverBatchBusy(12),embeddingBesideText(11),SmartFolderWatcher.userAnalysisDefer(7), plus additions toProcessingLimitsSection.frameConsentandimageAnalysis.behavior. The new OCR-fallback assertion fails without the fix.typecheckandtypecheck:jsare clean. The checkjs floor is raised to 491.MEDIA_NO_AUDIO_STREAM.Not covered