-
eb8ecb46c8
Updated splash screen (ANSI art, CP437)
Jean-Pierre Martineau
2026-08-25 01:31:47 -04:00
-
ed06492bd0
Splash: the wordmark states its own copyright, and blank is a space

Jean-Pierre MartineauandClaude Opus 5
2026-08-25 01:15:46 -04:00
-
c439dec289
Wordmark: an .ans is CP437, and its newlines are not its rows

Jean-Pierre MartineauandClaude Opus 5
2026-08-25 01:04:37 -04:00
-
f870bff990
Node pickers: a repeater is still its own identity

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 20:41:56 -04:00
-
4e3208b1c2
Admin login: the repeater is not charged for the queue ahead of it

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 20:18:04 -04:00
-
7633f5153d
Admin login: hear the answer, even when the library has stopped listening

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 19:55:15 -04:00
-
667c0321e4
Admin login: silence from a node is not a wrong password

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 04:09:33 -04:00
-
afe1424819
Selection: white says "this one", and a chip is grey

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 03:56:35 -04:00
-
9ff25b3709
Device config: a coupled setting must not re-send a stale sibling

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 03:30:55 -04:00
-
337792d4d1
BLE: closing the client is not closing the link

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 02:03:17 -04:00
-
d3735c8f7b
BLE: a connect that fails must put the link back down

Jean-Pierre MartineauandClaude Opus 5
2026-08-24 01:32:42 -04:00
-
602bceea3b
Theme: the cursor row is white, not the wordmark's teal

Jean-Pierre MartineauandClaude Opus 5
2026-08-23 23:51:37 -04:00
-
1b6a5cc1e7
Packet viewer: a walked trace is not a direct shot
Jean-Pierre Martineau
2026-08-22 14:27:15 -04:00
-
bfd396da69
Docs: two surveys — navigation exceptions, and UI consistency
Jean-Pierre Martineau
2026-08-22 14:22:45 -04:00
-
e86d6a705a
Path composer: Esc already cancels, so the Cancel row goes
Jean-Pierre Martineau
2026-08-22 14:08:22 -04:00
-
71f60c0eeb
Packet viewer: show a trace's links, and say whose signal the reading is
Jean-Pierre Martineau
2026-08-22 14:03:23 -04:00
-
c246fb8080
Persistence: a trace's link readings get a column, not a borrowed one
Jean-Pierre Martineau
2026-08-22 14:00:48 -04:00
-
6217a7dc58
Packets: the frames a neighbour sends were being thrown away
Jean-Pierre Martineau
2026-08-22 13:57:06 -04:00
-
c19711c463
Map: don't build a street name the frame is about to throw away

Jean-Pierre MartineauandClaude Opus 5
2026-08-19 01:58:58 -04:00
-
c79ade3fab
Map: the rough first pass is off, behind a switch rather than a deletion

Jean-Pierre MartineauandClaude Opus 5
2026-08-19 01:09:55 -04:00
-
b4db55961f
Map: three optimisations that were undoing each other's work

Jean-Pierre MartineauandClaude Opus 5
2026-08-19 00:39:50 -04:00
-
98e8e5f260
Map: fetch the ground the next move will want, while nobody is waiting

Jean-Pierre MartineauandClaude Opus 5
2026-08-18 23:56:08 -04:00
-
8b5c27909b
Map: draw a rough frame first, so a moved view is never black for long

Jean-Pierre MartineauandClaude Opus 5
2026-08-18 23:19:35 -04:00
-
d12873694e
Map: magnify the stand-in ground by the dot, not by the glyph

Jean-Pierre MartineauandClaude Opus 5
2026-08-18 20:54:50 -04:00
-
f5d0fb3677
Map: silence about a tile is not the source saying it's empty

Jean-Pierre MartineauandClaude Opus 5
2026-08-18 20:28:34 -04:00
-
64d285a986
Revert "Battery: a frame a second, bought where the tick won't give it"
Jean-Pierre Martineau
2026-08-13 23:52:40 -04:00
-
385654ab5f
Battery: a frame a second, bought where the tick won't give it

Jean-Pierre MartineauandClaude Opus 5
2026-08-13 23:30:39 -04:00
-
2731af12cb
Battery: the sweep is the charging state, so it runs everywhere

Jean-Pierre MartineauandClaude Opus 5
2026-08-13 23:16:09 -04:00
-
88b2d347dd
Battery: a gauge that can't animate still says it's charging

Jean-Pierre MartineauandClaude Opus 5
2026-08-13 20:31:21 -04:00
-
16532ea14b
Bridge: forward the RX packet log so the live feed isn't advert-only

Jean-Pierre MartineauandClaude Opus 4.8
2026-08-13 01:57:49 -04:00
-
ec4836f63d
Live feed: the top of the list is two stops, watching and reading

Jean-Pierre MartineauandClaude Opus 5
2026-08-13 15:05:48 -04:00
-
3c714e4c84
Map picker: draw the frame the crosshair was in, not the one after it

Jean-Pierre MartineauandClaude Opus 5
2026-08-13 00:05:53 -04:00
-
9cc2d20747
Keep .patch files LF, like the scripts they sit beside
Jean-Pierre Martineau
2026-08-12 21:41:24 -04:00
-
3a02a14be7
XIAO radio: build upstream's serial env, not our own Serial1 patch
Jean-Pierre Martineau
2026-08-12 21:40:41 -04:00
-
b015091ae0
Credit MeshCore at meshcore.io, its authors' own site

Jean-Pierre MartineauandClaude Opus 5
2026-08-12 18:05:37 -04:00
-
33577e12ab
Chat: the day divider is a section heading, so it dresses like one

Jean-Pierre MartineauandClaude Opus 5
2026-08-12 17:58:59 -04:00
-
f22ffa5011
Chat: a sender label is a name drawn as a path line's chip

Jean-Pierre MartineauandClaude Opus 5
2026-08-12 17:46:10 -04:00
-
e5c756995e
Bridge: only push completed trace replies, with real per-hop SNRs

Jean-Pierre MartineauandClaude Opus 4.8
2026-08-13 00:47:02 -04:00
-
744e021fb0
Bridge: push TRACE_DATA for over-the-air trace replies

Jean-Pierre MartineauandClaude Opus 4.8
2026-08-12 22:56:29 -04:00
-
366719771f
Chat: a sender label is a name inscribed in a chip

Jean-Pierre MartineauandClaude Opus 5
2026-08-12 17:46:10 -04:00
-
ea9b7c1cb1
Main menu: Device config, Support MeshTerm

Jean-Pierre MartineauandClaude Opus 5
2026-08-12 17:15:00 -04:00
-
1693367f41
Main menu: every description inside the 72-column line

Jean-Pierre MartineauandClaude Opus 5
2026-08-12 16:40:27 -04:00
-
0ee350430d
CONTRIBUTING: opening a PR is how you agree

Jean-Pierre MartineauandClaude Sonnet 5
2026-08-12 03:03:43 -04:00
-
52abb00679
License: Apache-2.0, with a name of its own to protect

Jean-Pierre MartineauandClaude Sonnet 5
2026-08-12 02:38:23 -04:00
-
9f5d337cae
About MeshTerm: the page says something now

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 17:55:41 -04:00
-
0314ed7702
About pages: prose the app writes, not rows it composes

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 17:39:21 -04:00
-
3ccffd13c9
About MeshTerm: a sixth section, for the questions the five doings can't hold

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 16:55:46 -04:00
-
936ab10770
Traces: listen for the reply before the send goes out

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 12:30:34 -04:00
-
284e35edb4
Main menu: five sections, each one an answer to the question

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 02:22:07 -04:00
-
70ccb6b31d
Menus: ←→ slide a description out from under the right edge

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 02:10:58 -04:00
-
3376a18271
PicoCalc: a command row's icon lane is the first thing to go

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 02:08:41 -04:00
-
f46476bb84
Payload marks: a request goes up, its answer comes down

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 02:07:25 -04:00
-
80f18e235a
Trophy case: a board for the longest leg

Jean-Pierre MartineauandClaude Opus 5
2026-08-11 01:29:41 -04:00
-
ce86e86693
Packet card: two columns back from the gutter, and rssi holds its line

Jean-Pierre MartineauandClaude Opus 5
2026-08-10 17:01:51 -04:00
-
ab63a83bbc
Trace actions: the icon column is measured, not assumed

Jean-Pierre MartineauandClaude Opus 5
2026-08-10 17:01:42 -04:00
-
4c7fa8f812
Purge stale contacts: a one-day rung at the top of the ladder

Jean-Pierre MartineauandClaude Opus 5
2026-08-10 02:31:33 -04:00
-
2a3b78e015
Purge stale contacts: a bar to watch, a dialog to close

Jean-Pierre MartineauandClaude Opus 5
2026-08-10 01:30:19 -04:00
-
28bd7e6fd3
Compose path: the commit row names the action, not the route

Jean-Pierre MartineauandClaude Opus 5
2026-08-10 01:30:19 -04:00
-
07481c4fd1
Watchtower: pin the alert, scroll the message

Jean-Pierre MartineauandClaude Opus 5
2026-08-10 01:30:18 -04:00
-
c2640d9660
Path lines: chrome pays its own way, and every route says its length

