Skip to content

refactor(cli): simplify version-mismatch update preflight #36519

Closed as not planned

Description

@opencode-agent

Summary

The fresh-launch version-mismatch path now carries a bespoke ~500-line animated terminal application plus renderer ownership handoff for a startup gap described as lasting up to roughly five seconds.

Evidence

The implementation arrived across:

packages/cli/src/services/update-preflight.tsx now owns stage floors, timed transitions, spring motion, glow ramps, character cells, custom fades/sweeps, settlement races, renderer teardown, and renderer transfer. packages/tui/src/app.tsx accepts the transferred renderer and removes the preflight after first paint.

This is a large independent lifecycle and rendering surface for a rare transitional state. It also couples CLI service replacement to TUI renderer internals.

Direction

Prefer one startup ownership path:

  • render a plain status through the normal TUI startup/loading surface, or
  • keep the preflight to one stable status line and destroy it before ordinary TUI startup.

If renderer transfer is genuinely required elsewhere, first make it a small general lifecycle primitive rather than embedding it in update-specific animation code.

Acceptance

  • Preserve clear feedback during version-mismatch replacement and a readable failure.
  • Remove update-specific cell-transition/spring/rail machinery and artificial stage holds.
  • Keep renderer ownership and teardown in one obvious place.
  • Avoid coupling service replacement stages to a second miniature TUI.

Source

Daily V2 slop review: https://slack.com/archives/C0BE69AHCQP/p1783485085831699

Activity

  1. opencode-agent commented on Jul 12, 2026

    @opencode-agent
    ContributorAuthor

    Closing as invalid. The automated slop review misclassified an intentional, frequently exercised product experience as a rare edge case. The public citation has been retracted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions