-
ebb3c80f15
Pin the formatter, and stop it editing the record

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 12:01:35 -04:00
-
4f60f44512
A build you can download and run without Python

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 05:00:22 -04:00
-
ab8ef2aa23
Say how the project is run, and ask better bug questions

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 04:56:51 -04:00
-
628b665420
The project can be joined, reported to, and argued with

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 04:31:32 -04:00
-
117b958edf
Everything PyPI needs, and no way to reach it by accident

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 04:00:56 -04:00
-
365df236b9
The promises in CONTRIBUTING are checked by a machine

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 03:49:42 -04:00
-
660540a84e
The version is written once, and there is somewhere to record a change
v0.2.0

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 03:34:42 -04:00
-
b7c629b50f
The whole project spells macOS and Bluetooth one way

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 02:15:03 -04:00
-
37e46bfda5
The project says what it is in one line

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 02:09:25 -04:00
-
60e2cd1e2d
Blame skips the sweep and answers with the author

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 01:08:05 -04:00
-
92d31a3191
Every file is spelled the way the formatter spells it

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 01:07:19 -04:00
-
5db0c6adb9
The tables that are a contract opt out of the formatter

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 01:04:57 -04:00
-
8d8c8b0f2b
The basemap user agent is one an operator can actually answer

Jean-Pierre MartineauandClaude Opus 5
2026-09-07 00:48:41 -04:00
-
40ecf5151d
The tests' docstrings lead with a sentence too

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 20:37:51 -04:00
-
466fd33d34
The package's docstrings lead with a sentence

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 20:30:46 -04:00
-
4545173c65
Every public callable says what it is for

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 20:28:01 -04:00
-
b5006cc415
Every line fits the hundred columns it was configured for

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 20:22:52 -04:00
-
ca0023f5b7
The import blocks hold only imports

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 20:17:12 -04:00
-
e9a4f644d8
A line variable is called a line, and a format string is one string

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 20:14:42 -04:00
-
61b6387269
Every zip says whether its sides are the same length

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 20:12:07 -04:00
-
71b16ec7b7
The annotations, imports, and dead locals answer to ruff

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 17:26:12 -04:00
-
dda0a38ed0
The cooldown countdown centers its clock, reason, and Cancel chip

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 12:10:26 -04:00
-
8b724d270b
The shared Claude settings stop pinning one account's home

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 03:12:36 -04:00
-
8a03cadc4e
The deploy scripts default to a user anyone can be

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 02:45:11 -04:00
-
caac83c64a
The developer environment hides where dotfiles hide

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 02:09:59 -04:00
-
bcf387c620
The test fixtures stop being a picture of one person's mesh

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 02:01:55 -04:00
-
892aefa11b
The machine you develop on stops being written into the repo

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 01:33:38 -04:00
-
4d8ba0fc5e
The profiling skill stops pointing at a file that is gone

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 01:18:10 -04:00
-
5a2449ebe3
The working notes stay on this machine

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 01:15:55 -04:00
-
95276dd1b1
The map opens without being told how much of the mesh to frame

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 01:10:55 -04:00
-
d3639e0ceb
The main menu pads its icon column like every other list

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 00:27:23 -04:00
-
34092613f1
The tests read the About pages as written, not as scaffolded

Jean-Pierre MartineauandClaude Opus 5
2026-09-06 00:10:31 -04:00
-
1e4fad4d2d
A wait you can see is a wait you can leave

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 16:19:42 -04:00
-
9de428f6ca
A cursor stops at the end of its list

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 16:04:17 -04:00
-
407b893819
A row is named after the feature it belongs to

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 15:58:15 -04:00
-
03f8e1496f
Every row says what it does, not what it is

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 15:51:15 -04:00
-
fe4780e070
The page keeps what MeshTerm alone decides

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 15:46:40 -04:00
-
cef7a764af
How MeshTerm behaves gets a page of its own

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 15:36:40 -04:00
-
c6892f9b6c
The editor covers the PIN too, on one chord for both

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 15:28:35 -04:00
-
42937ce411
The pairing PIN waits to be asked for

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 15:13:45 -04:00
-
1d951052bf
The widest lane gets the widest column

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 14:52:45 -04:00
-
c4a718c28a
Both ends of the walk are cut the same way

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 14:14:43 -04:00
-
23e89633fb
The walk's start is cropped, not given up whole

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 14:02:59 -04:00
-
5ca5ea7d56
The viewer's top is two stops as well

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 12:36:38 -04:00
-
24e4da9176
The walk hangs off the edge its start isn't on

Jean-Pierre MartineauandClaude Opus 5
2026-09-05 12:33:27 -04:00
-
6924ff7f45
The presets are MeshCore's, not ours

Jean-Pierre MartineauandClaude Opus 5
2026-09-04 19:17:57 -04:00
-
0b719a4736
The client nobody closed, closed

Jean-Pierre MartineauandClaude Opus 5
2026-09-04 03:49:37 -04:00
-
c090db829c
A returning companion is heard, not guessed at

Jean-Pierre MartineauandClaude Opus 5
2026-09-04 03:11:16 -04:00
-
99bfdade64
The feed opens on its columns, not on a status line

Jean-Pierre MartineauandClaude Opus 5
2026-09-04 03:03:11 -04:00
-
12d42a8804
Off the highlighted route, a node recedes

Jean-Pierre MartineauandClaude Opus 5
2026-09-04 02:38:38 -04:00
-
a5fd4357f1
A windowed list stops at its ends

Jean-Pierre MartineauandClaude Opus 5
2026-09-04 02:20:20 -04:00
-
0eb9845cd9
The graph holds still while the arrivals scroll past it

Jean-Pierre MartineauandClaude Opus 5
2026-09-04 02:03:25 -04:00
-
6fc4e7afc9
The community has a page, and the page is its invite

Jean-Pierre MartineauandClaude Opus 5
2026-09-02 08:38:44 -04:00
-
155c0b5b21
A QR is drawn from its link, not pasted in as art

Jean-Pierre MartineauandClaude Opus 5
2026-09-02 08:38:36 -04:00
-
211f38255b
A path field means two different things, and now says which

Jean-Pierre MartineauandClaude Opus 5
2026-09-02 00:16:55 -04:00
-
c8c7eab128
A direct message's frames are its own, by the MAC over its ciphertext

Jean-Pierre MartineauandClaude Opus 5
2026-09-01 23:50:22 -04:00
-
2baa8e1bfc
The live feed's depth is a packet count, not a clock

Jean-Pierre MartineauandClaude Opus 5
2026-09-01 23:11:30 -04:00
-
026e78078e
The icon column is measured, not assumed to be two cells

Jean-Pierre MartineauandClaude Opus 5
2026-09-01 02:19:19 -04:00
-
424c33ac93
The purge is an edit, and archiving is not a deletion

Jean-Pierre MartineauandClaude Opus 5
2026-09-01 02:03:27 -04:00
-
99cd616ae5
The purge keeps the contacts worth a slot, and archives the rest

Jean-Pierre MartineauandClaude Opus 5
2026-09-01 00:32:55 -04:00
-
8ac0be0928
The battery gauge is a block, filled in eighths

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 21:14:07 -04:00
-
82b93cf155
The oldest message owns the head of the transcript

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 20:48:44 -04:00
-
8fc24d4901
The clip arrows lead the bar, and say it in colour

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 03:20:48 -04:00
-
d28240f658
An arrow atom names the arrows and nothing else

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 03:20:34 -04:00
-
7407358ede
A button row's Enter belongs to whichever chip is lit

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 03:02:29 -04:00
-
2a7d01108b
^W is a stack verb, not a call-chain one

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 02:19:56 -04:00
-
332f81583a
A hint is drawn once per frame

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 01:38:59 -04:00
-
69cdd8f07e
Purge stale contacts: a ten-day rung

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 00:55:55 -04:00
-
6904898827
Purge stale contacts: a two-week rung