Jean-Pierre MartineauandClaude Opus 5
2026-08-10 01:30:02 -04:00
-
771a865e8a
Trophy case: cut every walk the way the highlight is cut

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 21:57:00 -04:00
-
6e39537d73
Trophy case: the lanes hold, only the walk slides

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 21:39:23 -04:00
-
574f1303a7
Emoji width: the motorway was one cell all along

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 21:19:05 -04:00
-
09bae4cf43
add-narrow-emoji: teach the skill the direction it grew

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 21:06:39 -04:00
-
7c68f50bf5
Chips: the ★ keeps its padding after all

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 20:56:59 -04:00
-
1ba44ad252
Chips: one chevron, a gap for the elision, and a star that fits

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 20:37:29 -04:00
-
6a12104cf7
Path lines: cut them all the same way, and end them where they end

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 18:36:43 -04:00
-
9e262d157d
Path lines: a cut chip cracks, it doesn't trail off

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 18:09:19 -04:00
-
59a298fceb
Mesh walk: the list drew one link and named another

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 14:07:38 -04:00
-
2aa07e2d83
Mesh walk: the fan's east margin was a guess, and the rank was in the name

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 13:50:18 -04:00
-
9ee9203de6
Mesh walk: the fan was drawing a way back, in the wrong colours, unevenly

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 13:35:12 -04:00
-
07a5c82945
Find, trail, days: three keys that were asking the wrong question

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 12:19:24 -04:00
-
1eda585c50
F-lane: You was standing in for a list end it isn't

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 11:37:38 -04:00
-
4466d75932
Responsiveness: the second pass, measured on the panel it is for

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 05:57:54 -04:00
-
2decbcf754
Frame: draw only what shows, and stop handing dialogs away

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 05:42:34 -04:00
-
c9aa9a410d
Map: the tile palette resolved once per feature, not once per tile

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 05:42:33 -04:00
-
42743bded2
Dashboard: the idle second was re-walking the whole window

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 05:42:20 -04:00
-
714bb15fe6
Mesh walk: one neighbour table, carried across the merges

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 05:42:20 -04:00
-
6a002494c7
Device state: the routing mode was the one fact nothing warmed

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 05:42:07 -04:00
-
0a6182b0e5
Wordmark: half the narrow mark's red row was a bank too bright

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 05:04:39 -04:00
-
6e0c9ec50b
Map: the pan was blanking the ground it already had

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 04:32:51 -04:00
-
641286828d
Routes: the graph tags, the list names - Message paths' split

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 04:04:37 -04:00
-
2319653ea0
Routes: two rows the fan was spending on air, on the console

Jean-Pierre MartineauandClaude Opus 5
2026-08-09 03:53:43 -04:00
-
b3ba39f4bb
Harness: the stage tracer went blind the moment FastRenderer shipped

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 03:07:33 -04:00
-
077f8d6a1b
Mesh walk: the prefix settle was scanning the whole graph, per merge

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 02:43:47 -04:00
-
27799a82e3
Skill: the device latency harness, and the map reading it corrected

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 02:04:09 -04:00
-
e53e35523e
Map: draw the ground off the keystroke, and stop reprojecting the world

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 01:55:59 -04:00
-
57386fe879
Repaint: we already composed the frame - stop having it read back

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 01:29:24 -04:00
-
2d18c45917
Saved settings: the position rule, proven over a scripted device

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 00:10:53 -04:00
-
9f6e1ac891
Map: the console keymap turns Shift+arrows into other keys - rescue what arrives

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 00:10:53 -04:00
-
b83c9005c7
Charts: the mirror returns where the frame affords it; Rhythm seeks its finest slice

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 00:10:53 -04:00
-
70fb0ceea3
F-key lane: the F3 toggles were better - restored

Jean-Pierre MartineauandClaude Fable 5
2026-08-09 00:10:12 -04:00
-
f5244eb4f5
Tests: an inherited NO_COLOR silently blinds every colour assertion

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:12:14 -04:00
-
de17cee757
Saved settings: never trade a set position for an undefined one

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:12:14 -04:00
-
e9af03f227
Map: the find echo rides the bottom row, and You wipes the slate

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:12:14 -04:00
-
3e7a1893a4
Time machine: spans on F1-F3, and a Rhythm that bends to the width

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:12:02 -04:00
-
d00c6349eb
Braille axis: the right scale was only an echo of the left

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:12:01 -04:00
-
192179d79f
Node page: a tab is one press - F1 Info, F2 Routes

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:11:45 -04:00
-
3b075149ce
Node page: the PicoCalc trades the strip's air for stage rows

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:11:45 -04:00
-
6a79ec5b5e
Colour marks an identified node: unknown hashes go grey

Jean-Pierre MartineauandClaude Fable 5
2026-08-08 19:11:12 -04:00