---
name: resumable_claude
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type ResumableClaude struct {
      SessionID  string `json:"session_id"`
      Goal       string `json:"goal"`        // de goals/<id>.json .goal ("" si no hay)
      Emojis     string `json:"emojis"`      // de goals/<id>.json .emojis ("" si no hay)
      Name       string `json:"name"`        // de goals/<id>.json .rename ("" si no hay)
      LastActive int64  `json:"last_active"` // mtime del goal.json en epoch segundos
  }
description: "Describe una sesion de Claude Code CERRADA que aun conserva su objetivo guardado (goals/<id>.json) y por tanto puede reabrirse con `claude --resume <SessionID>`. La produce list_resumable_claudes_go_infra y la consume el picker de resume de la app TUI fleetview. SessionID es el basename del goal.json; Goal/Emojis/Name vienen de los campos goal/emojis/rename del goal.json; LastActive es el mtime del archivo en epoch segundos."
tags: [claude-fleet, infra, claude, session, resume, tui]
uses_types: []
file_path: "functions/infra/resumable_claude.go"
---

## Notas

Tipo producto plano, serializable a JSON con snake_case (`session_id`, `last_active`). Complementa a `claude_fleet_go_infra` (sesiones VIVAS) modelando las sesiones CERRADAS-pero-resumibles. Vive en el mismo paquete Go `infra` que la funcion que lo produce (`functions/infra/resumable_claude.go`), junto al tipo `ClaudeFleet`. `LastActive` es el `mtime` del `goal.json`, una aproximacion de "ultima actividad", no el instante exacto del ultimo mensaje de la conversacion.
