dev-null-tty 0.3.0__tar.gz → 0.4.0__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dev-null-tty
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: A terminal interface for /dev/null
5
5
  Author: Avetis Avo Pisikyan
6
6
  Author-email: Avetis Avo Pisikyan <apisikya@gmail.com>
@@ -18,7 +18,10 @@ with [Textual](https://textual.textualize.io/) and managed with
18
18
 
19
19
  The **Following**, **Latest**, and **Trending** journals load real commits from
20
20
  the signed `/api/v1/log/{log}` endpoint after sign-in. Each journal supports
21
- automatic cursor-based infinite scrolling. Guest users can view the profile
21
+ automatic cursor-based infinite scrolling, with a bottom-right notification
22
+ while another page loads. When a selected commit is clipped, `j` / `k` scroll
23
+ it into view before changing selection; oversized commits scroll through before
24
+ advancing. Guest users can view the profile
22
25
  and sign in; journals require an approved device. Signed-in
23
26
  users can browse a cursor-paginated notifications inbox, publish commits,
24
27
  reply to a commit, or quote it. Opening the notifications inbox marks
@@ -53,11 +56,12 @@ are labeled beside the commenter's name; the replying-to pane also shows the
53
56
  quoted author's name and text inline. Quoted text wraps to the available width,
54
57
  and deleted or unavailable targets are labeled where previews are shown. In a
55
58
  commit thread, press `i` to open
56
- the current commit's expanded image view. A minimap overlay appears
59
+ the current commit's expanded image view. Opening a commit preloads its attached images
60
+ into a bounded in-memory cache for faster browsing. A minimap overlay appears
57
61
  in the upper-left corner. The full image initially fits inside the available
58
62
  view frame without stretching; zooming moves a frame-sized viewport over it.
59
63
  Use `n` / `Ctrl+N` to move to
60
- the next / previous image, `=` / `-` to zoom in / out, and `h` / `j` / `k` / `l`
64
+ the next / previous image (wrapping at either end), `=` / `-` to zoom in / out, and `h` / `j` / `k` / `l`
61
65
  to pan while zoomed. A compact square minimap appears while zoomed, showing the
62
66
  view position as a dot; the image edge turns red when you reach it. Panning
63
67
  allows a small buffer beyond the image edges, and the image-view keybinds remain
@@ -70,7 +74,9 @@ highlighted help line shows the active image keybinds. The composer action
70
74
  buttons share one row at the bottom.
71
75
  Press `Enter` on a selected journal entry to open its full commit and replies.
72
76
  Use `j` / `k` to navigate replies; if the selected reply is partly obscured,
73
- they first scroll it fully into view. Press `Enter` to follow a reply into its
77
+ they first scroll it into view. Oversized replies scroll through their remaining
78
+ content before selection advances. Deleted replies remain visible as tombstones
79
+ and cannot be opened or acted on. Press `Enter` to follow a reply into its
74
80
  own thread, `u` to move to the parent comment, and `q` or `Escape` to return to
75
81
  the previous screen. Commit details show the ancestor and parent-comment
76
82
  context in a scrollable pane on the left, and the comment being replied to
@@ -98,6 +104,19 @@ key with a signed `GET /api/v1/me` and restores the profile when the device is
98
104
  still approved. A revoked or unapproved key is retained, but the app remains
99
105
  signed out so you can authorize a device again.
100
106
 
107
+ Signed-in journal pages are cached locally under
108
+ `$XDG_CACHE_HOME/dev-null-tui/` (or `~/.cache/dev-null-tui/` when
109
+ `XDG_CACHE_HOME` is unset). Cache files are private to the account and the
110
+ cache directory/file use owner-only permissions. Each journal keeps at most
111
+ one page of commits; cached pages display immediately at startup while the
112
+ active journal refreshes in the background. Other cached journals refresh when
113
+ opened. The last signed-in profile is cached too, so the profile and journal
114
+ cards can render while an existing saved device key is being checked. This
115
+ cached view does not enable signed-in actions until the API confirms the
116
+ device. An explicit authentication rejection clears that account's cached
117
+ profile and journals; missing keys, network errors, and manual logout leave the
118
+ cache intact.
119
+
101
120
  **Log out** removes the local private and public key files and clears the
102
121
  in-memory session; callback handoff data and the callback-handler registration
103
122
  are left untouched. This API does not expose a device-revocation endpoint, so
@@ -6,7 +6,10 @@ with [Textual](https://textual.textualize.io/) and managed with
6
6
 
7
7
  The **Following**, **Latest**, and **Trending** journals load real commits from
8
8
  the signed `/api/v1/log/{log}` endpoint after sign-in. Each journal supports
9
- automatic cursor-based infinite scrolling. Guest users can view the profile
9
+ automatic cursor-based infinite scrolling, with a bottom-right notification
10
+ while another page loads. When a selected commit is clipped, `j` / `k` scroll
11
+ it into view before changing selection; oversized commits scroll through before
12
+ advancing. Guest users can view the profile
10
13
  and sign in; journals require an approved device. Signed-in
11
14
  users can browse a cursor-paginated notifications inbox, publish commits,
12
15
  reply to a commit, or quote it. Opening the notifications inbox marks
@@ -41,11 +44,12 @@ are labeled beside the commenter's name; the replying-to pane also shows the
41
44
  quoted author's name and text inline. Quoted text wraps to the available width,
42
45
  and deleted or unavailable targets are labeled where previews are shown. In a
43
46
  commit thread, press `i` to open
44
- the current commit's expanded image view. A minimap overlay appears
47
+ the current commit's expanded image view. Opening a commit preloads its attached images
48
+ into a bounded in-memory cache for faster browsing. A minimap overlay appears
45
49
  in the upper-left corner. The full image initially fits inside the available
46
50
  view frame without stretching; zooming moves a frame-sized viewport over it.
47
51
  Use `n` / `Ctrl+N` to move to
48
- the next / previous image, `=` / `-` to zoom in / out, and `h` / `j` / `k` / `l`
52
+ the next / previous image (wrapping at either end), `=` / `-` to zoom in / out, and `h` / `j` / `k` / `l`
49
53
  to pan while zoomed. A compact square minimap appears while zoomed, showing the
50
54
  view position as a dot; the image edge turns red when you reach it. Panning
51
55
  allows a small buffer beyond the image edges, and the image-view keybinds remain
@@ -58,7 +62,9 @@ highlighted help line shows the active image keybinds. The composer action
58
62
  buttons share one row at the bottom.
59
63
  Press `Enter` on a selected journal entry to open its full commit and replies.
60
64
  Use `j` / `k` to navigate replies; if the selected reply is partly obscured,
61
- they first scroll it fully into view. Press `Enter` to follow a reply into its
65
+ they first scroll it into view. Oversized replies scroll through their remaining
66
+ content before selection advances. Deleted replies remain visible as tombstones
67
+ and cannot be opened or acted on. Press `Enter` to follow a reply into its
62
68
  own thread, `u` to move to the parent comment, and `q` or `Escape` to return to
63
69
  the previous screen. Commit details show the ancestor and parent-comment
64
70
  context in a scrollable pane on the left, and the comment being replied to
@@ -86,6 +92,19 @@ key with a signed `GET /api/v1/me` and restores the profile when the device is
86
92
  still approved. A revoked or unapproved key is retained, but the app remains
87
93
  signed out so you can authorize a device again.
88
94
 
95
+ Signed-in journal pages are cached locally under
96
+ `$XDG_CACHE_HOME/dev-null-tui/` (or `~/.cache/dev-null-tui/` when
97
+ `XDG_CACHE_HOME` is unset). Cache files are private to the account and the
98
+ cache directory/file use owner-only permissions. Each journal keeps at most
99
+ one page of commits; cached pages display immediately at startup while the
100
+ active journal refreshes in the background. Other cached journals refresh when
101
+ opened. The last signed-in profile is cached too, so the profile and journal
102
+ cards can render while an existing saved device key is being checked. This
103
+ cached view does not enable signed-in actions until the API confirms the
104
+ device. An explicit authentication rejection clears that account's cached
105
+ profile and journals; missing keys, network errors, and manual logout leave the
106
+ cache intact.
107
+
89
108
  **Log out** removes the local private and public key files and clears the
90
109
  in-memory session; callback handoff data and the callback-handler registration
91
110
  are left untouched. This API does not expose a device-revocation endpoint, so
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dev-null-tty"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  description = "A terminal interface for /dev/null"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dev-null-tty"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  description = "A terminal interface for /dev/null"
5
5
  readme = "README.md"
6
6
  authors = [