Skip to content

Init wizard: preserve field values when editing configured adapter #765

@Aaronontheweb

Description

@Aaronontheweb

Problem

When editing a previously configured adapter in the channel picker (via [e]), all fields start blank and must be re-entered from scratch. The VM preserves state, but the views don't pre-populate inputs on re-entry.

Affected Fields

Needs Termina patch (blocked on Aaronontheweb/termina#203)

  • DM toggle (SelectionListNode) — _highlightedIndex is private, always starts at 0. Need WithHighlightedIndex(int) to pre-select Yes/No.
  • Enable toggle — same issue, but skipped via SkipEnableSubStep in the picker flow.

Needs Termina investigation (password input + .Text setter)

  • Bot token (Discord/Slack) — setting .Text on a password TextInputNode before focus causes the Submitted observable to fire immediately on paste, looping the user back to the same step. May need a Termina fix for .AsPassword() + .Text pre-seeding, or a different approach (e.g., showing masked placeholder text like •••••••• and only replacing on new input).
  • App token (Slack) — same issue as bot token.

Already working

  • Channel IDs (Discord), channel names (Slack), allowed user IDs (both), owner identity (Slack) — these use plain TextInputNode and pre-populate correctly today.

Context

Discovered during manual TUI testing of #763 (unified channel picker step). The pre-population attempt for password fields was reverted in that PR after it caused an input loop bug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    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