This commit is contained in:
@@ -341,6 +341,17 @@
|
|||||||
- [ ] full browser-level validation was not fully reproducible in this environment
|
- [ ] full browser-level validation was not fully reproducible in this environment
|
||||||
|
|
||||||
## Recent Change Log
|
## Recent Change Log
|
||||||
|
- Date: `2026-03-16`
|
||||||
|
- What changed:
|
||||||
|
- Reduced the heaviest search-stage caps slightly: fewer query variants per request, smaller per-source result caps, lower enrichment scope, and a bounded Gemini candidate set.
|
||||||
|
- Why it changed:
|
||||||
|
- The widened search configuration was pushing the request past the reverse-proxy timeout and surfacing `504 Gateway Time-out`.
|
||||||
|
- How it was verified:
|
||||||
|
- `go test ./...`
|
||||||
|
- `bash scripts/selftest.sh`
|
||||||
|
- What is still risky or incomplete:
|
||||||
|
- Search coverage is still broader than the original baseline, but there is now an explicit tradeoff between result volume and request latency.
|
||||||
|
|
||||||
- Date: `2026-03-16`
|
- Date: `2026-03-16`
|
||||||
- What changed:
|
- What changed:
|
||||||
- Increased collector result caps and widened source-specific search query templates for Envato, Artgrid, and Google Video.
|
- Increased collector result caps and widened source-specific search query templates for Envato, Artgrid, and Google Video.
|
||||||
|
|||||||
@@ -64,9 +64,9 @@ func (s *SearchService) SearchMedia(queries []string, enabledPlatforms map[strin
|
|||||||
results := make([]SearchResult, 0, 90)
|
results := make([]SearchResult, 0, 90)
|
||||||
var lastErr error
|
var lastErr error
|
||||||
|
|
||||||
baseQueries := limitQueries(queries, 10)
|
baseQueries := limitQueries(queries, 8)
|
||||||
shuffleStrings(baseQueries)
|
shuffleStrings(baseQueries)
|
||||||
primaryQueries := baseQueries[:minInt(len(baseQueries), 5)]
|
primaryQueries := baseQueries[:minInt(len(baseQueries), 4)]
|
||||||
runSearchPass := func(bases []string, onlyMissing bool) {
|
runSearchPass := func(bases []string, onlyMissing bool) {
|
||||||
for _, base := range bases {
|
for _, base := range bases {
|
||||||
base = strings.TrimSpace(base)
|
base = strings.TrimSpace(base)
|
||||||
@@ -127,7 +127,7 @@ func (s *SearchService) SearchMedia(queries []string, enabledPlatforms map[strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SearchService) EnrichResults(results []SearchResult) []SearchResult {
|
func (s *SearchService) EnrichResults(results []SearchResult) []SearchResult {
|
||||||
limit := minInt(len(results), 18)
|
limit := minInt(len(results), 12)
|
||||||
if limit == 0 {
|
if limit == 0 {
|
||||||
return results
|
return results
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func RankSearchResults(query string, results []SearchResult) []SearchResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GeminiCandidateLimit(total int) int {
|
func GeminiCandidateLimit(total int) int {
|
||||||
return total
|
return min(total, 12)
|
||||||
}
|
}
|
||||||
|
|
||||||
func EvaluateAllCandidatesWithGemini(service *GeminiService, query string, ranked []SearchResult) ([]AIRecommendation, GeminiBatchStats, error) {
|
func EvaluateAllCandidatesWithGemini(service *GeminiService, query string, ranked []SearchResult) ([]AIRecommendation, GeminiBatchStats, error) {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ type searchCollector interface {
|
|||||||
type envatoCollector struct{}
|
type envatoCollector struct{}
|
||||||
|
|
||||||
func (envatoCollector) Name() string { return "Envato" }
|
func (envatoCollector) Name() string { return "Envato" }
|
||||||
func (envatoCollector) MaxResults() int { return 14 }
|
func (envatoCollector) MaxResults() int { return 10 }
|
||||||
func (envatoCollector) Enabled(enabledPlatforms map[string]bool) bool {
|
func (envatoCollector) Enabled(enabledPlatforms map[string]bool) bool {
|
||||||
return len(enabledPlatforms) == 0 || enabledPlatforms["envato"]
|
return len(enabledPlatforms) == 0 || enabledPlatforms["envato"]
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@ func (envatoCollector) Enrich(searcher *SearchService, result SearchResult) Sear
|
|||||||
type artgridCollector struct{}
|
type artgridCollector struct{}
|
||||||
|
|
||||||
func (artgridCollector) Name() string { return "Artgrid" }
|
func (artgridCollector) Name() string { return "Artgrid" }
|
||||||
func (artgridCollector) MaxResults() int { return 14 }
|
func (artgridCollector) MaxResults() int { return 10 }
|
||||||
func (artgridCollector) Enabled(enabledPlatforms map[string]bool) bool {
|
func (artgridCollector) Enabled(enabledPlatforms map[string]bool) bool {
|
||||||
return len(enabledPlatforms) == 0 || enabledPlatforms["artgrid"]
|
return len(enabledPlatforms) == 0 || enabledPlatforms["artgrid"]
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@ func (artgridCollector) Enrich(searcher *SearchService, result SearchResult) Sea
|
|||||||
type googleVideoCollector struct{}
|
type googleVideoCollector struct{}
|
||||||
|
|
||||||
func (googleVideoCollector) Name() string { return "Google Video" }
|
func (googleVideoCollector) Name() string { return "Google Video" }
|
||||||
func (googleVideoCollector) MaxResults() int { return 10 }
|
func (googleVideoCollector) MaxResults() int { return 8 }
|
||||||
func (googleVideoCollector) Enabled(enabledPlatforms map[string]bool) bool {
|
func (googleVideoCollector) Enabled(enabledPlatforms map[string]bool) bool {
|
||||||
return len(enabledPlatforms) == 0 || enabledPlatforms["google video"]
|
return len(enabledPlatforms) == 0 || enabledPlatforms["google video"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user