Repository navigation
feat: let admins review and retry vector index tasks across the platform - #852
Merged
Merged
Conversation
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.
Summary
Closes #848. Admins could see vector index counts but could not act on pending or failed files without re-running the whole index. Investigating the report turned up several defects behind the numbers:
pendingcounted everynonefile, including audio, video and images the current config cannot vectorize, so it never reached zero.processingby a restart were only recovered when their owner opened the file list. Files leftqueuedby a lost queue message were never recovered.Admin task management
GET /admin/settings/embedding/taskslists files per bucket (ready,pending,failed,stale,empty,unsupported) across the platform, paginated and searchable. Each item shows owner, MIME type, size, status, failure reason, whether it is stalled, and whether it can be retried, with the reason when it cannot.POST /admin/settings/embedding/tasks/retryretries files across users through the existing recoverable queue. Jobs stay owned by the file owner, and the action is audited.embedding.reindex_in_progressinstead of reporting "0 submitted".DialogHeightTransitionanduseLoadMoreSentinel.Accurate counts and stall recovery
COUNTqueries.pendingCountno longer includes unsupported files (newunsupportedCount) or files whose processing failed (now counted asfailed).stalledCount,activeCount,reindexRunning.processingfor more than 6 minutes as failed, so they can be retried. This replaces the write that ran per user on the file list read path.embedding.JobTimeout). Targeted jobs previously had no cap.queuedfor more than 30 minutes count as stalled and can be resubmitted.Files without text are reprocessed through the pipeline
queued.include_empty=true.Also included
The icon-only actions in the file header (vectorize / update index, open, download, delete) now use the shared
Tooltip, shown above the button like the chat message actions, instead of the nativetitleattribute.Change type
Affected areas
Verification
make -C backend lint,go test ./...,go test -race(embedding, processing, settings)go buildwithnopostgres, withnoredis,nos3,noswagger, and with all four tags combinedpnpm --filter @deeix/web check,pnpm api:checkScreenshots, API examples, or logs
Configuration, migration, and compatibility notes
EmbeddingIndexStatusResponse:pendingCountno longer includes unsupported files or processing failures. New fields:stalledCount,activeCount,unsupportedCount,reindexRunning.POST /admin/settings/embedding/reindexreturns 409 while a rebuild is running. Withinclude_empty=true, no-text files are now re-extracted through the pipeline.embedding.reindex_in_progress, added to the zh-CN and en-USerrors.json. Swagger and@deeix/api-contractare regenerated.Documentation
Security and privacy
Checklist
.pycfiles,.envfiles, and local storage data are not committed.