Decide (post-v5): fix/undo/sync command model and exit 0 when there is nothing to undo

Ouverte
#1,352 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
12/100
Type d'issue
Refactorisation
Clarté
À clarifier
Activité
Active
Stack technique
cli, rust
Domaine
cli

Piste de recherche

This is a design decision, not a ready change: the maintainer must first settle the new command model and the exit codes for an empty project. Read the per-command table in #1088 and the tests the issue names (in_process_rollback_hosted.rs, mode_migration_vlt.rs, e2e_redirect_vlt_build.rs around L1185-1210). Done means a maintainer decision is recorded, and only then can the tests that pin exit 1 be updated.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

agent:needs-human agent:triaged arch-audit priority:p3 refactor ux

[agent] Split out of #1088. The maintainer's 2026-10-09 triage narrowed #1088's v5 scope to "a bare scan/get keeps the project's mode" (PR #1317). The other two questions from #1088 are not release requirements, so they are tracked here, without v5-blocker.

Q1, option 3: new command model (next major)

New Replaces
read-only scan today's scan --dry-run
fix [TARGET…] [--mode M] scan (write) and get
undo [TARGET…] rollback, remove and vendor --revert
sync apply, repair and scan --prune
check apply --check and vendor --check

The old verbs would stay as aliases for one major. This is blocked by the C11/C12 engine split (#843, #894). See #1088 for the full rationale (register C34).

Q2: "nothing to undo" exits differently per command (register C74)

On a project with no patch state (a fresh project, or one that a full rollback just emptied), list, apply and vendor --revert exit 0, but rollback and repair exit 1 (manifest_not_found, and rollback uses the legacy {"status":"error","error":"Manifest not found"} shape). So a second rollback exits 1. #1088 has the per-command table and repro.

The proposal (#1088 option A):

  • rollback on an empty project returns status: success with zero counts.
  • repair on an empty project matches apply (noManifest, exit 0).
  • remove <target> with no match keeps exit 1 (not_found).

Tests that pin today's exit 1: in_process_rollback_hosted.rs, mode_migration_vlt.rs, e2e_redirect_vlt_build.rs (L1185-1210) and the covgap rollback/repair suites.

Both parts need a maintainer decision before implementation.

Langage dominant
Rust
Étoiles
9
Forks
2
Merge moyen
20 h 47 min
PR mergées (30 j)
681

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de SocketDev/socket-patch

Toutes les issues de SocketDev/socket-patch

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.