Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Client *api.Client
Fingerprint string
Username string // SSH session username for the @swap header tag
// DryRun stops the wizard at the Quote step. Pressing Confirm shows
// the would-be order shape but never calls POST /create. Useful for
// integration tests and 'try before you commit funds' tours.
DryRun bool
// InitialWidth / InitialHeight let SSH hosts seed dimensions before
// the first WindowSizeMsg arrives, so the alt-screen flip on
// connection-start renders the form immediately instead of a void.
InitialWidth int
InitialHeight int
// ClipboardWriter is the same io.Writer Bubble Tea is configured with
// via tea.WithOutput, wrapped in a mutex (see LockedWriter). The model
// writes OSC 52 clipboard escapes directly through it instead of
// embedding them in View() output — bubbletea's renderer is not a
// safe transport for device-control sequences.
ClipboardWriter *LockedWriter
}
type LockedWriter ¶ added in v0.1.29
type LockedWriter struct {
// contains filtered or unexported fields
}
LockedWriter is the same io.Writer Bubble Tea is configured with via tea.WithOutput, wrapped in a mutex so the model's clipboard-write path (OSC 52 emission) can share the single output stream without racing the renderer's frame writes.
Codex review (2026-05-09 23:50) flagged routing OSC 52 through View() as the weak link — bubbletea's standard renderer runs ansi.Truncate / ansi.StringWidth / line-diff over View output, which is not a safe transport for device-control sequences. Direct out-of-band writes via this locked writer keep View() purely visual.
func NewLockedWriter ¶ added in v0.1.29
func NewLockedWriter(w io.Writer) *LockedWriter
Click to show internal directories.
Click to hide internal directories.