-
30bffd70c3
Revert "Scroll smear + ragged border: align the width model to a one-cell emoji"
Jean-Pierre Martineau
2026-07-16 23:41:50 -04:00
-
966900a9dc
Revert "Drop the +1 last-column width reclaim"
Jean-Pierre Martineau
2026-07-16 23:28:37 -04:00
-
ee047f1212
Drop the +1 last-column width reclaim

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 23:26:02 -04:00
-
20991acc91
Scroll smear + ragged border: align the width model to a one-cell emoji

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 23:09:16 -04:00
-
7e4fa23205
Scroll smear: full-repaint any frame with an emoji, not just floating dialogs

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 22:47:29 -04:00
-
9ce1e63dc9
Dialogs: full-repaint on scroll to clear a smear off the static frame

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 22:11:05 -04:00
-
82ed64ffcd
Dialogs: reflush the frame on scroll so a braille body can't leave a smear

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 21:38:44 -04:00
-
583be7c4f7
Compose fields: share one UTF-8 byte gauge, and put it on the courier entry

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 21:05:23 -04:00
-
ec41de0339
Route graph: draw the featured path in plain white, and give the packet viewer one

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 21:04:58 -04:00
-
310783c6a3
Repeater admin: float the login over the node picker, not a blank frame

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 20:33:12 -04:00
-
59b26ae616
Dialogs: float confirms/prompts over their backdrop, never replace the screen

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-16 20:07:41 -04:00
-
115fe6895d
Dialogs: multi-layer floats, red data-loss tier, unknown-relay hashes

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 23:30:58 -04:00
-
ed391ab16e
Trophy case + route graph: node-type marks, SNR colour, reliability

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 20:26:47 -04:00
-
8a1c069a96
Trophy case: draw a record's swept area beside its stats

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 18:17:07 -04:00
-
f1b06bf2e2
Trophy case: draw each record's walk on the shared route graph

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 16:18:42 -04:00
-
4f78ba5a54
Path graph: keep node labels whole until they overflow the canvas

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 15:50:56 -04:00
-
ccac419880
Trace: score every walk home into the trophy case

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 15:24:29 -04:00
-
5020c924f3
Trophy case: browse the record-setting walks from the main menu

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 13:59:53 -04:00
-
f1385666a8
Records: score every walk into a trophy case, per discipline

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-15 13:16:18 -04:00
-
7ac50ade53
Path graph: extract the fan-lane route graph into a shared widget

Jean-Pierre MartineauandClaude Fable 5
2026-07-14 23:14:01 -04:00
-
efb26dd93f
Trace: drop the 8-byte width from the Path width picker

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 18:17:18 -04:00
-
32734cc51a
Trace path: reverse a walk to measure it the other direction

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 03:11:28 -04:00
-
5a63574a9e
Trace path: seed Compose from the route on screen, not the empty spec

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 03:07:46 -04:00
-
53b7aa5724
Trace path: set the Compose row apart from the trace settings

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 03:06:34 -04:00
-
965783d276
Network (TCP) companions: connect, remember, and manage from the picker

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 02:38:11 -04:00
-
a27b5951b7
Copyright: one canonical notice, hung under the logo

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 02:07:53 -04:00
-
216a6549f5
CLI: strip the framing from scripted output, keep a legible splash

