summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-07-31 01:47:40 -0300
committerGabriel Schneider <[email protected]>2026-08-01 15:02:08 -0300
commitbe404e0d4f91548af6ed600b2fd2027ad8a041c7 (patch)
treefb3597f4f1fe9703a64726c22a3b9eb29609bcdf /test
parent8a7112f08e0ce93a37b177e3aa83637e1691b451 (diff)
downloadpardes-be404e0d4f91548af6ed600b2fd2027ad8a041c7.tar.gz
pardes-be404e0d4f91548af6ed600b2fd2027ad8a041c7.zip
focus history is a stack of locations, and the Jumplist is that same stack
One container, not two: focus_hist (a stack of pane ids rebuilt every sync) is now jumps[] + a current pointer, and the +Jumps buffer is a RENDERING of that array — nothing copies it, nothing shadows it. prevFocus, Toggleterm, Look's directory order, Back/Forward, Last and Jumplist all walk the one list. A pane id is reused, so a location that only remembered an id would retarget after a respawn: panes now carry a monotonic serial and an entry whose slot holds a different serial is dead. trackJump compacts those out and fixes the pointer in the same pass. The push rule lives in ONE place and says: a location is worth remembering when you cannot see it any more — a different pane, or more than a bodyful of rows away in the same one. So hjkl never grows the list and 100G, a search hit and a goto-definition do. Ctrl-o/Ctrl-i walk it, SPC j j toggles the last two, SPC j l lists them. Ctrl-i IS Tab on a legacy host, where the binding simply never fires and Tab-executes is untouched; kitty reports them apart. SPC j o/i work anywhere. Two goldens moved, both the SPC ? Help listing gaining four rows.
Diffstat (limited to 'test')
-rw-r--r--test/snapshots/jumps.golden527
-rw-r--r--test/snapshots/jumps.snap85
-rw-r--r--test/snapshots/leader.golden28
-rw-r--r--test/snapshots/ttyhelp.golden60
4 files changed, 656 insertions, 44 deletions
diff --git a/test/snapshots/jumps.golden b/test/snapshots/jumps.golden
new file mode 100644
index 00000000..c49b354e
--- /dev/null
+++ b/test/snapshots/jumps.golden
@@ -0,0 +1,527 @@
+== snap start grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| 22 line 22
+| 23 line 23
+| 24 line 24
+| 25 line 25
+| 26 line 26
+| 27 line 27
+| 28 line 28
+== snap to-shell grid=150x30 cursor=79,4
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| 22 line 22
+| 23 line 23
+| 24 line 24
+| 25 line 25
+| 26 line 26
+| 27 line 27
+| 28 line 28
+== snap to-file grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| 22 line 22
+| 23 line 23
+| 24 line 24
+| 25 line 25
+| 26 line 26
+| 27 line 27
+| 28 line 28
+== snap goto-100 grid=150x30 cursor=7,26
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 76 line 76
+| 77 line 77 big.txt
+| 78 line 78
+| 79 line 79
+| 80 line 80
+| 81 line 81
+| 82 line 82
+| 83 line 83
+| 84 line 84
+| 85 line 85
+| 86 line 86
+| 87 line 87
+| 88 line 88
+| 89 line 89
+| 90 line 90
+| 91 line 91
+| 92 line 92
+| 93 line 93
+| 94 line 94
+| 95 line 95
+| 96 line 96
+| 97 line 97
+| 98 line 98
+| 99 line 99
+| 100 line 100
+| 101 line 101
+| 102 line 102
+| 103 line 103
+== snap back-in-file grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| 22 line 22
+| 23 line 23
+| 24 line 24
+| 25 line 25
+| 26 line 26
+| 27 line 27
+| 28 line 28
+== snap back-to-shell grid=150x30 cursor=79,4
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| 22 line 22
+| 23 line 23
+| 24 line 24
+| 25 line 25
+| 26 line 26
+| 27 line 27
+| 28 line 28
+== snap forward-file grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| 22 line 22
+| 23 line 23
+| 24 line 24
+| 25 line 25
+| 26 line 26
+| 27 line 27
+| 28 line 28
+== snap forward-100 grid=150x30 cursor=7,16
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 86 line 86
+| 87 line 87 big.txt
+| 88 line 88
+| 89 line 89
+| 90 line 90
+| 91 line 91
+| 92 line 92
+| 93 line 93
+| 94 line 94
+| 95 line 95
+| 96 line 96
+| 97 line 97
+| 98 line 98
+| 99 line 99
+| 100 line 100
+| 101 line 101
+| 102 line 102
+| 103 line 103
+| 104 line 104
+| 105 line 105
+| 106 line 106
+| 107 line 107
+| 108 line 108
+| 109 line 109
+| 110 line 110
+| 111 line 111
+| 112 line 112
+| 113 line 113
+== snap last grid=150x30 cursor=79,4
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 86 line 86
+| 87 line 87 big.txt
+| 88 line 88
+| 89 line 89
+| 90 line 90
+| 91 line 91
+| 92 line 92
+| 93 line 93
+| 94 line 94
+| 95 line 95
+| 96 line 96
+| 97 line 97
+| 98 line 98
+| 99 line 99
+| 100 line 100
+| 101 line 101
+| 102 line 102
+| 103 line 103
+| 104 line 104
+| 105 line 105
+| 106 line 106
+| 107 line 107
+| 108 line 108
+| 109 line 109
+| 110 line 110
+| 111 line 111
+| 112 line 112
+| 113 line 113
+== snap last-back grid=150x30 cursor=7,16
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 86 line 86
+| 87 line 87 big.txt
+| 88 line 88
+| 89 line 89
+| 90 line 90
+| 91 line 91
+| 92 line 92
+| 93 line 93
+| 94 line 94
+| 95 line 95
+| 96 line 96
+| 97 line 97
+| 98 line 98
+| 99 line 99
+| 100 line 100
+| 101 line 101
+| 102 line 102
+| 103 line 103
+| 104 line 104
+| 105 line 105
+| 106 line 106
+| 107 line 107
+| 108 line 108
+| 109 line 109
+| 110 line 110
+| 111 line 111
+| 112 line 112
+| 113 line 113
+== snap jumplist grid=150x30 cursor=7,16
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 86 line 86
+| 87 line 87 big.txt
+| 88 line 88
+| 89 line 89
+| 90 line 90
+| 91 line 91
+| 92 line 92
+| 93 line 93
+| 94 line 94
+| 95 line 95
+| 96 line 96
+| 97 line 97
+| 98 line 98
+| 99 line 99
+| 100 line 100
+| 101 line 101
+| 102 line 102
+| 103 line 103
+| 104 line 104
+| 105 line 105
+| 106 line 106
+| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del
+| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+== snap step1 grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del
+| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+== style step1
+|0: 0-52 #949494,#121212, 53-149 d,#121212,
+|1: 0-1 d,#626262, 2-48 #949494,#121212, 49-74 d,#121212, 75-76 d,#262626, 77-110 #949494,#121212, 111-149 d,#121212,
+|2: 0-1 d,#444444, 2-6 #949494,#121212, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|4: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|5: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|6: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|7: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|8: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|9: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|10: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|11: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|12: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|13: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|14: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|15: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|16: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|17: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|18: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|19: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|20: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|21: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|22: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|23: 0-1 d,#262626, 2-42 #949494,#121212, 43-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-40 #bdbdbd,#080808, 41-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-51 #bdbdbd,#080808, 52-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-55 #bdbdbd,#080808, 56-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-40 #bdbdbd,#080808, 41-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-55 #bdbdbd,#080808, 56-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808,
+== snap step2-shell grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del
+| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+== snap step4-line100 grid=150x30 cursor=7,12
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 90 line 90
+| 91 line 91 big.txt
+| 92 line 92
+| 93 line 93
+| 94 line 94
+| 95 line 95
+| 96 line 96
+| 97 line 97
+| 98 line 98
+| 99 line 99
+| 100 line 100
+| 101 line 101
+| 102 line 102
+| 103 line 103
+| 104 line 104
+| 105 line 105
+| 106 line 106
+| 107 line 107
+| 108 line 108
+| 109 line 109
+| 110 line 110
+| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del
+| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+== snap step-back grid=150x30 cursor=7,2
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 1 line 1
+| 2 line 2 big.txt
+| 3 line 3
+| 4 line 4
+| 5 line 5
+| 6 line 6
+| 7 line 7
+| 8 line 8
+| 9 line 9
+| 10 line 10
+| 11 line 11
+| 12 line 12
+| 13 line 13
+| 14 line 14
+| 15 line 15
+| 16 line 16
+| 17 line 17
+| 18 line 18
+| 19 line 19
+| 20 line 20
+| 21 line 21
+| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del
+| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+== snap look-row grid=150x30 cursor=7,12
+|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
+| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del
+| 90 line 90
+| 91 line 91 big.txt
+| 92 line 92
+| 93 line 93
+| 94 line 94
+| 95 line 95
+| 96 line 96
+| 97 line 97
+| 98 line 98
+| 99 line 99
+| 100 line 100
+| 101 line 101
+| 102 line 102
+| 103 line 103
+| 104 line 104
+| 105 line 105
+| 106 line 106
+| 107 line 107
+| 108 line 108
+| 109 line 109
+| 110 line 110
+| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del
+| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1
+| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
+| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd
+| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100
diff --git a/test/snapshots/jumps.snap b/test/snapshots/jumps.snap
new file mode 100644
index 00000000..900b63a1
--- /dev/null
+++ b/test/snapshots/jumps.snap
@@ -0,0 +1,85 @@
+# RULE: there is ONE focus history and it is a stack of LOCATIONS — a pane and
+# a spot in it. Ctrl-o walks it back, Ctrl-i walks it forward again, `SPC j j`
+# (Last) hops to the newest OTHER pane, and `SPC j l` (Jumplist) writes the
+# same stack out as an output buffer whose rows are ordinary look targets, so
+# n/N step them. What gets ONTO the stack is decided in one place (trackJump):
+# focus ended the update in a different pane, or more than a bodyful of rows
+# away in the same one — which is why `100G` below leaves a location behind
+# and the j/k that follow it do not.
+#
+# Focus and position both show in the golden's `cursor=` header: that is the
+# ACTIVE pane's cursor, so each snap is named by where it should land.
+lines big.txt 200
+start 30 150 big.txt
+wait 8000 big.txt
+stable 700 20000
+# left column = big.txt, right column = the launch shell; the file has focus
+snap start
+# two focus moves, so the stack is file -> shell -> file
+key space w l
+stable 400 5000
+snap to-shell
+key space w h
+stable 400 5000
+snap to-file
+# a FAR motion inside one pane: 100G is a jump, so the line we left is
+# remembered and Ctrl-o can come back to it
+text 100
+key G
+stable 400 5000
+snap goto-100
+# Ctrl-o: back to line 1 of the same pane — a stack of panes could not do this
+key c-o
+stable 400 5000
+snap back-in-file
+# ...and back again into the shell
+key c-o
+stable 400 5000
+snap back-to-shell
+# Ctrl-i forward, twice: the shell entry, then line 100 again. Sent as the
+# kitty-protocol CSI u (`CSI 105;5u`) because on the wire Ctrl-i IS Tab —
+# see config.jump_keys.
+send \e[105;5u
+stable 400 5000
+snap forward-file
+send \e[105;5u
+stable 400 5000
+snap forward-100
+# SPC j j — the newest OTHER pane, and pressing it again comes straight back
+key space j j
+stable 400 5000
+snap last
+key space j j
+stable 400 5000
+snap last-back
+# SPC j l — the stack as text: `location text` rows, the file naming itself
+# and the shell spelled @pN because it has no path
+key space j l
+stable 700 15000
+snap jumplist
+# n/N step the rows and look them, exactly as they do a +Search: the stepped
+# row is selected in the buffer (snapstyle) and the pane it names follows.
+# Row 1 is the file at line 1, row 2 the shell (no path, so `@pN`), row 4 the
+# file at line 100 — so the body visibly rides the list.
+key n
+stable 700 15000
+snap step1
+snapstyle step1
+key n
+stable 700 15000
+snap step2-shell
+key n
+stable 700 15000
+key n
+stable 700 15000
+snap step4-line100
+key N
+stable 700 15000
+snap step-back
+# and an ordinary LOOK on a row goes there too — the leading word IS a
+# location, so the right-click look resolves it like any other path. Row 4
+# again, this time by clicking it.
+press right 16 28
+release right 16 28
+stable 700 15000
+snap look-row
diff --git a/test/snapshots/leader.golden b/test/snapshots/leader.golden
index 6f88ad7e..831d4557 100644
--- a/test/snapshots/leader.golden
+++ b/test/snapshots/leader.golden
@@ -196,13 +196,13 @@
| 9 SPC f g Grep
| 10 SPC f s Save
| 11 SPC h t Tutor
-| 12 SPC k Kill
-| 13 SPC l D WsDiagnostics
-| 14 SPC l S WsSymbols
-| 15 SPC l a CodeAction
-| 16 SPC l d Diagnostics
-| 17 SPC l h SelectRefs
-| 18 SPC l i Lspinfo
+| 12 SPC j i Forward
+| 13 SPC j j Last
+| 14 SPC j l Jumplist
+| 15 SPC j o Back
+| 16 SPC k Kill
+| 17 SPC l D WsDiagnostics
+| 18 SPC l S WsSymbols
== snap help-group grid=100x40 cursor=7,22
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
@@ -360,13 +360,13 @@
| 9 SPC f g Grep
| 10 SPC f s Save
| 11 SPC h t Tutor
-| 12 SPC k Kill
-| 13 SPC l D WsDiagnostics
-| 14 SPC l S WsSymbols
-| 15 SPC l a CodeAction
-| 16 SPC l d Diagnostics
-| 17 SPC l h SelectRefs
-| 18 SPC l i Lspinfo
+| 12 SPC j i Forward
+| 13 SPC j j Last
+| 14 SPC j l Jumplist
+| 15 SPC j o Back
+| 16 SPC k Kill
+| 17 SPC l D WsDiagnostics
+| 18 SPC l S WsSymbols
== snap help-toggles grid=100x40 cursor=7,22
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del
diff --git a/test/snapshots/ttyhelp.golden b/test/snapshots/ttyhelp.golden
index 6cb6d930..ec3a4fd6 100644
--- a/test/snapshots/ttyhelp.golden
+++ b/test/snapshots/ttyhelp.golden
@@ -45,21 +45,21 @@
| 9 SPC f g Grep
| 10 SPC f s Save
| 11 SPC h t Tutor
-| 12 SPC k Kill
-| 13 SPC l D WsDiagnostics
-| 14 SPC l S WsSymbols
-| 15 SPC l a CodeAction
-| 16 SPC l d Diagnostics
-| 17 SPC l h SelectRefs
-| 18 SPC l i Lspinfo
-| 19 SPC l k Hover
-| 20 SPC l r Rename
-| 21 SPC l s Symbols
-| 22 SPC l w Lspwhy
-| 23 SPC s d Dump
-| 24 SPC s r Restore
-| 25 SPC t a Ascii
-| 26 SPC t c Colors
+| 12 SPC j i Forward
+| 13 SPC j j Last
+| 14 SPC j l Jumplist
+| 15 SPC j o Back
+| 16 SPC k Kill
+| 17 SPC l D WsDiagnostics
+| 18 SPC l S WsSymbols
+| 19 SPC l a CodeAction
+| 20 SPC l d Diagnostics
+| 21 SPC l h SelectRefs
+| 22 SPC l i Lspinfo
+| 23 SPC l k Hover
+| 24 SPC l r Rename
+| 25 SPC l s Symbols
+| 26 SPC l w Lspwhy
== snap leaderworks grid=100x30 cursor=7,4
|Kill Newcol Tutor Debug NextColor Dump Find Grep Help
| TTY /tmp/pardes-snap/ttyhelp/cwd Del
@@ -76,18 +76,18 @@
| 9 SPC f g Grep
| 10 SPC f s Save
| 11 SPC h t Tutor
-| 12 SPC k Kill
-| 13 SPC l D WsDiagnostics
-| 14 SPC l S WsSymbols
-| 15 SPC l a CodeAction
-| 16 SPC l d Diagnostics
-| 17 SPC l h SelectRefs
-| 18 SPC l i Lspinfo
-| 19 SPC l k Hover
-| 20 SPC l r Rename
-| 21 SPC l s Symbols
-| 22 SPC l w Lspwhy
-| 23 SPC s d Dump
-| 24 SPC s r Restore
-| 25 SPC t a Ascii
-| 26 SPC t c Colors
+| 12 SPC j i Forward
+| 13 SPC j j Last
+| 14 SPC j l Jumplist
+| 15 SPC j o Back
+| 16 SPC k Kill
+| 17 SPC l D WsDiagnostics
+| 18 SPC l S WsSymbols
+| 19 SPC l a CodeAction
+| 20 SPC l d Diagnostics
+| 21 SPC l h SelectRefs
+| 22 SPC l i Lspinfo
+| 23 SPC l k Hover
+| 24 SPC l r Rename
+| 25 SPC l s Symbols
+| 26 SPC l w Lspwhy