Pin the backend at the scroll and column fixes the chat screen needed
The backlog opened on the oldest line and stayed there, because a viewport's offset lived in a prop and a re-render clears props — so the position was lost every time a message arrived. It is remembered under :scroll-key now, sticky ones follow their own bottom, and a reader who scrolls up keeps their place. With that visible, two more: a column could not shrink at all, so a backlog taller than the screen painted the compose bar past the bottom edge; and a width-request was a floor rather than a width, so the chats list was as wide as the longest thing anyone had said in it and the conversation beside it got ten cells. Both are what the split view looks like, rather than notes about it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5c7976e parent: d6bf5a7 modified
flake.lock +5 -5 | @@ -127,16 +127,16 @@ | ||
| 127 | 127 | "jolt-native-tui": { |
| 128 | 128 | "flake": false, |
| 129 | 129 | "locked": { |
| 130 | - "lastModified": 1788329783, | |
| 131 | - "narHash": "sha256-ZL1ot4qOHik/a44oLloppM/aLxJT6PR+SSosdTDmEsw=", | |
| 130 | + "lastModified": 1788331190, | |
| 131 | + "narHash": "sha256-iH35HO0ViHryfld1QKNb5xCUIDFbQsUWXvMpLA0JFb0=", | |
| 132 | 132 | "ref": "refs/heads/main", |
| 133 | - "rev": "5acc801872977305e0f29a8dc4aca4ddca240f98", | |
| 134 | - "revCount": 33, | |
| 133 | + "rev": "68910bd024f8012cf0a0248b2c01850714a3ef49", | |
| 134 | + "revCount": 34, | |
| 135 | 135 | "type": "git", |
| 136 | 136 | "url": "https://gitlab.com/nandithebull/jolt-native" |
| 137 | 137 | }, |
| 138 | 138 | "original": { |
| 139 | - "rev": "5acc801872977305e0f29a8dc4aca4ddca240f98", | |
| 139 | + "rev": "68910bd024f8012cf0a0248b2c01850714a3ef49", | |
| 140 | 140 | "type": "git", |
| 141 | 141 | "url": "https://gitlab.com/nandithebull/jolt-native" |
| 142 | 142 | } |
| @@ -127,16 +127,16 @@ | |||
| 127 | "jolt-native-tui": { | 127 | "jolt-native-tui": { |
| 128 | "flake": false, | 128 | "flake": false, |
| 129 | "locked": { | 129 | "locked": { |
| 130 | - "lastModified": 1788329783, | 130 | + "lastModified": 1788331190, |
| 131 | - "narHash": "sha256-ZL1ot4qOHik/a44oLloppM/aLxJT6PR+SSosdTDmEsw=", | 131 | + "narHash": "sha256-iH35HO0ViHryfld1QKNb5xCUIDFbQsUWXvMpLA0JFb0=", |
| 132 | "ref": "refs/heads/main", | 132 | "ref": "refs/heads/main", |
| 133 | - "rev": "5acc801872977305e0f29a8dc4aca4ddca240f98", | 133 | + "rev": "68910bd024f8012cf0a0248b2c01850714a3ef49", |
| 134 | - "revCount": 33, | 134 | + "revCount": 34, |
| 135 | "type": "git", | 135 | "type": "git", |
| 136 | "url": "https://gitlab.com/nandithebull/jolt-native" | 136 | "url": "https://gitlab.com/nandithebull/jolt-native" |
| 137 | }, | 137 | }, |
| 138 | "original": { | 138 | "original": { |
| 139 | - "rev": "5acc801872977305e0f29a8dc4aca4ddca240f98", | 139 | + "rev": "68910bd024f8012cf0a0248b2c01850714a3ef49", |
| 140 | "type": "git", | 140 | "type": "git", |
| 141 | "url": "https://gitlab.com/nandithebull/jolt-native" | 141 | "url": "https://gitlab.com/nandithebull/jolt-native" |
| 142 | } | 142 | } |
modified
flake.nix +1 -1 | @@ -51,7 +51,7 @@ | ||
| 51 | 51 | # and only `tui` evaluates this. When the backend ships in a release the |
| 52 | 52 | # two become one pin again. |
| 53 | 53 | jolt-native-tui = { |
| 54 | - url = "git+https://gitlab.com/nandithebull/jolt-native?rev=5acc801872977305e0f29a8dc4aca4ddca240f98"; | |
| 54 | + url = "git+https://gitlab.com/nandithebull/jolt-native?rev=68910bd024f8012cf0a0248b2c01850714a3ef49"; | |
| 55 | 55 | flake = false; |
| 56 | 56 | }; |
| 57 | 57 | |
| @@ -51,7 +51,7 @@ | |||
| 51 | # and only `tui` evaluates this. When the backend ships in a release the | 51 | # and only `tui` evaluates this. When the backend ships in a release the |
| 52 | # two become one pin again. | 52 | # two become one pin again. |
| 53 | jolt-native-tui = { | 53 | jolt-native-tui = { |
| 54 | - url = "git+https://gitlab.com/nandithebull/jolt-native?rev=5acc801872977305e0f29a8dc4aca4ddca240f98"; | 54 | + url = "git+https://gitlab.com/nandithebull/jolt-native?rev=68910bd024f8012cf0a0248b2c01850714a3ef49"; |
| 55 | flake = false; | 55 | flake = false; |
| 56 | }; | 56 | }; |
| 57 | 57 | ||