Commit Graph
116 Commits
Author SHA1 Message Date
Kaj SchittecatandClaude Opus 5.5 b85eef6fec touch: beta_95, MeshCore 1.18 via meshcomod v1.18.0.1
About (Build) and the boot log name the meshcomod release the core is:
"on meshcomod v1.18.0.1". release.sh reads it from the pinned core's own
examples/companion_radio/MyMesh.h, keeps the in-tree defaults in step and checks
every staged image carries it. Language store v26 (this build's new texts),
release notes for beta_95.

Bench (T-Deck, 1.18): device and self info, 404-contact sync, the companion CLI
(ver, board, get name/radio/tx/freq, unknown command), 4 packets received and a
zero-hop advert sent in 90 s, correct device time.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 18:07:34 +02:00
Kaj SchittecatandClaude Opus 5.5 179577ef10 beta_94 notes: CrowPanel 5.0, hashtag links, #628's fixes, the Radio widget line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 10:33:33 +02:00
Kaj SchittecatandClaude Opus 5.5 a99a582bd4 i18n + notes: the track, SD and Reader strings; beta_94 notes for the three features
Short strings in all 14 languages; the long SD-fallback and track-stopped texts
as English placeholders until translated. v25 snapshot kept equal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:49:29 +02:00
Kaj SchittecatandClaude Opus 5.5 459be25e34 beta_94 notes: this round; MECP gets the bell icon
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:20:12 +02:00
Kaj SchittecatandClaude Opus 5.5 6504135c16 touch(home): the Advert widget is laid out like the app tiles (#637)
The solid accent button from the first fix stood out on Home. It now uses the
App shortcut tile's layout: a tinted chip in the app drawer's colour for
Advertise, the name under it in the same 12 px font and position as Apps and
Discover, and flood/nearby under that only where the tile is tall enough. The
box keeps the default widget style (glass or card), so it no longer turns into
the see-through gradient that hid its text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:49:45 +02:00
Kaj SchittecatandClaude Opus 5.5 a7a286b4e7 beta_94 prep: release notes, guide entries, language store v25
Notes for beta_94; the guide mentions the map's Favorites only and the
Fahrenheit option; the 14 languages move to v25 with their snapshot
(deploy/apps/lang/25/), for deploy-apps.sh at the slice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 09:58:49 +02:00
Kaj SchittecatandClaude Opus 5.5 d68f276b06 touch: beta_93, contact nicknames, new control panel, tooltips, Pager shortcuts, speed and battery
Contact nicknames: TouchPrefsStore nick blob (48 x 38 B), display-only lookups
(contactShownName, threadShownName, senderShownName), Contact options >
Nickname on the shared text prompt (an empty OK clears it).
Control panel restyled in the launcher's tile language, with a Battery saver
tile; keyboard tooltips (navSetTip), an amber cursor and touch long-press
tooltips (the T-Deck touch read hid them on every poll).
T-LoRa Pager: M/C/A/S on Home, H/S tap and hold, Backspace = Back, N = jump to
new, held Enter = long press, per-tab focus memory, Power off confirm; LVGL
-O2 and IRAM, INT-gated keyboard, idle yield, status-bar setter guards, instant
tabs; PagerGps (u-blox software standby for rests, GPS rail cut when off),
panel sleep, amp off at boot, power-off parks the radio (NSS held), GPS, panel
and keyboard light.
Fixes: the DM duplicate check keys on the attempt and a path reset clears it,
the direct timeout masks the packed path byte, web remote hops (#636);
changelog over http (#638); Lua SDK send budgets and duplicate guard (#606);
GPS speed note (#613, CAP_GPS_BAUD_AUTO); emoji chat icon (#640); default
wallpaper (#626).
Heltec V4: Tetris, 2048 and Breakout unseeded and the built-in Lua stripped of
comments (identical bytecode), 27 KB freed; the baked language table is pinned
to beta_92's files (scripts/build/lang-pin-beta92) so it still fits.
Translations: 39 new keys in 14 languages, language store v24.
Site: theme, dark mode, aurora and guide refresh, SDK send limits, nicknames.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 22:08:16 +02:00
Kaj SchittecatandClaude Opus 5.5 9d0301b80a touch: beta_92, faster screens on most boards, Arabic fixes, GitHub fixes
Frame rate: full-width PSRAM draw band (6 bands a frame instead of 14 on the
T-Deck), the still aurora drawn once and copied, LVGL at -O2 with its blend and
label loops in IRAM (scripts/build/perf_lvgl.py, 1 KB more loop stack), circle
and gradient caches, newlib memcpy. Rolled out to the M9, Attaky, RAK, Wio,
CrowPanel and V4-R8; the Pager gets the band only, the V4 the caches only.
Frame benchmark tour (DOC_PERF_BENCH) for measuring it.

Fixes: hop counts read from the packed path length (#621); Arabic shaping
rows patched in LVGL (patch_lvgl_arabic.py), Arabic 101 shift layer, kaf,
symbols, text sent as standard letters (#582); info popup colour runs that
never wrap (#602); keypad nav reaches the chat header (#623); the browser
opens the changelog (#622, gen-changelog.py at every site deploy); the
Theme background colour picker no longer edits the accent; flasher entries
for P4 units with factory ESP-AT Wi-Fi chips (#612, #619).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:53:33 +02:00
Kaj SchittecatandClaude Opus 5.5 218bc6ed3e touch: beta_91, Home becomes widgets, backgrounds, GPS in the bar
Home is a grid of arrangeable widgets (24 kinds, presets, a layout per
orientation, Lua app widgets via wada.widget); Unread, Chat and Mentions
get a large size. Theme > Background puts an aurora (still by default, or
moving), a colour, a picture or nothing behind every screen, with glass
cards and a smoked-glass top bar. A GPS icon in the bar, a GPS battery
saver (u-blox GNSS stop/start where there is no power switch), and a
battery saver that no longer waits for Bluetooth and Wi-Fi to be off.
Also: navigation bar position, every settings page on the redesign's
cards, a faster app drawer, slower screensaver drift for burn-in, text
wrapping at spaces only, the V4-R8 Store Apps tab, and SDK Test marked
extended-SDK only (keeps the 2 MB V4 at 99.8%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:14:04 +02:00
Kaj SchittecatandClaude Opus 5.5 f1a7775d0c touch: beta_90, colour comes back
Testers said the colour was what set wadamesh apart, and the beta_89 redesign
took most of it out. This puts it back as choices on one new page.

Settings > Theme (CAT_THEME, Device group): a live preview drawn from a copy of
the palette (themeTokensFor), Night/Day cards, High contrast, the accent swatches
inline with Custom, MORE COLORS! with Regular/Neon/Pastel, Taste the rainbow, and
the chat looks. Mode, accent and look are pending until one Apply and restart on
the preview box; scrolled past it, a slim bar under the title carries the button
with six dots in the picked look. Chat icons, bubbles and compact apply live. The
look rows left Display; the control panel's theme chip long-press opens Theme.

The colour engine: ThemeTokens + lookAdjust over the mode and accent at boot
(applyBootTheme), section hues for the launcher, Settings, tab bar and status
icons, per-name colours (FNV hue) for names, glyphs, initials balls and bubble
tints, Neon lit edges and gradient primaries, Pastel tints, and a deeper Day ink
for names and glyphs on light lists. MORE COLORS! defaults on (Regular); HC and
e-paper keep their own colours. New prefs are standalone u8 keys (chat_icons,
col_more, col_style, col_rb), no schema bump.

Taste the rainbow: per-item hues round the wheel, a 10 Hz hue drift on the tab
marker, chats count and focus ring (rests when off, locked or screensaver), press
dip, an arrival flash on new bubbles (draw-only props, the virtual list never
sees it), rainbow lock mark, boot mark and Constellation nodes (CstTheme
node_sat/node_val), and a dot burst on enabling it.

Chat icons: Glyphs or Initials through one avatarApplyLook; AVATAR_SQUARE_FLAG
moved off LV_OBJ_FLAG_USER_1, which is the nav's NAV_SKIP_FLAG.

Size: wadamesh_mark_rgb.h was a static array included by main.cpp and
UITask.cpp, so every S3 image carried the 30 KB boot mark twice. One definition
now (UITask.cpp; the P4 never compiles main.cpp). The V4 goes from overflowing to
~30 KB free with all of the above.

Capture tour: wakes and ends the screensaver before shooting, DOC_LOOK forces a
look, DOC_LOOK_AUDIT walks the looks and the Theme page, DOC_MAP_SHOT waits for
Wi-Fi and for every tile before shooting the map.

25 new strings as English placeholders in every .lang file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 11:34:08 +02:00
Kaj SchittecatandClaude Opus 5.5 9b720401f8 release: beta_89 notes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 23:44:50 +02:00
Kaj SchittecatandClaude Opus 5.5 662665e6de touch: beta_89, the UI overhaul
Every screen redesigned to the Oct 2026 mockups, on one design system:
palette, type roles (generated Montserrat faces with Lucide line icons on the
LV_SYMBOL codepoints), a theme apply-cb that styles every LVGL widget, button
kinds, list rows, sheets as action lists, toasts and key-glyph avatars.

Rebuilt: status bar, Chats (filters, + and menu), conversation (route header,
hop meta, "Heard by N repeaters", delivery states, pill composer), lock screen
(mark, clock, 24 h activity, unread cards), Constellation screensaver, Home
launcher and launcher sheet, Status page, grouped Settings home, animated boot
splash, and the message glance as a notification card.

New: optional PIN lock (salted SHA-256, keyboard / touch pad / number pad per
board, backoff that survives reboot), screensaver on battery with its own
duration, T-Deck text sizes, trackball hold to switch Scroll and Cursor (Scroll
default, prefs v69/v70), hold Settings tab for the control panel. M9 bottom
notices removed. Every screen measured for the Large and Huge text sizes.

Fix: adverts over 2/3-byte path hashes never reached the recently heard table
(packed path_len compared as a byte count); ADVERT_PATH replies now carry the
whole multi-byte path.

English placeholders for the 204 untranslated keys in every .lang file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 23:26:41 +02:00
Kaj SchittecatandClaude Opus 5 d6e696d580 release: beta_88 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-05 13:44:42 +02:00
Kaj SchittecatandClaude Opus 5 1348910415 release: beta_87 notes say what happened and what fixed it
Dropped the fault framing. The notes describe the mechanism and the change,
not whose code it was.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-03 19:49:22 +02:00
Kaj SchittecatandClaude Opus 5 2576b7e369 release: beta_87 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-03 19:42:58 +02:00
Kaj SchittecatandClaude Opus 5 890a250a02 release: cumulative stable notes for beta_85 (beta_84..85)
Curated from the two beta notes. Leads with the two things a user must know
before this reaches their device: do not switch a T-Display P4 to landscape on
this build (fixed in beta_86), and a T-Deck Max on beta_84 must be updated over
USB rather than from the device.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-03 19:14:07 +02:00
Kaj SchittecatandClaude Opus 5 607c761efa release: beta_86 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-03 18:48:13 +02:00
Kaj SchittecatandClaude Opus 5 df99548a10 touch: text sizes on the M9, landscape on the T-Display P4
The M9 gets the V4-R8's text-size presets verbatim, because it is the same
240x320 panel and two tables for one screen size is two things to keep in step.
Fonts grow, geometry does not: rows, cards and controls keep their dimensions
and stay reachable, which is why the labels say "Large text" rather than a
percentage.

⚠️ The migration matters more than the feature. ui_scale has been in the saved
blob since v8 and every M9 carries the large-screen default of 1 that this board
never applied, so exposing the selector without resetting it once would bring
every M9 back from the update rendering Large text nobody chose. Prefs go to v65
with that one-time reset, which is the same correction v63 had to make for the
V4-R8 after it happened to them.

The P4 can run landscape. Its MIPI-DSI panel has no MADCTL to rotate, so LVGL
rotates each flushed area into panel coordinates, exactly as the Tanmatsu
already does on the same silicon; the difference is that the P4 reads the saved
preference instead of pinning one rotation. Portrait stays the default and the
existing Orientation button does the rest.

The rotated branch of the P4 touch mapping had never run: it was carried "for
parity" while the panel was portrait-only, and it clamped rotated coordinates
against the portrait bounds, so every landscape touch past x=284 would have
pinned to the screen edge. It clamps against the swapped space now.

Landscape is UNTESTED on hardware: Kaj did not have his P4 with him, and it
ships that way deliberately, with the release notes saying so and asking P4
owners to report smoothness and touch accuracy near the edges.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 13:58:31 +02:00
Kaj SchittecatandClaude Opus 5 cf0c8da0ff touch: the report form swallowed taps meant for it, and its name was odd
Two things Kaj hit on a T-Deck within a minute of the first flash.

Taps that missed a checkbox went through the card to whatever sat behind the
popup. The card had LV_OBJ_FLAG_CLICKABLE cleared, copied from the version
picker, and a non-clickable object is invisible to hit-testing, so the tap
carried on to the page underneath. The card is clickable again, and tap-outside
now compares the point against the card's own area rather than assuming nothing
inside it can reach the backdrop. Events do not bubble in LVGL 8 unless asked,
so the clear was never needed for its stated purpose.

The card is also explicitly scrollable and capped to the panel height. Eleven
rows do not fit 240 px, and a card taller than its backdrop puts its own
controls outside the area that catches taps.

"Report this build" reads like reporting a fault with it, which is the opposite
of what the button is for. It is "Send a test report" now, "Send another test
report" once you have, and the form is titled "Test report: <tag>". Renamed in
the docs, the site, the issue template and the tracking-issue text too, so the
instruction people are given matches the button they are looking for.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 13:39:58 +02:00
Kaj SchittecatandClaude Opus 5 96a7e4a9b4 release: draft notes for beta_85
Not cut. The slice is staged and every target builds; this is the changelog for
whenever it goes out. It leads with reporting from the device, then the T-Deck
Max OTA fix and the instruction that a Max on beta_84 must be flashed over USB
rather than from the device, because publishing a newer build is what exposes
that bug.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 13:22:01 +02:00
Kaj SchittecatandClaude Opus 5 e084b1d3bf release: cumulative stable notes for beta_83 (beta_66..83)
The promote reused the single-tag notes, so the stable feed and the GitHub
body only covered beta_83 itself. This is the curated beta_66..83 delta,
136 notes: per-build framing and the still-open lists dropped, supersessions
collapsed to what actually ships.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 15:14:57 +02:00
Kaj SchittecatandClaude Opus 5 5d5f7bc638 release: beta_84 notes, and let a promotion skip boards it predates
A board added mid-cycle (the T-Deck Max) has no images in an older tag, so
promoting that tag copied a file that does not exist and, with set -e, took
the whole promotion down. It is skipped with a note now, and the flasher
manifest generator leaves out any board with no image in the channel it is
writing, rather than handing the flasher a 404.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 14:39:22 +02:00
Kaj SchittecatandClaude Opus 5 6fe6b9f063 touch: beta_83, USB Files (files.wadamesh.com over the USB cable)
A built-in USB Files app (T-Deck and Heltec V4 for now) lets the page at
files.wadamesh.com browse, upload, download, rename and delete files on the
SD card, internal storage and the map tiles over Web Serial. File level, not
USB mass storage: the device keeps its filesystems mounted, the radio keeps
running, and the firmware enforces what may change. Live data (identity,
contacts, settings, history; /meshcomod on the card) is download-only.

- UsbFilesProtocol.h: framed messages (E7 5A, CRC32), a resyncing parser,
  path checks and the access policy; host tests in test/.
- UsbFilesSession: one request at a time (both Arduino USB serial drivers
  drop bytes when their RX queue is full), RX queue sized per session, SD
  data through a DMA-capable bounce buffer, FatFs listings with sizes, a
  beacon so the page never talks first, SD Scan's malware verdict per file.
- The companion link and MyMesh's console step off USB while it runs.
- Website: labelled side buttons, a USB Files button and card; the
  files.wadamesh.com page, vhost and deploy script.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 11:52:34 +02:00
Kaj SchittecatandClaude Opus 5 803a4ebfc7 release: beta_82 notes
SD Scan for the ThinkNode M9 SD-card worm, the firmware calls behind it,
and the startup warning.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 13:34:09 +02:00
Kaj SchittecatandClaude Opus 5 77f0a8893a release: beta_81 notes
Bluetooth keyboards on every S3 board, PR #523 from oumike, and the web
unlock / console escape / paste key / M9 update notice fixes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 21:53:05 +02:00
Kaj SchittecatandClaude Opus 5 e98bfceba7 touch: beta_80 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 12:24:44 +02:00
Kaj SchittecatandClaude Opus 5 16d09696ca touch: beta_79 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 13:06:36 +02:00
Kaj Schittecat ba1667b4d1 touch: beta_78 release notes 2026-09-07 16:43:11 +02:00
Kaj Schittecat 8e94e25036 beta_77 notes: add the download-mode change 2026-09-06 18:16:48 +02:00
Kaj SchittecatandClaude Opus 5 2d6536af7a beta_77 release notes, ready for the slice
Written now so cutting it is a build and a publish rather than a writing session.
Not tagged and not published.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 14:17:54 +02:00
Kaj SchittecatandClaude Opus 5 9b4f8cfaa0 touch: beta_76 release notes
Day/Night themes, the Seeed Wio Tracker L2, the M9 panel actually sleeping,
P4 Wi-Fi honouring its own setting, three Lua SDK fixes, and reboot notices
that are visible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 10:50:53 +02:00
Kaj SchittecatandClaude Opus 5 43c0a9ed70 touch: beta_75 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 12:43:07 +02:00
Kaj SchittecatandClaude Opus 5 b877e43d5e touch: beta_74 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 18:49:27 +02:00
Kaj SchittecatandClaude Opus 5 708f4434f5 touch: beta_73 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 10:32:19 +02:00
Kaj SchittecatandClaude Opus 5 2d94be4511 touch: beta_72 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 22:06:03 +02:00
Kaj SchittecatandClaude Opus 5 11d826bdfe touch: beta_71 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 13:52:38 +02:00
Kaj SchittecatandClaude Opus 5 867030ab58 touch: beta_70 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 10:55:20 +02:00
Kaj SchittecatandClaude Opus 5 9343e27bba touch: beta_69 release notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 23:42:43 +02:00
Kaj SchittecatandClaude Opus 5 b15d422bdc touch: beta_68 — Lua SDK gains the map, lists, packet delivery and discovery
The four capabilities that kept third-party apps a sketch of a built-in one:

* wada.map      the firmware's own tiles, projection and cache inside an app
                page, with its own capped pool so it never evicts the Map tab's
* wada.ui.list  the missing "pick one of N" widget; rows are real buttons, so
                keyboard and trackball nav walk them for free
* on_packet     each frame delivered once instead of polling a 16-deep ring,
                which sampled rather than observed
* wada.mesh.discover  the active zero-hop probe, behind its own permission
                because it spends every neighbour's airtime, not just ours

Plus the surface those need to be useful: packet identity reported only where
the frame actually carries it, exact micro-degree coordinates (Lua is built
LUA_32BITS, so its floats were quietly costing a metre), altitude and satellite
time, wada.geo, wada.ui.input, named and one-shot timers, http_post, windowed
fs.read, and wada.sys.env on a hardware gate rather than the memory one.

Fixes:
* Both ESP32-P4 targets could not link. g_wifi_last_disc_reason was defined in
  src/main.cpp, which the IDF builds never compile, so all nine S3 envs stayed
  green while Tanmatsu and T-Display P4 were dead.
* Map zoom level was invisible in +/- buttons mode; the readout was hidden with
  the slider it was anchored to.
* Hungarian and Dutch held each other's "No SD card" translation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 21:50:01 +02:00
Kaj SchittecatandClaude Opus 5 4ab3ab98a4 credits: istvan and pisti87 are one person, and stop @-mentioning chat handles
Two corrections from Kaj, both mine.

istvan is pisti87. I had been thanking them as two people across beta_64 and the
beta_65 stable notes, which splits one person's contribution in half and reads as
if a second reporter existed. Merged into pisti87 everywhere: both notes files,
the source comment that cited the report, both published GitHub bodies, and the
on-device stable notes, which are generated from the cumulative notes file and
had to be regenerated and redeployed.

And in beta_67 I turned Discord names into GitHub @-mentions. "@Jade" resolves to
an unrelated GitHub account, so a stranger got tagged on our release, and the
handle credited was not the person who did the work. The names stay, as plain
text, and the @ is gone.

The rule I should have been following: an @-mention is only safe when the handle
came from GitHub itself, i.e. the author of a PR, issue or commit. @cvhviz,
@pisti87, @oumike, @wb6zsu, @Yoss101 all came from GitHub and are fine. A name
seen in chat is a display name, not a handle, and mapping one to the other is a
guess that lands on somebody real.

Not rewritten: commit messages already pushed that mention istvan. History stays
as it is; the user-facing credits are what matter and those are corrected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 18:43:57 +02:00
Kaj SchittecatandClaude Opus 5 5e33e341cb release: beta_67 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 18:04:58 +02:00
Kaj SchittecatandClaude Opus 5 3499ae5b2e release: beta_66 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 16:28:49 +02:00
Kaj SchittecatandClaude Opus 5 193e09e1e4 release: cumulative stable notes for beta_65 (covers beta_64..65)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 16:24:27 +02:00
Kaj SchittecatandClaude Opus 5 de45b1b158 release: beta_65 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 19:22:47 +02:00
Kaj SchittecatandClaude Opus 5 2effe9497a release: beta_64 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 17:07:14 +02:00
Kaj SchittecatandClaude Opus 5 cbdf809932 release: cumulative stable notes for beta_63 (covers beta_51..63)
Curated rather than concatenated: beta_52's test-build warnings are dropped,
and two statements that later changed are corrected to what actually ships —
the save chip is text not a floppy icon (#263), and About reports v1.17.4-touch
not v1.17.0. The upgrade-affecting items lead: the one-way chat-history format
change, the 250-message default cap, and the region-preset TX power fix.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 11:36:52 +02:00
Kaj SchittecatandClaude Opus 5 f78d0e379d release: beta_63 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 12:57:55 +02:00
Kaj SchittecatandClaude Opus 5 293830a172 release: beta_62 notes
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 10:12:10 +02:00
Kaj SchittecatandClaude Opus 5 d22c200932 touch: fetch-deps integrity guard + beta_61 note for the P4 receive fix
The vendored core is gitignored and fetch-deps rm -rf's it, so a hand-edit
there dies with no history. That cost us the esp-nimble-cpp 2.x port and then
the P4's polled receive. Both live in the core now; fetch-deps verifies they
survived the copy and fails loudly if not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 12:40:15 +02:00
Kaj SchittecatandClaude Opus 5 335a64c118 touch: core-v1.17.1 (beta_60 boot loop + unreachable contacts) + release firmware-data gate
Core (core-v1.17.1, meshcomod 5406093): 1.17 reserved MAX_ANON_CONTACTS slots
at the head of contacts[], which broke two things in beta_60 —

- resetContacts() claimed those slots while the lazily-allocated PSRAM table was
  still NULL, so the new bootstrapRTCfromContacts() NULL-deref'd at boot on any
  device whose contact store loaded nothing: fresh install, erase-flash, or SD
  not mounted yet (#249). Boards with saved contacts booted fine, which is how
  it passed bench testing.
- getContactByIdx() stayed raw while getNumContacts() excludes the reserved
  slots, so every pairing of the two — contact list, action sheets, phone-app
  sync, getContactForSave — read empty slots and could not reach the newest 8
  real contacts. A just-added contact was invisible and its action-sheet
  operations resolved to a blank slot (#252).

Fork side:
- loadContacts() skips blank records, clearing the placeholder contacts beta_60
  wrote into the contacts file (the next save drops them permanently).
- Chat threads follow a peer's rename. The thread is matched by key but its name
  was never updated, while inbound messages are filed by sender name — so the
  first message after a rename created a duplicate thread (#252).
- release.sh derives FIRMWARE_VERSION / build date / core version from the tag
  and the pinned core, keeps the in-tree dev default in step, and ABORTS the
  release if any staged image does not embed its own tag. beta_60 shipped
  reporting v1.16.0-touch because that value was hand-maintained.

All 8 S3 envs build green on core-v1.17.1.

Reported-by: Pierre747, rustinmyeye, myshoeisonfire

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 08:20:00 +02:00