# trail: expose all checkpoint sessions

`1b20d88`→[main](/content/gh/entireio/cli/commits/main/index.html)·

peyton-alt·2w ago·3 files·+268 added/-40 removed

## Sessions

40f9656787a9View transcript

[?\
Add Trail Resume SubcommandCodex·GPT-5.5·1 step](/content/gh/entireio/cli/session/019ef5f3-3472-7f70-82f7-6f0ce46691f4#timeline-40f9656787a9/index.html)

## Changes

3

- cmd/entire/cli

- agent

- Aresume_command_registry_test.go+48

- Mtrail_resume_cmd.go+59/-34

- Mtrail_resume_cmd_test.go+161/-6

```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

package agent_test

import (
	"strings"
	"testing"

"github.com/entireio/cli/cmd/entire/cli/agent"
	_ "github.com/entireio/cli/cmd/entire/cli/agent/claudecode"
	_ "github.com/entireio/cli/cmd/entire/cli/agent/codex"
	_ "github.com/entireio/cli/cmd/entire/cli/agent/copilotcli"
	_ "github.com/entireio/cli/cmd/entire/cli/agent/factoryaidroid"
	_ "github.com/entireio/cli/cmd/entire/cli/agent/geminicli"
	_ "github.com/entireio/cli/cmd/entire/cli/agent/opencode"
	_ "github.com/entireio/cli/cmd/entire/cli/agent/pi"
	"github.com/entireio/cli/cmd/entire/cli/agent/types"
)

func TestResumeCommandSpecMatchesFormattedResumeCommand(t *testing.T) {
	t.Parallel()

sessionID := "session-123"
	for _, name := range []types.AgentName{
		agent.AgentNameClaudeCode,
		agent.AgentNameCodex,
		agent.AgentNameCopilotCLI,
		agent.AgentNameFactoryAIDroid,
		agent.AgentNameGemini,
		agent.AgentNameOpenCode,
		agent.AgentNamePi,
	} {
		t.Run(string(name), func(t *testing.T) {
			t.Parallel()

ag, err := agent.Get(name)
			if err != nil {
				t.Fatalf("Get(%s): %v", name, err)
			}
			spec, ok := agent.ResumeCommandSpecFor(name, sessionID)
			if !ok {
				t.Fatalf("ResumeCommandSpecFor(%s) ok = false, want true", name)
			}
			got := strings.Join(append([]string{spec.Binary}, spec.Args...), " ")
			if want := ag.FormatResumeCommand(sessionID); got != want {
				t.Fatalf("resume command spec = %q, FormatResumeCommand = %q", got, want)
			}
		})
	}
}
```

Acmd/entire/cli/agent/resume_command_registry_test.go+48

```
45 unmodified lines

```

156 unmodified lines

}

}

}
