Skip to content

Design policy-gated rollback restore for governed-runner v0.2 #206

@mdheller

Description

@mdheller

Purpose

Define the first policy-gated rollback restore surface for governed-runner v0.2.

This is a design issue only. Do not implement rollback restoration in this issue.

Context

Governed-runner v0.1 records rollback evidence through RollbackBoundary and RollbackResult, but it does not mutate or restore workspace state.

Rollback restore is a mutating operation and must be designed as a separate policy-gated capability.

Proposed v0.2 scope

A future restore surface should require:

  • existing RollbackBoundary
  • admitted restore request
  • authority state permitting restore
  • safe-root enforcement
  • file/path allowlist enforcement
  • explicit restore action receipt
  • before/after digest evidence

Acceptance criteria

  • Define RollbackRestoreRequest v0.1 schema.
  • Define RollbackRestoreReceipt v0.1 schema.
  • Add positive fixture for a synthetic restore inside an allowed temp workspace.
  • Add negative fixture for missing rollback boundary.
  • Add negative fixture for missing restore admission.
  • Add negative fixture for path escape.
  • Add negative fixture for missing before digest.
  • Add negative fixture for digest mismatch.
  • Add negative fixture for suspended/revoked authority.
  • Add validator and Makefile target.
  • Add docs describing exactly what restore can mutate and under what evidence conditions.

Non-goals

  • no restore implementation in this design issue
  • no arbitrary file mutation
  • no cross-repo restore
  • no restore outside safe root
  • no authority update
  • no budget settlement
  • no live agent execution

Boundary

Rollback restore must remain unavailable until the design, schemas, fixtures, validator, and docs are accepted. Implementation must occur in a separate PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions