Skip to content

air start claude TUI preselection doesn't reflect current filesystem state #122

Description

@tadasant

Problem

When running air start claude and selecting skills, then running air start claude again, the TUI's preselected skills don't reflect what was just selected (and what currently lives in the filesystem). The preselection appears to come from some other source (default manifest?) rather than the actual on-disk state.

Additionally, deselecting an item in the TUI doesn't remove it from disk — selection is treated as additive only.

Repro

  1. air start claude — select a non-default set of skills
  2. Confirm those skills are written to disk
  3. air start claude again
  4. Observe: the preselected items in the TUI do not match what's on disk
  5. Deselect a manifest-controlled item, complete the flow
  6. Observe: the item is still present on disk

Expected

  • The TUI should always represent the current state of the filesystem on entry. If the user added skill X last time, X should be preselected this time.
  • TUI selection state should be the source of truth on what gets written and removed, scoped to manifest-controlled artifacts. Deselecting a manifest-controlled item should remove it from the filesystem on the next air start claude. Locked/always-on items obviously stay.

Proposal

  • Drive preselection from the current filesystem state (what's actually installed/wired up), not from a static default list.
  • Apply selection diffs on commit: add newly-selected items, remove newly-deselected manifest-controlled items.
  • Keep the existing "locked" affordance for always-on items.
  • Add a separate affordance to indicate "default" items (which may or may not currently be selected per the on-disk manifest) — so users can tell which items are recommended defaults vs. which are currently active.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    divergentIssue-work-gate direction: adds capability that does not exist yethold issue work gateHeld by the issue work gate, or parked by a human — no session starts from this rating

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions