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

Offen
#1,352 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
12/100
Issue-Typ
Refactoring
Klarheit
Muss geklärt werden
Aktivitätsstatus
Aktiv
Tech-Stack
cli, rust
Bereich
cli

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Rust
Sterne
9
Forks
2
Ø Merge
18 Std. 47 Min.
Gemergte PRs (30 T.)
637

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus SocketDev/socket-patch

Alle Issues in SocketDev/socket-patch

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.