Core: duplicated leaf helpers — label sanitization and host matching
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 45/100
Direzione di ricerca
Start with the three identical label helpers (truncateLabel, sanitizeLabel, hasControlRunes) in core/cost/usage/usage.go and core/cost/ledger/row.go, plus the weaker variant in cmd/agentop/tui/usage_render.go, and pipeline.IsControlRune. Then compare the four matchesAnyHost copies in cpex/plugin.go, ibac/plugin.go, lineage/plugin.go and sparc/collect.go. Done means one shared sanitize/truncate helper and one hostmatch helper in core/plugins/internal, with existing tests still passing and the control-rune behaviour unchanged.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What
Two leaf-helper families are copy-pasted across packages:
Label sanitization/truncation — 3 copies. truncateLabel, sanitizeLabel, hasControlRunes have byte-identical bodies in core/cost/usage/usage.go:1569-1662 and core/cost/ledger/row.go:210-304 (~45 lines each; only the comments differ). cmd/agentop/tui/usage_render.go:687 has a third, weaker variant (C0/DEL only). The rune predicate was already extracted (pipeline.IsControlRune, imported by both cost packages) — row.go:256 explicitly says the rule was extracted but the loops were not.
Host matching — 4 copies. matchesAnyHost (identical port-strip + path.Match glob) at cpex/plugin.go:460, ibac/plugin.go:572, lineage/plugin.go:789, sparc/collect.go:148.
Fix
SanitizeLabel/TruncateLabel beside pipeline.IsControlRune (or a tiny leaf), with each package keeping its policy comments and thin wrappers; one hostmatch helper in core/plugins/internal. ~130 lines deleted and the stored-vs-rendered control-rune handling stops differing.
Found in the 2026-10-29 structural audit of code organization.
- Lingua principale
- Go
- Stelle
- 21
- Fork
- 43
- Merge medio
- 13h 8m
- PR unite (30g)
- 267
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rossoctl/cortex
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
UI shows costs for all sessions even when drilled into a sessionForse già presa @esnible l’ha presa 17 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
rossoctl/cortex#1116 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
CodeQL flags r.Host reaching slog in the forward proxy's debug/warn linesForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 Mezza giornata Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 Più di una settimana Idoneità per principianti 18/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rossoctl/cortex
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
lognorman20/monaco#7428 ·
-
docs(prompts): IF BLOCKED workflow-scope branch says to comment on the issue on jira/local trackersApertaagent-butler-finding bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
jordansmall/spindrift#6238 ·
I maintainer di solito rispondono entro 1 giorno
-
bug: microcks test get swallows test failure details and operation results in text output modeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
microcks/microcks-cli#608 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug from-studio
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
esengine/DeepSeek-Reasonix#14868 ·
I maintainer di solito rispondono entro 1 giorno