Jean-Pierre MartineauandClaude Opus 5
2026-08-31 00:54:39 -04:00
-
551299e076
Survey ledger: D closed, and two exceptions it had missed

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 18:12:50 -04:00
-
71dee82fd3
An entry chain is a stack: Esc steps back, not out

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 18:12:13 -04:00
-
deea9ebdd2
Esc peels a typed filter before it leaves, everywhere

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 18:02:21 -04:00
-
72e11e17e6
One channel page for the whole visit, and the last hand-rolled round goes

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 17:56:38 -04:00
-
23865e6c9a
Chat keeps one conversation list for the whole visit

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 17:53:08 -04:00
-
8496e42118
TX optimize walks back one list at a time

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 17:47:11 -04:00
-
4c83d69309
Trace keeps its target list: Esc from a walk lands back on the picker

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 15:49:44 -04:00
-
7ca0069247
Say why the quit chords skip the confirmation

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 15:29:50 -04:00
-
c31ada0c8b
Write the stack down: CLAUDE.md, the About page, and the survey's ledger

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 13:45:07 -04:00
-
f2a49c8e2d
Editors keep their place too: rows change, the reader doesn't move

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 13:38:26 -04:00
-
a409fd4e9b
Hubs keep their place, and peers nest instead of flattening

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 13:27:53 -04:00
-
ea68b9f890
Navigation: the stack is the model, and ^W leaves it all at once

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 13:20:12 -04:00
-
b6f3218af9
Mesh walk: just the name

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 02:59:01 -04:00
-
2252f2622e
Mesh walk: the title says how big the mesh is, not where you are

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 02:53:07 -04:00
-
7c36f809fd
PicoCalc: the title bar says how to leave the screen

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 02:20:44 -04:00
-
c1db8e5a31
Cursor row: a route's hues are content, so the highlight spares them

Jean-Pierre MartineauandClaude Opus 5
2026-08-30 00:42:24 -04:00
-
8e8a73fc36
Busy card: the chip already says "working", so the LED bar goes

Jean-Pierre MartineauandClaude Opus 5
2026-08-29 23:36:45 -04:00
-
0fa8290add
Contacts: a contact the device never held is still ours to remove

Jean-Pierre MartineauandClaude Opus 5
2026-08-29 23:24:11 -04:00
-
972c0b6f03
Screens: Esc is the way out, so no row spends two lines saying so

Jean-Pierre MartineauandClaude Opus 5
2026-08-29 23:15:53 -04:00
-
9d524a27a2
Emoji: a joined sequence is one glyph, so it costs one glyph's cells

Jean-Pierre MartineauandClaude Opus 5
2026-08-27 20:27:37 -04:00
-
e9f07dee0e
Chat: a direct thread picks a message too, whatever the comments said

Jean-Pierre MartineauandClaude Opus 5
2026-08-27 03:40:49 -04:00
-
955ee2549f
Updated splash screen (ANSI art, CP437)
Jean-Pierre Martineau
2026-08-27 00:53:06 -04:00
-
9ec72dbf48
Skill: blank the NULs in ANSI art without touching its SAUCE record

Jean-Pierre MartineauandClaude Opus 5
2026-08-26 19:59:51 -04:00
-
80a2a9bd0b
Contacts: a contact is dropped one at a time, from its own page

Jean-Pierre MartineauandClaude Opus 5
2026-08-26 01:39:22 -04:00
-
c66e2c86b6
Frames: the border is one colour again, so drop the corner light

Jean-Pierre MartineauandClaude Opus 5
2026-08-26 01:18:29 -04:00
-
ad2b852018
Wordmark: a mark's file says how wide it is, and the folder is the ladder

Jean-Pierre MartineauandClaude Opus 5
2026-08-26 00:38:53 -04:00
-
bbd7ab362c
Updated splash screen (ANSI art, CP437)
Jean-Pierre Martineau
2026-08-26 00:13:40 -04:00
-
c6e6ee8a60
Chat: a contact the device forgot is offered back, not a wire error

Jean-Pierre MartineauandClaude Opus 5
2026-08-25 17:43:24 -04:00
-
5f4ad341c5
Splash: a short terminal thins the mark instead of clipping the box

Jean-Pierre MartineauandClaude Opus 5
2026-08-25 02:26:17 -04:00
-
e0a681b293
Busy screens: stop the spinner starving the work it reports on

Jean-Pierre MartineauandClaude Opus 5
2026-08-25 02:12:26 -04:00
-
fae342c2bd
Updated splash screen (ANSI art, CP437)
Jean-Pierre Martineau
2026-08-25 01:47:52 -04:00