Skip to content

fix(update): no non-interactive path — crashes without a TTY, add --yes #709

Description

@admarble

Summary

sequant update has no usable non-interactive path. It is interactive-only and, without a TTY, dies with a raw ExitPromptError stack trace instead of a clean message. There is no --yes/-y flag.

Split out from #708 (which covers the two correctness bugs in the update/sync flow); this is the headless/ergonomics half.

Behavior

update always prompts Apply updates? (Y/n). Piping or running without a controlling TTY produces:

ExitPromptError: User force closed the prompt with 0 null
    at .../@inquirer/core/dist/lib/create-prompt.js:67:20
    ...
Node.js v23.11.0

i.e. an unhandled crash with a stack trace, not a graceful exit.

The only non-interactive alternative is sequant sync, but per #708 sync is version-marker-only and silently reports "up to date" on real content drift — so today there is no trustworthy non-interactive way to apply template updates. Current workaround is yes | sequant update, which is non-obvious.

Acceptance criteria

Notes

Lower priority than #708 — most users update via the Claude Code plugin's auto-update path; this bites CI/scripted/dogfooding flows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcliCLI commands and interfaceplannedImplementation plan approvedready-for-reviewReady for code review

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions