22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/rails_mcp_code_search/tools/reindex_tool.rb', line 22
def self.call(server_context:, full: nil)
runtime = runtime_for(server_context:)
full = full == true
if full
runtime.worker.enqueue(:full_index)
runtime.worker.increment_reindex_count
estimated = runtime.indexer.discover_files.size rescue 0
text_response({
status: "reindex_started",
mode: "full",
estimated_files: estimated
})
else
changed = runtime.indexer.changed_files
if changed.empty?
text_response({ status: "no_changes", mode: "incremental", changed_files: 0 })
else
runtime.worker.enqueue(:index_files, payload: changed)
runtime.worker.increment_reindex_count
text_response({ status: "reindex_started", mode: "incremental", changed_files: changed.size })
end
end
rescue => e
error_response(error: "reindex_error", message: e.message, recoverable: true)
end
|