Skip to content

Stateful workspaces — sessions that survive daemon/host restart #116

@WaylandYang

Description

@WaylandYang

Item 4 of meta #112. 2 weeks; stickiness track.

Daytona's killer feature: forkd workspace open my-project brings the user back to the exact sandbox state they last saved, even across host reboots. forkd's snapshot machinery already supports this; the gap is the UX layer.

Tasks

  • POST /v1/workspaces API: create a workspace tied to (snapshot tag, persistent state path)
  • workspace.suspend(id) — snapshot live VM to a workspace-specific tag
  • workspace.resume(id) — restore from that tag
  • Daemon recovery: on startup, list known workspaces, mark them suspended-waiting
  • CLI: forkd workspace {create,suspend,resume,list,delete}
  • Auto-suspend after N seconds idle (configurable)
  • Persistent volume per workspace via existing volume API

Acceptance

forkd workspace open foo, make changes, kill the daemon, restart it, forkd workspace open foo and see your changes. Disk usage doesn't grow unboundedly (snapshot rotation).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions