From c46516884abf3d39c71d00a48fe6d8b53d765ece Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Feb 2026 16:23:04 +0000 Subject: [PATCH 1/3] =?UTF-8?q?chore:=20fmt.Errorf(static)=20=E2=86=92=20e?= =?UTF-8?q?rrors.New?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- calibrate.go | 3 ++- reversal/reference.go | 6 +++--- service.go | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/calibrate.go b/calibrate.go index 0ed9091..9babeca 100644 --- a/calibrate.go +++ b/calibrate.go @@ -2,6 +2,7 @@ package i18n import ( "context" + "errors" "fmt" "time" @@ -48,7 +49,7 @@ func CalibrateDomains(ctx context.Context, modelA, modelB inference.TextModel, samples []CalibrationSample, opts ...ClassifyOption) (*CalibrationStats, error) { if len(samples) == 0 { - return nil, fmt.Errorf("calibrate: empty sample set") + return nil, errors.New("calibrate: empty sample set") } cfg := defaultClassifyConfig() diff --git a/reversal/reference.go b/reversal/reference.go index e5e4d03..2b8e95c 100644 --- a/reversal/reference.go +++ b/reversal/reference.go @@ -1,7 +1,7 @@ package reversal import ( - "fmt" + "errors" "math" "sort" ) @@ -45,7 +45,7 @@ type ImprintClassification struct { // per unique domain label. func BuildReferences(tokeniser *Tokeniser, samples []ClassifiedText) (*ReferenceSet, error) { if len(samples) == 0 { - return nil, fmt.Errorf("empty sample set") + return nil, errors.New("empty sample set") } // Group imprints by domain. @@ -60,7 +60,7 @@ func BuildReferences(tokeniser *Tokeniser, samples []ClassifiedText) (*Reference } if len(grouped) == 0 { - return nil, fmt.Errorf("no samples with domain labels") + return nil, errors.New("no samples with domain labels") } rs := &ReferenceSet{Domains: make(map[string]*ReferenceDistribution)} diff --git a/service.go b/service.go index 17df471..67adde9 100644 --- a/service.go +++ b/service.go @@ -3,6 +3,7 @@ package i18n import ( "embed" "encoding/json" + "errors" "fmt" "io/fs" "maps" @@ -97,7 +98,7 @@ func NewWithLoader(loader Loader, opts ...Option) (*Service, error) { langs := loader.Languages() if len(langs) == 0 { - return nil, fmt.Errorf("no languages available from loader") + return nil, errors.New("no languages available from loader") } for _, lang := range langs { @@ -181,7 +182,7 @@ func (s *Service) SetLanguage(lang string) error { return fmt.Errorf("invalid language tag %q: %w", lang, err) } if len(s.availableLangs) == 0 { - return fmt.Errorf("no languages available") + return errors.New("no languages available") } matcher := language.NewMatcher(s.availableLangs) bestMatch, _, confidence := matcher.Match(requestedLang) -- 2.45.3 From c8a23f32b9bd4eb3f2b70df1cffd866d21ac12db Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Feb 2026 16:23:47 +0000 Subject: [PATCH 2/3] =?UTF-8?q?chore:=20sort.Slice=20=E2=86=92=20slices.So?= =?UTF-8?q?rtFunc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- reversal/reference.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/reversal/reference.go b/reversal/reference.go index 2b8e95c..82c9731 100644 --- a/reversal/reference.go +++ b/reversal/reference.go @@ -3,6 +3,7 @@ package reversal import ( "errors" "math" + "slices" "sort" ) @@ -105,7 +106,15 @@ func (rs *ReferenceSet) Classify(imprint GrammarImprint) ImprintClassification { for d, m := range distances { ranked = append(ranked, scored{d, m.CosineSimilarity}) } - sort.Slice(ranked, func(i, j int) bool { return ranked[i].sim > ranked[j].sim }) + slices.SortFunc(ranked, func(a, b scored) int { + if a.sim > b.sim { + return -1 + } + if a.sim < b.sim { + return 1 + } + return 0 + }) result := ImprintClassification{Distances: distances} if len(ranked) > 0 { -- 2.45.3 From f4885d3e5e36f322f700d36b779a054c1b647905 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Feb 2026 16:24:04 +0000 Subject: [PATCH 3/3] chore: use slices.Sorted(maps.Keys()) for ordered iteration Co-Authored-By: Claude Opus 4.6 --- reversal/reference.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/reversal/reference.go b/reversal/reference.go index 82c9731..3baf514 100644 --- a/reversal/reference.go +++ b/reversal/reference.go @@ -2,9 +2,9 @@ package reversal import ( "errors" + "maps" "math" "slices" - "sort" ) // ClassifiedText is a text sample with a domain label (from 1B model or ground truth). @@ -130,12 +130,7 @@ func (rs *ReferenceSet) Classify(imprint GrammarImprint) ImprintClassification { // DomainNames returns sorted domain names in the reference set. func (rs *ReferenceSet) DomainNames() []string { - names := make([]string, 0, len(rs.Domains)) - for d := range rs.Domains { - names = append(names, d) - } - sort.Strings(names) - return names + return slices.Sorted(maps.Keys(rs.Domains)) } // computeCentroid averages imprints into a single centroid. -- 2.45.3