@mmmbuto/nexuscrew 0.9.6 → 0.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,48 @@
2
2
 
3
3
  All notable changes to NexusCrew are tracked here.
4
4
 
5
+ ## 0.9.7 — 2026-08-18 — "Two Handles"
6
+
7
+ - **Selecting text in the terminal now has two draggable handles.** They mark
8
+ the start and the end of the selection and can be moved **after** the
9
+ selection is made — the gesture people already know from mobile terminals.
10
+ It works in a tile, in the popup and in the main session, because they share
11
+ one terminal.
12
+
13
+ The selection itself stays where it belongs: **inside the terminal
14
+ emulator**. The handles are a view recomputed from the emulator's own
15
+ selection on every render and scroll, never a remembered position — which is
16
+ how handles drift away from what they point at. Dragging one writes back
17
+ through the emulator's API rather than recalculating which cells are
18
+ selected.
19
+
20
+ Three cases decide whether this is usable rather than merely present, and
21
+ each is pinned by a test:
22
+
23
+ - dragging a handle past the edge **scrolls** and extends the selection,
24
+ because the range is held in buffer coordinates rather than screen ones —
25
+ but **not** inside a full-screen application, where scrolling belongs to
26
+ that application and taking it over would break it;
27
+ - the handle hangs **below** the point it sets and follows the finger by the
28
+ offset it was grabbed at, so the finger never has to cover the thing it is
29
+ positioning;
30
+ - the handles cannot cross each other, and the selection survives a redraw.
31
+
32
+ - **If the text underneath a live selection is overwritten, the interface now
33
+ says so.** A selection is held against buffer coordinates, so output that
34
+ rewrites those lines changes what a copy would produce while the reader still
35
+ has the old text in mind. That is a consequence of the design rather than a
36
+ defect — and consequences that a reader cannot see are the thing this project
37
+ keeps removing, so it is stated instead of left implicit.
38
+
39
+ The check reads only the rendered lines that intersect the selection, not the
40
+ whole selection on every frame; a test pins the **cost**, not just the
41
+ outcome, by asserting that output elsewhere reads nothing at all.
42
+
43
+ Declared limit: a change to selected lines that never enters a rendered frame
44
+ will not raise the notice. The indicator is a courtesy, not a correctness
45
+ gate, and everything visible passes through a render.
46
+
5
47
  ## 0.9.6 — 2026-08-18 — "Causes With Names"
6
48
 
7
49
  The previous release fixed a blank panel, a service that hung on a terminal, and