[P2][sink] Détecter les short writes du sink stdout #27

Open
opened 2026-07-31 21:05:14 +00:00 by mathieu · 2 comments
Owner

Constat

Le sink stdout vérifie seulement l'erreur de fmt.Fprintln (internal/sink/sink.go:115-123). Un io.Writer peut retourner un write court sans erreur et la livraison tronquée est alors déclarée réussie.

Tâche

Construire le payload exact text+LF, l'écrire une fois et retourner sink_failed sur erreur ou short write.

Critères d'acceptation

  • Full write réussit.
  • Short nil, short+error et zero write échouent.
  • Le contrat garde exactement un LF terminal.

Validation

go test -race ./internal/sink ./internal/cli

## Constat Le sink stdout vérifie seulement l'erreur de `fmt.Fprintln` (`internal/sink/sink.go:115-123`). Un `io.Writer` peut retourner un write court sans erreur et la livraison tronquée est alors déclarée réussie. ## Tâche Construire le payload exact `text+LF`, l'écrire une fois et retourner `sink_failed` sur erreur ou short write. ## Critères d'acceptation - Full write réussit. - Short nil, short+error et zero write échouent. - Le contrat garde exactement un LF terminal. ## Validation `go test -race ./internal/sink ./internal/cli`

Correctif proposé dans la PR #40 (#40). Les packages sysexec/clipboard/inject/sink/session passent sous race.

Correctif proposé dans la PR #40 (https://git.2027a.net/mathieu/murmur/pulls/40). Les packages sysexec/clipboard/inject/sink/session passent sous race.

Correctif proposé et validé dans la PR #40 : #40.

Correctif proposé et validé dans la PR #40 : https://git.2027a.net/mathieu/murmur/pulls/40.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mathieu/murmur#27
No description provided.