Skip to content

dogfood: debug.focus names the creation hold of each window (port of #31330) - #31364

Closed
lawrencecchen wants to merge 5 commits into
cp/dogfood-v2-2-12-optfrom
cp/dogfood-v2-2-12-opt-creation-hold-debug
Closed

lawrencecchen wants to merge 5 commits into
cp/dogfood-v2-2-12-optfrom
cp/dogfood-v2-2-12-opt-creation-hold-debug

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Port of #31330 to the dogfood line, for the smoke owner pa-d: each debug.focus window entry reports creation_hold (the window's keys wait in a creation hold) and creation_hold_end (how its last creation hold ended), so a judged round names the holder of a held Ctrl-` (the round-2 report of v2.2.13-opt). Debug socket output only.

Testing

  • Feat: RED 157bba7a33068e8e76addb79 (fields missing on the base), GREEN 97d99b4de7a1e5e9ca742d5f.
  • This line: compile 72fed5bd842c1e4ce1598144 of 5b92010 running (2d69db91 cancelled, superseded); then DebugFocusCreationHoldTests on a display worker.

Observed / Not run

  • Observed: the prepush gate against the dogfood base (no new violations).
  • Not run yet: the steps above.

Changelog

none

Performance

No perf numbers: two more fields in a debug socket reply.

Proof

No capture: debug socket output only.

…ow it ended (red)

pa-d's judged smoke saw a Ctrl-` right after Cmd-N held by the key router (an empty
debug.key trace) and could not tell which hold kept it: debug.focus reported the New Tab
hold only; CreationInputCoordinator.isHolding and lastHoldEnd were read only by tests.

(cherry picked from commit 628eb5e)
…ion_hold, creation_hold_end)

Each window entry now reports whether its keys wait in a creation hold and how its last
creation hold ended (focusLanded, limitReached, focusLeft, windowClosed, creationFailed),
next to the New Tab hold's new_tab_key_holds and new_tab_key_log. A judged round can then
name the holder of a held key in every case, not only the logged limit end.

(cherry picked from commit 97506a2)
…Settings and CmuxNextDaemon both export one)

(cherry picked from commit a05dc30)
…o on this line (its early-key path), not 'as on feat'

The comment claimed keys typed during the Ctrl-` wait were lost on this line and now wait
in the creation hold as on feat. The port of #30827 (f48d38e) found the failures came
from the test harness (no Ghostty runtime) and kept this line's own early-key path.
@lawrencecchen lawrencecchen added the risk:low Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026
…e creation-hold fields are one per line (pays app_lines with a real move)

Review of a05dc30 (comment 6564387937, note 1) and the lead (21:5xZ): joining two lines
of DebugFocus.swift to keep the app_lines count flat games that count. The two lines are
split back. The App pays for its lines with a real move instead: the Ghostty agreement
check, on values only, is FocusState.Resolved.ghosttyMismatch(focused:ownTabs:isKey:) in
CmuxNextFocus, with the same texts (GhosttyFocusAgreementTests).

(cherry picked from commit c1a3431)
@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Replaced by #31390 (author a1c8a5d54186ef806): the same commits (head 5b92010) on branch fix/p0-creation-hold-debug-dogfood, which fits the lead's fix/p0-* Mac-lane rule; this branch name could not run its Mac test step.

@lawrencecchen
lawrencecchen deleted the cp/dogfood-v2-2-12-opt-creation-hold-debug branch November 1, 2026 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:low Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant