Store now indexes every Save into the upload_files table via SetRepo. DB failures are logged as warnings and do not fail the upload because .meta.json remains the source of truth and startup backfill recovers. Add Store.Backfill to walk Root at startup and insert index rows for any pre-existing .meta.json sidecars, swallowing duplicate-key races. The upload_file MCP Tool now writes an audit_log entry on success. Tests cover dual-write args, repo-error non-failure, and backfill skipping existing rows. Co-Authored-By: Claude <noreply@anthropic.com>
27 lines
650 B
Go
27 lines
650 B
Go
package tools
|
|
|
|
import (
|
|
"log/slog"
|
|
"time"
|
|
|
|
"spark-mcp-go/internal/analyzer"
|
|
"spark-mcp-go/internal/audit"
|
|
"spark-mcp-go/internal/httpclient"
|
|
"spark-mcp-go/internal/storage"
|
|
"spark-mcp-go/internal/uploads"
|
|
)
|
|
|
|
// Deps bundles the dependencies shared by all MCP Tool handlers.
|
|
type Deps struct {
|
|
Logger *slog.Logger
|
|
AuditRepo *audit.Repo
|
|
ClusterRepo *storage.ClusterRepo
|
|
SparkSubmitTimeout time.Duration
|
|
HTTPClient *httpclient.Client
|
|
MaxResponseBytes int64
|
|
DataDir string // upload_file writes to DataDir/uploads
|
|
UploadStore uploads.Store
|
|
|
|
AnalyzerThresholds analyzer.Thresholds
|
|
}
|