nandi/frqpublic Fork 0
230bbef
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Take the terminal loop that paints only when the tree moved

jolt-native's terminal backend laid out and painted the whole tree every
tick, sixty times a second, whether or not anything had changed. An frq
conversation sitting idle in a terminal cost most of a core for it, and
the several left open around a working day cost one each.

Upstream now sets a flag in the five backend operations every reconciler
change passes through, and paints when it is set — `tick` already blocks
for up to a frame waiting for input, so the loop sleeps there instead of
spinning. Measured here on the demo screen, untouched: 134% of a core
becomes 7.9%.

Nothing on this side changes. The headless screenshot is the same bytes
it was, tag for tag, which is the check that says the frames not painted
were the frames that would have painted nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
nandi committed 2026-09-03T13:00:57-07:00 Browse files
230bbef parent: 2705788
modified flake.lock +5 -5
@@ -110,16 +110,16 @@
110110 "jolt-native": {
111111 "flake": false,
112112 "locked": {
113- "lastModified": 1788424155,
114- "narHash": "sha256-Nhs7PyighRRT8DSha1UUrOjl5IZ2wkNMGM1ihFiwHsc=",
113+ "lastModified": 1788464616,
114+ "narHash": "sha256-MvLa9/ipW3phQjBu+f1vNyzZtyFCvfwOeqKWxuw+lTg=",
115115 "ref": "refs/heads/main",
116- "rev": "c2d912f670b7a2e5808970d17cecf51c6c87cfbf",
117- "revCount": 41,
116+ "rev": "384390d0e216cb6f0e9be8e597b9d16e7a64bb29",
117+ "revCount": 42,
118118 "type": "git",
119119 "url": "https://gitlab.com/nandithebull/jolt-native"
120120 },
121121 "original": {
122- "rev": "c2d912f670b7a2e5808970d17cecf51c6c87cfbf",
122+ "rev": "384390d0e216cb6f0e9be8e597b9d16e7a64bb29",
123123 "type": "git",
124124 "url": "https://gitlab.com/nandithebull/jolt-native"
125125 }
@@ -110,16 +110,16 @@
110 "jolt-native": {110 "jolt-native": {
111 "flake": false,111 "flake": false,
112 "locked": {112 "locked": {
113- "lastModified": 1788424155,113+ "lastModified": 1788464616,
114- "narHash": "sha256-Nhs7PyighRRT8DSha1UUrOjl5IZ2wkNMGM1ihFiwHsc=",114+ "narHash": "sha256-MvLa9/ipW3phQjBu+f1vNyzZtyFCvfwOeqKWxuw+lTg=",
115 "ref": "refs/heads/main",115 "ref": "refs/heads/main",
116- "rev": "c2d912f670b7a2e5808970d17cecf51c6c87cfbf",116+ "rev": "384390d0e216cb6f0e9be8e597b9d16e7a64bb29",
117- "revCount": 41,117+ "revCount": 42,
118 "type": "git",118 "type": "git",
119 "url": "https://gitlab.com/nandithebull/jolt-native"119 "url": "https://gitlab.com/nandithebull/jolt-native"
120 },120 },
121 "original": {121 "original": {
122- "rev": "c2d912f670b7a2e5808970d17cecf51c6c87cfbf",122+ "rev": "384390d0e216cb6f0e9be8e597b9d16e7a64bb29",
123 "type": "git",123 "type": "git",
124 "url": "https://gitlab.com/nandithebull/jolt-native"124 "url": "https://gitlab.com/nandithebull/jolt-native"
125 }125 }
modified flake.nix +1 -1
@@ -46,7 +46,7 @@
4646 # drift this comment warns about wearing a different hat: one input, and
4747 # the window and the terminal are the same library either way.
4848 jolt-native = {
49- url = "git+https://gitlab.com/nandithebull/jolt-native?rev=c2d912f670b7a2e5808970d17cecf51c6c87cfbf";
49+ url = "git+https://gitlab.com/nandithebull/jolt-native?rev=384390d0e216cb6f0e9be8e597b9d16e7a64bb29";
5050 flake = false;
5151 };
5252
@@ -46,7 +46,7 @@
46 # drift this comment warns about wearing a different hat: one input, and46 # drift this comment warns about wearing a different hat: one input, and
47 # the window and the terminal are the same library either way.47 # the window and the terminal are the same library either way.
48 jolt-native = {48 jolt-native = {
49- url = "git+https://gitlab.com/nandithebull/jolt-native?rev=c2d912f670b7a2e5808970d17cecf51c6c87cfbf";49+ url = "git+https://gitlab.com/nandithebull/jolt-native?rev=384390d0e216cb6f0e9be8e597b9d16e7a64bb29";
50 flake = false;50 flake = false;
51 };51 };
52 52