trail: suppress resume prompts with force · Entire

trail: suppress resume prompts with force

4a01d08→main· peyton-alt·2w ago·2 files·+19 added/-4 removed

Sessions

ce73f53d18deView transcript

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

Changes

2

329 unmodified lines

330
331
332
333
333
334
335
336
11 unmodified lines

348
349
350
351
351
352
353
354
355
356
357
358
358
359
360
361
362
363
364
361
365
366
367
368

329 unmodified lines

if err != nil {
        return err
    }
    return continueTrailRestoredSessions(ctx, cmd, sessions, preferredSessionID)
    return continueTrailRestoredSessions(ctx, cmd, sessions, preferredSessionID, force)
}

func resumeTrailCheckpoint(ctx context.Context, cmd *cobra.Command, branch string, checkpointID id.CheckpointID, preferredSessionID string, force bool) error {
11 unmodified lines

func trailResumeSkipBranchPrompts(force bool) bool {
    return force || !interactive.CanPromptInteractively()
}

func continueTrailRestoredSessions(ctx context.Context, cmd *cobra.Command, sessions []strategy.RestoredSession, preferredSessionID string) error {
func trailResumeCanPromptRestoredSessions(force bool) bool {
    return !force && interactive.CanPromptInteractively()
}

func continueTrailRestoredSessions(ctx context.Context, cmd *cobra.Command, sessions []strategy.RestoredSession, preferredSessionID string, force bool) error {
    w := cmd.OutOrStdout()
    return continueRestoredSessions(ctx, w, sessions, restoredSessionContinueOptions{
        CanPrompt:          interactive.CanPromptInteractively(),
        CanPrompt:          trailResumeCanPromptRestoredSessions(force),
        PreferredSessionID: preferredSessionID,
        PromptSession:      promptTrailRestoredSession,
        Launch:             launchTrailRestoredSession,

Mcmd/entire/cli/trail_resume_cmd.go+8/-4

943 unmodified lines

944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960

943 unmodified lines

}

func TestTrailResumeCanPromptRestoredSessionsHonorsForce(t *testing.T) {
    t.Setenv("ENTIRE_TEST_TTY", "1")

if trailResumeCanPromptRestoredSessions(true) {
        t.Fatal("force should suppress restored-session prompts even in an interactive terminal")
    }
    if !trailResumeCanPromptRestoredSessions(false) {
        t.Fatal("interactive restored-session prompts should remain enabled without force")
    }
}

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