Jean-Pierre MartineauandClaude Haiku 4.5
2026-07-14 01:44:26 -04:00
-
d977aeb22a
Channels: mute a channel's notifications from its detail screen

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 01:18:41 -04:00
-
6aecb58e59
Battery: use the standard BLE charging flag when a device exposes it

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 00:59:19 -04:00
-
e73cea9f42
Battery: read the charging trend robustly so noise stops faking it

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 00:22:33 -04:00
-
6823519503
Trace: size the reply-wait to the route length

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-14 00:05:47 -04:00
-
7d3e4b4412
Channels: bound the never-rejecting slot probe, cache the capacity

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 23:38:05 -04:00
-
2f0e2687b0
Device state: warm the slow caches in the background after login

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 23:03:22 -04:00
-
e07ef3b379
Device state: cache the picker reads that run before each screen

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 22:41:58 -04:00
-
736b420a4f
Device state: session-cache the reads screens make on open

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 22:09:14 -04:00
-
b94e0469db
Settings: allow the pytest and beep commands used while iterating

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 21:52:36 -04:00
-
5ee3bb998c
Activity charts: bucket by local time in SQL, storing UTC

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 21:24:29 -04:00
-
29b1d66c7c
Message paths: stack relay labels above/below in the name's hue

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 21:06:51 -04:00
-
bdd4650133
Full width: reclaim the terminal's under-reported last column

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 18:47:08 -04:00
-
dfd7d2332d
Battery gauge: a braille fuel gauge pinned to the header's right edge

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 18:12:43 -04:00
-
cba3be3f69
Atlas: a sparser fan, every node named to the right of its icon

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 17:49:17 -04:00
-
b508f2fe27
Busy overlay: skeleton card with a Knight-Rider braille scanner

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 03:43:15 -04:00
-
71b7d44263
Splash footnote: attributed copyright with auto-extending year range

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 02:34:25 -04:00
-
350cf67360
Day/hour ticks: fit to each label's real width, not the longest

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-13 00:12:12 -04:00
-
bc1ba7de4c
Day charts: even-spaced date ticks back, an hour per column at 24 h

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 23:13:49 -04:00
-
8d2096767f
Day charts: notch only between days, first bar flush with the axis

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 22:50:23 -04:00
-
7f1d8e7d10
Day charts: even dot-split columns, packed right-first ticks, honest y-marks

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 21:09:12 -04:00
-
ff76f41736
Allowlist pytest and git add/commit so routine runs stop prompting

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 19:07:43 -04:00
-
060f4b1eb6
Message paths: hash-byte labels, white-over-gray edges, a taller graph

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 18:54:54 -04:00
-
adc0e9f04d
Clearing a channel drops its unread from the global count

Jean-Pierre MartineauandClaude Sonnet 5
2026-07-12 18:05:19 -04:00
-
a52dfc7b12
Dashboard: start with the newest packet highlighted

Jean-Pierre MartineauandClaude Sonnet 5
2026-07-12 17:56:22 -04:00
-
7f1750df0e
purge-test-data: mock pollution housekeeping as a skill

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 17:35:02 -04:00
-
94f565e61f
Windowed lists everywhere the chrome should hold still

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 17:23:41 -04:00
-
94aba0cbcd
Message paths: a path graph over selectable, sideways-scrolling rows

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 15:47:56 -04:00
-
2dca52fa56
Atlas: focus-left canvas that earns its area, list that scrolls in place

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 15:41:58 -04:00
-
8330c5a5db
path_text grows the trace flavour: one widget for every path

Jean-Pierre MartineauandClaude Fable 5
2026-07-12 15:41:55 -04:00
-
534128ab84
Configure verify skill for a cheaper model

Jean-Pierre MartineauandClaude Haiku 4.5
2026-07-12 11:32:19 -04:00
-
56b7580e48
Chat shows a message's delivery paths on demand (^P)

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 04:37:57 -04:00
-
d4f7b33580
path_text: one compact, single-line path widget

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 04:23:37 -04:00
-
34a3b0a01d
Atlas redesigned: walk the mesh from a focus node

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 04:17:03 -04:00
-
34c6ada1ae
Write the UX standards down: CLAUDE.md

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 04:06:10 -04:00
-
826ab5b4ee
Buttons are chips, status marks are ✓/✗, confirms are dialogs

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 04:04:35 -04:00
-
84a2c45f12
Footer hints: one grammar, Esc always last, one key notation

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 03:59:22 -04:00
-
d1c8ed73a0
Titles speak one language: Sentence case, no emoji, — for subjects

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 03:55:12 -04:00
-
241be536d8
One exit language: shared menu chrome in ui/menus.py

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 03:48:48 -04:00
-
1c267378ef
Relative ages speak grammar: "(now)", never "now ago"

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 03:30:19 -04:00
-
70efb7c694
Grow-only dialogs, full raw labels, node rhythm in 15-min slices

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 03:25:15 -04:00
-
dfc4cb9845
Chart axis ticks, dialog polish, Time Machine alignment

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-12 01:14:50 -04:00
-
a3398bebf5
UI punch-list: dashboard feed, chart axes, chat counter, popups

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-11 22:47:36 -04:00
-
fa340bec03
Chart notches break the baseline cleanly to the axis

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-11 21:10:00 -04:00
-
4e8325af08
Mesh day charts: exact axis width, notched day boundaries

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-11 20:16:59 -04:00
-
d19266bd5c
Punch-list pass: dashboard hints, packet paging, decrypt, Time Machine axes

Jean-Pierre MartineauandClaude Opus 4.8
2026-07-11 19:29:45 -04:00
-
87b3410ca8
Time Machine mesh page: day charts up to chart standards

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:49:02 -04:00
-
d61d4fbbed
Menu: split the crowded Mesh section, Messaging now leads

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:49:02 -04:00
-
3fdf9ae7c7
Courier recipient picker: heat-coloured names, shared type glyphs

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:49:02 -04:00
-
1205ef211b
Packet viewer paging walks the feed highlight in step

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:44:39 -04:00
-
21c5017706
Chat byte budget rides the input line and can no longer vanish

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:44:39 -04:00
-
872156b388
Dashboard rebuilt around the packet viewer: open any feed row

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:35:54 -04:00
-
072a4573fe
Activity charts: a previous session's history dims to grey

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:35:41 -04:00
-
3903d996db
Activity and traffic persist across sessions, with housekeeping

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:22:29 -04:00
-
30498efe0b
Time Machine: intermediate time marks, contact names fill the blanks

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:16:38 -04:00
-
b50d201c24
Hash and name conventions: display budget, shared hue palette

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:12:01 -04:00
-
f9411bfc9b
Braille meter and axis captions: two new shared chart widgets

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 18:11:42 -04:00
-
ffa834182b
Mesh Atlas rebuilt: a radar scope you can zoom, pan, and search

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 15:26:30 -04:00
-
36e8173b5a
Map: arrows-only movement, find-as-you-type node filter

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 15:17:33 -04:00
-
7a7adc9dab
Time Machine: laned picker and arrivals, mesh-wide rhythm

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 15:10:54 -04:00
-
14caab0dff
Show key popup: labelled blocks that wrap, not a table

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 15:05:10 -04:00
-
c7afe7998b
Channel list: drop the TYPE and HASH lanes

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 15:03:12 -04:00
-
169ea8af11
Dashboard + Time Machine charts through the shared widget, now at the right

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 15:01:47 -04:00
-
8e931efe6f
Header + channel sparklines: now on the right, tighter status row

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 14:56:50 -04:00
-
219f121625
Braille chart widget: one timeline renderer, now on the right, grey = zero

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 14:50:23 -04:00
-
d75a9aa2db
Courier: a store-and-forward outbox that delivers when the node shows up

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 05:52:51 -04:00
-
908696a2d2
Time Machine: the recorded history, explorable node by node

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 05:43:30 -04:00
-
b6fcda0f91
Watchtower: a passive sentinel with alerts for the nodes you care about

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 05:35:36 -04:00
-
9501505bed
Mesh Atlas: the observed topology, drawn as a walkable braille graph

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 05:23:49 -04:00
-
a4804b8716
Header sparkline: minute columns, 1/3/8/21 shoulders, fill the row

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 05:07:20 -04:00
-
5ff3d7ebd0
Dashboard activity chart: newest left, minute buckets, full braille width

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 05:03:13 -04:00
-
aef80d18bb
Repeater admin: set up remote nodes over the mesh

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 04:14:16 -04:00
-
62585f5602
Dashboard: the live mesh overview leading the Mesh section

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 04:00:16 -04:00
-
5046a86980
TX optimize rebuilt on the trace screen's armed-idle pattern

Jean-Pierre MartineauandClaude Fable 5
2026-07-11 03:51:01 -04:00