fix(cli): rendre stdin annulable et doctor non destructif #41

Open
hermes wants to merge 2 commits from fix/cli-doctor-cancellation into fix/session-event-invariants
First-time contributor

Résumé

  • lecture stdin cleanup bornée et annulable avec contrat CancelRead, sans goroutine laissée en arrière-plan
  • annulation dictate avant STT: abort capture, terminal cancelled, code 1, aucun provider/livraison
  • os.Stdin fermé seulement lorsqu’il est possédé
  • doctor sonde un vrai remplacement atomique via fichier sibling sans ouvrir ni modifier la destination; symlink/FIFO/répertoire refusés et probes nettoyés

Closes #1
Closes #2

Validation

  • tests CLI d’annulation/ownership sous race, 100 répétitions
  • tests doctor de destination/probe sous race, 100 répétitions
  • git diff --check

Signaux foreground

Le chemin dictate distingue maintenant les signaux de premier plan (arrêt puis traitement) d’une annulation de contexte API, avec stdin non bloquant et tests dédiés.

## Résumé - lecture stdin cleanup bornée et annulable avec contrat `CancelRead`, sans goroutine laissée en arrière-plan - annulation dictate avant STT: abort capture, terminal `cancelled`, code 1, aucun provider/livraison - `os.Stdin` fermé seulement lorsqu’il est possédé - doctor sonde un vrai remplacement atomique via fichier sibling sans ouvrir ni modifier la destination; symlink/FIFO/répertoire refusés et probes nettoyés Closes #1 Closes #2 ## Validation - tests CLI d’annulation/ownership sous race, 100 répétitions - tests doctor de destination/probe sous race, 100 répétitions - `git diff --check` ## Signaux foreground Le chemin `dictate` distingue maintenant les signaux de premier plan (arrêt puis traitement) d’une annulation de contexte API, avec stdin non bloquant et tests dédiés.
fix(cli): make stdin cancellation and doctor probes safe
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
181b85022f
hermes force-pushed fix/cli-doctor-cancellation from 181b85022f
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
to b484e44c54
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
2026-08-07 17:54:30 +00:00
Compare
hermes changed target branch from main to fix/session-event-invariants 2026-08-07 18:02:08 +00:00
fix(cli): treat foreground signals as dictate stop
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
e5dbc486f0
hermes force-pushed fix/cli-doctor-cancellation from e5dbc486f0
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
to 9d7dae7b73
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
2026-08-07 18:18:04 +00:00
Compare
hermes force-pushed fix/cli-doctor-cancellation from 9d7dae7b73
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
to b5b71dec87
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
2026-08-07 18:28:56 +00:00
Compare
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/cli-doctor-cancellation:fix/cli-doctor-cancellation
git switch fix/cli-doctor-cancellation

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch fix/session-event-invariants
git merge --no-ff fix/cli-doctor-cancellation
git switch fix/cli-doctor-cancellation
git rebase fix/session-event-invariants
git switch fix/session-event-invariants
git merge --ff-only fix/cli-doctor-cancellation
git switch fix/cli-doctor-cancellation
git rebase fix/session-event-invariants
git switch fix/session-event-invariants
git merge --no-ff fix/cli-doctor-cancellation
git switch fix/session-event-invariants
git merge --squash fix/cli-doctor-cancellation
git switch fix/session-event-invariants
git merge --ff-only fix/cli-doctor-cancellation
git switch fix/session-event-invariants
git merge fix/cli-doctor-cancellation
git push origin fix/session-event-invariants
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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!41
No description provided.