Skip to content

Checkpoints: create/list/open/diff/revert from palette #9

Description

@DecisionNerd

Problem

Checkpoint APIs are unused in the extension; investigations lack an in-editor safety net.

Tracks under #1 (Phase 3).

Objective

Expose create/list/open/diff/revert as palette-first commands with confirmations on destructive revert.

Debt / regime

  • Debt type: craft/UX + development
  • Quality regime: B (product)

Requirements

  • Commands: GraphForge: Create Checkpoint…, List Checkpoints, Open Checkpoint, Diff Checkpoints…, Revert to Checkpoint….
  • List via searchable QuickPick (name + time); details as markdown/JSON for agents.
  • Open checkpoint: make read-only expectations clear (CheckpointView execute if exposed).
  • Revert: confirm + type checkpoint name (or equivalent explicit confirm).
  • Flat commands — no nested checkpoint wizard.

Acceptance Criteria

  • Create + list round-trip
  • Diff produces a readable artifact
  • Revert requires explicit confirmation
  • Failures surface engine error codes

BDD Completion Scenarios

Scenario: Create and list
Given open project
When user creates checkpoint before-rank
Then List Checkpoints includes before-rank

Scenario: Revert confirm
Given an existing checkpoint
When user runs Revert without confirming
Then project generation is unchanged

Implementation Notes

  • Node APIs: checkpoint, listCheckpoints, openCheckpoint, diffCheckpoints, deleteCheckpoint, revertToCheckpoint
  • Wire through session; ADR 0014 contract in engine docs

Observability

Toast on create/revert with checkpoint name + generation uuid when available.

Security And Privacy

Revert is destructive local project mutation — hard confirm required.

Testing

  • Manual against temp project; skip or gate native CI if binding absent
  • Unit for confirm gating logic

Documentation

  • README Checkpoints; link engine checkpoint contract

Non-Goals

  • Checkpoint UI timeline webview (list + diff docs sufficient for v1)
  • Remote/multi-user sync

Related Issues

Open Questions

  • None

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions