Skip to content

v1.1.0

Choose a tag to compare

@liftoff-releaser liftoff-releaser released this 10 Aug 13:33
· 4 commits to main since this release

Features

  • Added liftoff model, a new way to inspect and correct the local migration data directly: list/get show every captured entity in full detail (with sensitive values redacted unless explicitly revealed), and set/unset let you fix or clear a single entity's value by hand. Changing a value that's already populated requires a person's approval, and the command tells you exactly which check to re-run afterward.
  • Discarding the local database to re-discover from scratch, and re-staging a unit that's already migrated, now require explicit approval before they proceed. The approval prompt states exactly what would be lost — captured secrets, captured state, staged units, migrated units — so nothing is discarded silently.
  • Added an audit check that flags a stack whose runner image can't actually be pulled by the worker pool it would run on (for example, a private image assigned to the public pool), and names the registry to point it at instead.
  • Added an audit check that flags a module whose provider Spacelift would reject outright, catching the problem before it surfaces much later as a failed creation.
  • Published guidance on choosing an AI model to drive a migration: what capabilities matter, the concrete ways a migration can go quietly wrong with a model that isn't up to the task, and how to check your own choice against that bar.

Fixes

  • Fixed module version publishing being addressed by a module's bare name instead of its full registry identifier, which could push a version to the wrong module or fail outright.
  • Fixed the duplicate-identifier audit check to compare modules by their real registry identifier instead of their bare name — this both removes false alarms when a stack and a module merely share a plain name, and now catches real collisions that share a registry identifier.
  • Failed calls to the destination account now report which operation was refused, on which entity, and a specific next step based on the reason (not found, access denied, already exists, or an invalid value) instead of a generic error.
  • Fixed a case where a person approving an action from their own terminal could be wrongly asked to supply a proof token that is only ever issued to an AI assistant.

Security Updates

  • Closed a gap where an assistant could obtain the token proving it had read a required guidance page without the page's content ever actually reaching its context (for example, by filtering the command's output down to just the token). Such a token is now always accompanied by an explicit warning that it proves nothing unless the full content was read.
  • Error text and details coming back from the destination account's API are now stripped of stray control characters before being printed, closing off a path where a malformed or malicious API response could inject terminal escape sequences.