Filter terminal-unsafe characters through one helper: list and the status printer keep bidi overrides and zero-width characters that core policy::strip_unsafe drops
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 83/100
Rechercherichtung
Lies crates/socket-patch-core/src/policy/mod.rs und die Filter in crates/socket-patch-cli/src/commands/list.rs und crates/socket-patch-cli/src/ui/status.rs. Fasse die Filterung wie beschrieben zusammen und füge dann den Unit-Test für eine Beschreibung mit U+202E und U+200B hinzu; abgeschlossen ist die Arbeit, wenn diese Zeichen entfernt werden und die gewöhnliche Listenausgabe byte-identisch bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
[agent] Filed by the scheduled architecture audit (audit-cli-tests). Register: register comment.
Kind: refactor. Register ID: T23.
Problem
Three functions filter characters before they reach the terminal:
list.rssanitize, L230-L238:.filter(|&c| c == '\n' || c == '\t' || !c.is_control()).ui/status.rsprintln, L96-L104: the same filter.- core
policy/mod.rsunsafe_for_output/strip_unsafe, L50-L60: drops controls and bidi overrides and isolates (U+202A–202E,U+2060–2069), zero-width characters (U+200B–200F) and the BOM.
So core already decided that bidi and zero-width characters are unsafe in output. list, however, prints API-sourced patch descriptions and vulnerability summaries through the weaker filter, so a description carrying U+202E can still reorder what the user sees. I found this by reading the code; I did not run it.
Proposed change
- Make core
policy::strip_unsafe(or a renamedprintable) keep\nand\t, and normalize\r\n, aslist::sanitizedoes. Move it to a neutral home, such asutils::textor the CLIuilayer if core does not need it. - Call it from
list::sanitize's callers and fromStatusPrinter::println, and delete the two copies.
Size
3 files, about −15 lines plus one test.
Acceptance criteria
listoutput for ordinary text is byte-identical.- A new unit test shows that a description containing
\u{202E}and\u{200B}is printed without them. policytests are unchanged.
- Vorherrschende Sprache
- Rust
- Sterne
- 8
- Forks
- 2
- Ø Merge
- 19 Std. 12 Min.
- Gemergte PRs (30 T.)
- 709
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus SocketDev/socket-patch
-
agent:triaged arch-audit priority:p3 refactor
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
SocketDev/socket-patch#1838 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Share one scoped env-var test guard: EnvGuard is copy-pasted 11 times across core unit and integration testsEvtl. vergeben @mikolalysenko hat das heute übernommen. Offenagent:claimed agent:triaged arch-audit priority:p3 refactor
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
SocketDev/socket-patch#1889 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Memoize env-keyed subprocess probes through one helper: composer, python and ruby each define the same env key and drifted on when an answer is keptEvtl. vergeben @mikolalysenko hat das heute übernommen. Offenagent:claimed agent:triaged arch-audit priority:p1 refactor
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 25/100
SocketDev/socket-patch#1888 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
agent:triaged arch-audit priority:p3 refactor
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 55/100
SocketDev/socket-patch#1887 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
agent:needs-human agent:triaged arch-audit priority:p3 refactor
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
SocketDev/socket-patch#1881 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in SocketDev/socket-patch
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
dekobon/big-code-analysis#1729 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
akitaonrails/ai-memory#1888 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
peteonrails/voxtype#941 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
bug priority:medium triage:maintainable
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
ccusage/ccusage#2000 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag