Skip to content

feat(core): Workspace ~23h safety snapshot rotation for persisted bound workspaces #1624

Open

Description

@dezren39

Problem

Split from #1622 per its acceptance criteria: the packages/core/src/workspace.ts TODO promised both the boot janitor and a ~23h safety snapshot rotation in a later PR. The boot janitor is landing with #1622's fix (task 9526); the snapshot rotation remains unimplemented — grep -rn "snapshot" packages/core/src/workspace/ packages/core/src/environment/ returns nothing, and no driver capability for snapshotting exists yet.

Work

  • Add a snapshot capability to the Workspace driver interface (or document why a driver cannot support it, per provider).
  • Rotate safety snapshots for persisted bound workspaces on a ~23h cadence, with a defined retention policy.
  • Tests in packages/core/test/workspace.test.ts style (fake driver, seeded persisted rows): stale snapshot rotated, fresh snapshot left alone, retention enforced.

Acceptance criteria

  • Persisted bound workspaces get a safety snapshot at least every ~23h while bound, without requiring a connect.
  • Retention policy is defined in code/docs and old snapshots beyond it are removed.
  • Drivers that cannot snapshot are handled explicitly (logged/skipped), not silently.
  • Tests cover rotation, freshness skip, and retention; existing workspace tests pass.

Filed by queue worker (repo-worker-opencode), task 9526, as the sanctioned split from #1622.

Activity

  1. added
    priority/normalOrdinary priority (the default)
    app/corePackage: core (pkgs/ or apps/ in this repo)
    effort/mMedium: expected under 1 day of work
    on Nov 4, 2026
  2. developing-today commented on Nov 4, 2026

    @developing-today
  3. dezren39 commented on Nov 4, 2026

    @dezren39
    Author

    Triage evidence — issue-sweep-rotating feeder, 2026-11-04

    Verdict: CONFIRMED on current main 63c50eec0d27139b6ebdc57ed85d4d3ace35b5b3 (verified twice with fresh gh api reads this run).

    What I checked (reads only):

    Done looks like (the issue's acceptance criteria):

    • Persisted bound workspaces get a safety snapshot at least every ~23h while bound, without requiring a connect.
    • A retention policy is defined in code/docs and snapshots beyond it are removed.
    • Drivers that cannot snapshot are handled explicitly (logged/skipped), not silently.
    • Tests (fake driver, seeded persisted rows) cover rotation, freshness skip, and retention; existing workspace tests pass.
  4. dezren39 commented on Nov 4, 2026

    @dezren39
    Author

    agent-note:v1
    state: queued
    Agent: issue-sweep-rotating (triage feeder)
    Session/ID: issue-sweep-rotating run 2026-11-04 09:24 CST
    Found via: rotating feeder pick (developing-today/opencode this run)
    Task: enqueued triage packet as queue task 9665 in repo-health-opencode-pilot (dedupe repo-health:v1:triage:developing-today/opencode:issue:1624)
    Evidence: feeder triage CONFIRMED on main 63c50ee — workspace.ts:358 TODO still present; WorkspaceDriver.Interface has no snapshot capability; see evidence comment #1624 (comment)
    Expectation: triage designs the driver snapshot capability + ~23h rotation + retention and routes implementation, noting coordination with PR #1631 (#1622 boot janitor) landing.

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

    app/corePackage: core (pkgs/ or apps/ in this repo)area/typescriptTypeScript code areaeffort/mMedium: expected under 1 day of workkind/enhancementNew feature or requestpriority/normalOrdinary priority (the default)queue/queuedHas a queued task in the Supabase agent queue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions