Skip to content

fix: lightning connection rows open from anywhere - #1202

Merged
ovitrif merged 1 commit into
masterfrom
fix/lightning-connection-rows
Nov 4, 2026
Merged

ovitrif merged 1 commit into
masterfrom
fix/lightning-connection-rows

Conversation

@ovitrif

@ovitrif ovitrif commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #1203

This PR makes pending Lightning connection rows open their details from a tap anywhere on the row.

List rows are expected to be tappable across their full width. On Settings → Advanced → Lightning Connections, a pending connection row opened its details only when the tap landed on drawn content: the name, the chevron or the capacity bar. Taps in the empty middle, between the name and the chevron or between the two amounts, did nothing. The row's button uses the plain button style, which hit-tests only drawn content, so the space a Spacer leaves is not part of the button. Open and closed rows use the default style, which already takes taps across the whole row, so only pending rows change.

Description

  • Gives the pending connection row a rectangular hit area, so a tap anywhere on the row, padding included, opens the connection details.

Out of Scope

  • Bitkit/Views/Settings/Advanced/SparkConnectionViews.swift: the Spark connection row from feat: add spark via breez sdk #1128 has the same gap and needs the same one-line fix on that branch, since the row does not exist on master.

Design

N/A — no UI changes.

Preview

Exact-point taps on an iPhone 17 Pro simulator with iOS 26.5; a red square marks each tap: the empty middle of the name row, the gap between the amounts, the row's lower padding, then the name. The row is a local fixture closed connection with the plain button style that pending rows use, because the simulator could not open a real channel. Each tap that reaches the row opens the details, which fail to load the fixture and return with a "Connection Not Found" toast.

Before After
conn-rows-before.mp4
conn-rows-after.mp4

QA Notes

Setup

A Bitkit build of this PR with a pending Lightning connection: for example, buy a channel through Transfer to Spending and check Settings → Advanced → Lightning Connections before it confirms. The same check applies to open and closed rows as regressions.

Journeys

N/A — not drivable; see Manual Tests.

Manual Tests

  • 1. Lightning Connections → tap a pending connection row in the empty space between its name and the chevron → Connection details open — exact-point taps not in Capabilities
  • 2. regression: Lightning Connections → tap the empty middle of an open row, and of a closed row after Show Closed & Failed → Connection details open — exact-point taps not in Capabilities

Automated Checks

N/A

Evidence

  • Exact-point AXe HID taps on an iPhone 17 Pro simulator with iOS 26.5, on a local-only fixture closed row (not committed):
    • With the plain button style pending rows use and without this fix, taps at the empty middle of the name row and between the amounts did nothing, while taps on the name and in the lower padding opened the details.
    • With this fix, all four points opened the details.
  • On master, the fixture closed row with its own default button style opened the details at every point, gaps included, so open and closed rows need no change.
  • 1 and 2 were not run on a real pending or open channel.
  • The unit-test workflow's test selection, run on an iOS 26.5 simulator against f4434b31: 2994 passed, 0 failed, 5 skipped.

Gaps

  • No real pending channel was available: the simulator's staging setup offers only manual channel setup, so the evidence uses a fixture row with the same structure.
  • No UI test: it would need a pending channel, which the test setup cannot create cheaply.

Models used

  • Planning/scoping: claude-opus-5-5 (reasoning: 10)
  • Implementation: claude-opus-5-5 (reasoning: 10)
  • Review: Not performed

Metadata note: reasoning values are this session's reasoning_effort setting as recorded in its system prompt.

@ovitrif ovitrif self-assigned this Nov 4, 2026
@ovitrif
ovitrif marked this pull request as ready for review November 4, 2026 13:32
@ovitrif
ovitrif requested review from a team, ben-kaufman and pwltr and removed request for a team November 4, 2026 13:32
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-04T13:33:48.561977Z f4434b3 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@greptile-apps

greptile-apps Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] This PR appears safe to merge.

Summary

Adds .contentShape(Rectangle()) to the pending connection button’s label so empty space and internal padding open the connection details.

  • Taps anywhere on a pending connection row open its details.

Reviews (1) · Last reviewed commit: "fix: lightning connection rows open from..." · Reviewed by Greptile

@talosmachina talosmachina left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No findings. Gives the pending Lightning connection row's label a rectangular contentShape, so taps in the Spacer gaps under PlainButtonStyle reach the button. Reviewed f4434b3, light tier, static: iOS does not build on Linux, so this was reasoned from the code and CI.

What I checked, and 3 candidates I ruled out

Read in full: Bitkit/Views/Settings/Advanced/LightningConnectionsView.swift at the head, changelog.d/next/1202.fixed.md
CI at review time: SwiftFormat, validate and Greptile green; Run Tests, Run Integration Tests and build-local still pending

Ruled out

  • Hit area bleeding into the next row: the shape is applied to the label's VStack, and the 16pt gap between rows is the outer VStack(spacing: 16), outside every label, so a tap there still selects nothing rather than the wrong row.
  • Open and closed rows left out: they use the default button style, which already hit-tests the whole label frame, so the one-line scope matches the bug.
  • Changelog fragment: changelog.d/next/<pr>.fixed.md matches the existing fragments on master.

Merge confidence: 4/5, the unit and build jobs were still pending and no test covers the hit area.

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. .contentShape(Rectangle()) on the pending row's label makes the whole row tappable under PlainButtonStyle. Open and closed rows use the default style, which already takes taps across the row, so only pending rows needed it. The tap area stays inside the row; dividers and spacing between rows are unchanged. The before/after videos cover the exact-point taps, so I didn't run a separate device gate for this one-line change.

@ovitrif ovitrif mentioned this pull request Nov 4, 2026
34 tasks
@ovitrif

ovitrif commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Auto-merge on (merge commit): approved by @jvsena42 on f4434b3, no open threads; it merges once the required checks pass.

@ovitrif
ovitrif enabled auto-merge November 4, 2026 13:42
@ovitrif

ovitrif commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Added to the 3.2.0 milestone: this PR came after the 3.1.0 cut and isn't picked for a 3.1.0 RC, so it ships in the next minor release.

@ovitrif ovitrif modified the milestone: 3.2.0 Nov 4, 2026
@ovitrif

ovitrif commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator Author

Tracked in #1203 under 3.2.0: a list-row tap bug found during the 3.1 RC that doesn't block it, so it goes to the next minor release, and the issue carries the milestone.

@ovitrif
ovitrif merged commit 1effdea into master Nov 4, 2026
46 checks passed
@ovitrif
ovitrif deleted the fix/lightning-connection-rows branch November 4, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: pending lightning connection rows ignore taps between their labels

3 participants