Commit Graph
41 Commits
Author SHA1 Message Date
Kaj SchittecatandClaude Opus 4.8 ec3b47bbc2 fix: restore 'repeats heard' on scoped floods + guard trace-route crash
- MyMesh.cpp logRxRaw: the self-echo parser tested (raw[0] & 0x80) for transport
  codes, but 0x80 is the top of the payload VERSION field, not a flag. Transport
  codes are present iff route_type (raw[0]&0x03) is TRANSPORT_FLOOD/DIRECT. Since
  beta_12's region scope, scoped floods carry transport codes -> the parser hashed
  the wrong payload slice -> the echo never matched -> 'repeats heard' showed 0 for
  anyone with a region set. Now route-type aware (matches uiStashRxMeta). Also fixed
  the diagnostic dst= decoder + the header-layout comment.
- MyMesh.h uiSendTraceRoute: walking c.out_path with an unchecked out_path_len
  (uint8_t, can be 65..254 if a contact's path is corrupt) overran sendDirect's
  payload memcpy -> reboot when tapping 'Trace route' on a sent DM. Clamp to
  <= MAX_PATH_SIZE, else fall back to the single-hop trace.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 22:11:17 +02:00
Kaj SchittecatandClaude Opus 4.8 9e2eed1551 fix: bound advert-name copy (corrupt contacts) + log NVS headroom at boot
- MyMesh.cpp: strcpy(p->name, contact.name) could overrun the 32-byte advert_paths
  name field when an over-the-air advert carries a 32-char (unterminated) name,
  corrupting the recently-heard/Found table. Bounded with strncpy + NUL-terminate.
- main.cpp: log nvs_free_entries at boot so a filling NVS (the boot-loop trigger
  under Launcher) is visible in serial before it goes catastrophic.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 21:45:08 +02:00
Kaj SchittecatandClaude Opus 4.8 58bae913e1 scripts: cut-core-tag.sh — regenerate the lean meshcomod core tag
One command to cut a source-only (no prebuilt/) tag on the monorepo for wadamesh
to pin, keeping the shallow lib clone ~12 MB instead of 1.4 GB.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 21:30:32 +02:00
Kaj SchittecatandClaude Opus 4.8 6088370f5d build: pin core to the meshcomod monorepo (lean core-v1.16.1), drop meshcomod-core
wadamesh now builds its MeshCore core from the ALLFATHER-BV/meshcomod monorepo
(the same repo as the non-touch firmware) via a lean, source-only core-* tag,
instead of the separate meshcomod-core fork. The 8 touch-app files this repo
vendors are excluded from the lib with -DMC_VENDORED_TOUCH_APP. Build is
byte-identical (Heltec flash 2625757, unchanged). One core, one repo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 21:28:33 +02:00
Kaj SchittecatandClaude Opus 4.8 2c099aadb6 wifi: make the Wi-Fi settings-page radio toggle live
The switch on the Wi-Fi settings page had no event handler — it was only read
when you pressed Save, so flipping it appeared to do nothing. Add a
VALUE_CHANGED handler that calls wifiConfigSetRadioEnabled() (persists + flags an
apply; the main loop brings esp_wifi up/down), mirroring the control-center
toggle. Toggling now turns Wi-Fi on/off on the spot.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 19:59:46 +02:00
Kaj SchittecatandClaude Opus 4.8 a405513d84 flasher: show current release version + notes (pipeline-driven)
The esp-web-tools manifest carried a frozen version:beta_1 while the rolling
/latest/ bins moved on, so the web flasher always said beta_1. Fix:
- scripts/build/gen-flasher-meta.py emits version.json (tag + notes) + per-release
  manifests (version=tag) into /latest/; release.sh + the CI workflow run it, so
  the metadata rolls with every release.
- the site points the install buttons at the VPS manifests and renders a live
  'What's new in <tag>' block from version.json.
- drop the frozen static site manifests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 16:08:10 +02:00
Kaj SchittecatandClaude Opus 4.8 399b5004e0 ci: add tag-triggered release workflow (build -> GitHub Release -> VPS)
Push a beta_* tag (or run via workflow_dispatch) to build both touch boards in
CI with the tag embedded, cut a GitHub Release with the 4 bins, and publish to
wadamesh.com over SSH. VPS host + deploy key are Actions secrets (WADAMESH_VPS,
WADAMESH_VPS_PATH, WADAMESH_VPS_SSH_KEY); the publish step auto-skips until they
exist, so scripts/release.sh remains the manual path. Nothing sensitive in-repo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 15:53:27 +02:00
Kaj SchittecatandClaude Opus 4.8 0162ac4f4a site: landing refinements — bg fade, copy, repo link, V4 launcher rule
- Mesh background: soften the central fade so the net carries faintly across the middle (mask alpha .22) instead of clearing fully, keeping copy readable.
- Hero copy: "MeshCore MESHCOMOD firmware ...".
- Link the "open source · GPL-3.0" badge to the GitHub repo (opens in a new tab) with a hover state.
- Install flow: Launcher is LilyGo T-Deck only — badge the path, remove the Heltec V4 download from the Launcher guide, and steer V4 owners to Standalone (its only route).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
beta_2
2026-06-13 15:24:18 +02:00
Kaj SchittecatandClaude Opus 4.8 c564597e01 readme: add WADAMESH logo header (light/dark) + fix core fork link
Static lockup SVGs (no <style>/animation, which GitHub's README sanitizer strips)
in light + dark variants via <picture>. Also corrects the core-fork link to
ALLFATHER-BV/meshcomod-core (was the pre-rename ALLFATHER-BV/MeshCore).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 15:23:48 +02:00
Kaj SchittecatandClaude Opus 4.8 48cfb55803 firmware: sync touch fixes from the working build
- Wi-Fi scan: watchdog-safe async scan (fixes the no-SSID task-watchdog panic)
- Boot: WADAMESH logo (anti-aliased mark + teal dots) replaces MESHCOMOD wordmark,
  drawn full-res via writePixelsRGB565, centred; LVGL splash mark matches
- Theme: brand teal (#15B6A6) added to the picker + made the first-boot default
- Wi-Fi settings: Save / Scan apply live (Wi-Fi+BLE coexist via NimBLE) — no reboot
- Factory reset: fix SD-storage crash (SPIFFSFS cast on SDFS) + robust recursive
  wipe (rewind / collect-then-delete so FatFS doesn't skip entries)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 15:08:28 +02:00
Kaj SchittecatandClaude Opus 4.8 5f134d7cfc boards: drop unused board defs — wadamesh only builds heltec_v4 + t-deck
The repo carried the full MeshCore board matrix (~38 defs) inherited from the
monorepo split; only heltec_v4 + t-deck are referenced by the two touch envs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 15:00:28 +02:00
Kaj SchittecatandClaude Opus 4.8 ac5ff606e7 site: animated mesh background — Vanta NET in wadamesh teal
Replace the hand-rolled canvas mesh backdrop with a Vanta NET 3D dot-and-line network (three.js r121 + vanta.net), recoloured to brand teal on white (ported from the MENTALITEAM site). A horizontal mask fades the net out of the central text column so copy stays readable, plus a white text-shadow halo for line-ends near the margins. Skipped under prefers-reduced-motion / no-WebGL (falls back to plain white + the CSS glow).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 14:39:01 +02:00
Kaj SchittecatandClaude Opus 4.8 68238845d5 site: drop --chmod from deploy-site.sh (macOS rsync rejects it)
macOS's bundled rsync errors on --chmod=D755,F644 (invalid argument). rsync -a already preserves the source perms (644 files / 755 dirs), so the flag was redundant; drop it so deploys run on a stock Mac.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 14:39:01 +02:00
Kaj SchittecatandClaude Opus 4.8 3ed6f52b08 site: animate flasher logo + standalone marks; add deploy-site.sh
Propagate the mesh-mark animation (repeater broadcast rings + cyan signal
packets on the transport trails) to the flasher page and the standalone
wadamesh-mark.svg / wadamesh-lockup.svg. The standalone SVGs embed the CSS
inside the file so they animate even when used as <img>. badge.svg (favicon)
left static. All collapse to the static mark under prefers-reduced-motion.

Add scripts/deploy-site.sh: rsync deploy/site/ to the VPS web root
(/srv/wadamesh/site, the apex wadamesh.com origin), env-driven WADAMESH_VPS
like release.sh, with --dry-run support.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 13:22:16 +02:00
Kaj SchittecatandClaude Opus 4.8 4513b97dbc site: animate the mesh mark — repeaters broadcast, packets ride the trails
Pure inline SVG + CSS, no JS or deps: each of the 7 nodes emits a staggered
expanding broadcast ring (a pulse rippling left->right across the mesh), and
glowing cyan signal packets stream along the black transport trails, passing
through the repeater dots. Collapses to the original static logo under
prefers-reduced-motion.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 13:22:16 +02:00
Kaj SchittecatandClaude Opus 4.8 4ff517b756 site: center the guide intro paragraphs (.p no longer needs an .h2 sibling)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 12:28:39 +02:00
Kaj SchittecatandClaude Opus 4.8 3e0313090b site: add Privacy/Cookie/Terms policies + essential-cookie notice (GDPR)
Mirrors the meshcomod legal model (ALLFATHER BV, Belgian law, GDPR controller)
adapted to wadamesh's stack: Privacy Policy, Cookie Policy and Terms as
footer-linked modals, plus a dismissible essential-cookies notice (we use no
tracking/analytics — only Cloudflare's strictly-necessary cookies). Discloses the
third-party resource loads (Cloudflare, Google Fonts, the esp-web-tools CDN, OSM
tiles). Company footer line added.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 12:21:32 +02:00
Kaj SchittecatandClaude Opus 4.8 e326ff7bca site: hero subtitle notes it's also a companion radio for the MeshCore app
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 12:12:44 +02:00
Kaj SchittecatandClaude Opus 4.8 b7f2ed8591 site: pills on one line (wrap on phones) + WADAMESH in all-caps in prose
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 12:05:20 +02:00
Kaj SchittecatandClaude Opus 4.8 bb76c30500 site: add a Multi-transport feature pill (companion over BLE/Wi-Fi/USB)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 12:01:17 +02:00
Kaj SchittecatandClaude Opus 4.8 2d5524484e site: Launcher path links to the installer page (bmorcelli.github.io/Launcher)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 11:13:02 +02:00
Kaj SchittecatandClaude Opus 4.8 4a6c08ce51 site: feature pills show an info popover on hover/tap
Each hero pill (Offline map, Chat & channels, Contacts, 11 languages) now reveals
a short description on hover (desktop) or tap (touch), with a tap-elsewhere-to-close.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 11:12:00 +02:00
Kaj SchittecatandClaude Opus 4.8 f53599e424 site: drop the 'Recommended' badge — both install paths are equal
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 11:08:55 +02:00
Kaj SchittecatandClaude Opus 4.8 870e2ecb3a site: center the hero brand + send flasher.* to the journey
- landing hero: replace the inline lockup (its 720-wide viewBox had trailing
  whitespace, pulling the artwork left of centre) with the mark SVG + an HTML
  wordmark in a flex row — perfectly centred, wordmark renders crisp.
- flasher.wadamesh.com now 301s to wadamesh.com so every visitor (incl. the
  firmware's update link) lands on the guided choose-your-path journey rather
  than the bare Connect buttons.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 11:07:01 +02:00
Kaj SchittecatandClaude Opus 4.8 ef2f3f4396 site: brand the landing + flasher with the wadamesh logo (light theme)
Rebuild on the real logo palette: white background, the dark-ink lockup
(#15181E zigzag + #15B6A6 teal dots), JetBrains Mono wordmark, and the cyan/teal
dots as the accent system (#15B6A6 primary, #19D6C2 bright). Inline the dark
lockup SVG (so the wordmark renders true) + add badge favicon + logo SVGs.
Flasher page retheme to match. Deployed + verified live through Cloudflare.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 11:00:34 +02:00
Kaj SchittecatandClaude Opus 4.8 c4798dceab site: guided landing at wadamesh.com — Standalone vs bmorcelli's Launcher
deploy/site/: a visual install journey served at the apex. Hero + an animated
mesh backdrop, then a two-path chooser:
  - Standalone  -> embedded esp-web-tools flasher (board picker, 3 steps)
  - With Launcher -> step-by-step + app-image downloads (/latest/*.bin)
apex vhost switched from 301->flasher to serving the landing; release.sh now also
rolls the app-only bins into /latest/ for the Launcher path. Deployed + verified
live through Cloudflare (wadamesh.com 200).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 10:50:45 +02:00
Kaj SchittecatandClaude Opus 4.8 27303ad948 deploy: web flasher (esp-web-tools) + apex redirect + rolling /latest/
- deploy/flasher/: browser Web Serial installer (board picker for V4 + T-Deck),
  manifests pointing at firmware.wadamesh.com/latest/*-merged.bin
- deploy/nginx/firmware: serve /latest/ + Access-Control-Allow-Origin so the
  flasher fetches bins cross-origin
- deploy/nginx/flasher: flasher.wadamesh.com vhost + wadamesh.com/www 301->flasher
- release.sh: refresh the rolling /latest/ merged bins each publish

Deployed + verified live through Cloudflare. VPS IP kept out of the repo
(Cloudflare fronts the origin).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 10:41:00 +02:00
Kaj SchittecatandClaude Opus 4.8 95b0233832 fix: release.sh runs on macOS bash 3.2 (drop associative array)
declare -A needs bash 4+; macOS ships bash 3.2. Replaced the env->binname map
with a portable 'env:name' string + parameter-expansion split. Verified
end-to-end: built beta_1 for both boards, rsynced to the firmware VPS, origin
serves the listing + bins.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 10:02:26 +02:00
Kaj SchittecatandClaude Opus 4.8 eb07184c3e deploy: VPS + Cloudflare bundle (nginx vhosts, release script, setup guide)
The wadamesh.com distribution stack, ready to drop onto a new VPS behind
Cloudflare:
- deploy/nginx/tiles.wadamesh.com.conf — OSM tile proxy (HTTP origin, double-quoted
  location regex, resolver + variable proxy_pass, OSM UA, 14d disk cache)
- deploy/nginx/firmware.wadamesh.com.conf — bins + the beta_<N> update-check listing
- scripts/release.sh — build both boards tagged, refresh the listing, rsync to the VPS
- deploy/README.md — VPS + Cloudflare DNS/SSL/cache setup, publish flow

VPS target supplied via $WADAMESH_VPS at publish time — no IP/SSH in the repo
(Cloudflare fronts the origin). Web flasher + OTA re-enable are the remaining
pre-launch pieces (noted in deploy/README.md).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 09:04:17 +02:00
Kaj SchittecatandClaude Opus 4.8 bc8344b219 firmware: re-point endpoints to wadamesh.com subdomains
- tile server default: tiles.meshcomod.com -> tiles.wadamesh.com
- update-check feed: app.meshcomod.com/api-github/... -> firmware.wadamesh.com/releases/TOUCH
  (same beta_<N> listing shape, so the on-device parser is unchanged)
- 'update manually at flasher.meshcomod.com' -> flasher.wadamesh.com (incl. all 11 i18n langs)
- HTTP User-Agents -> wadamesh-touch

SD data path /meshcomod/ left as-is (changing it would orphan existing users'
on-card data — a brand-rename-with-migration is a separate decision). Tiles stay
plain HTTP (Cloudflare-cached); the lightweight version check stays HTTP too.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 09:01:27 +02:00
Kaj SchittecatandClaude Opus 4.8 8902ae2855 build: wire merge-bin.py for the merged-image (full-install) target
Adds the portable merge-bin.py post-script (app-bin -> out/ + a 'mergebin' custom
target) and enables it in both touch envs. Each board now produces firmware.bin
(app/OTA slot) and firmware-merged.bin (full install @ 0x0) — the two artifacts a
release ships. Verified: V4 merged 2.66 MB, T-Deck merged 2.88 MB.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 08:28:00 +02:00
Kaj SchittecatandClaude Opus 4.8 fdd8a3979b fix: T-Deck env was left on the old core URL + non-minimized tag
The earlier rename/minimize edits matched only the V4 env's formatting and
silently skipped the T-Deck env, leaving it on MeshCore.git#v1.16.0-wada.0 (old
name, pre-minimize tag whose fork still carried the 26 relocated files — a
duplicate-symbol hazard). Both envs now pin meshcomod-core@v1.16.0-wada.1;
T-Deck clean-rebuilds green + size-identical against it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 00:45:23 +02:00
Kaj SchittecatandClaude Opus 4.8 392ac7f1cc chore: point lib_deps at renamed core repo (MeshCore -> meshcomod-core)
The core fork was renamed to ALLFATHER-BV/meshcomod-core to make its lineage
explicit — it carries meshcomod's full core (protocol superset + Wi-Fi/BLE/UI
hooks), packaged as a library. Both envs now pin meshcomod-core @ v1.16.0-wada.1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 00:41:58 +02:00
Kaj SchittecatandClaude Opus 4.8 7450c0cbe2 docs: mark the fork-minimize done (52→24 files vs upstream, tag wada.1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 00:31:03 +02:00
Kaj SchittecatandClaude Opus 4.8 ad2f52c6ee refactor: own the touch/app files relocated out of the MeshCore fork
Take ownership of the 26 files moved out of the core during the fork-minimize:
touch HW drivers (helpers/input/*), touch prefs/SD helpers + companion transport
servers + HTTP-OTA helpers (helpers/esp32/*, helpers/*Ota*.h), LVGL PSRAM
allocator, and touch diag. Three transport headers switched to lib-style
<helpers/...> includes for the new layout. platformio.ini builds them
(helpers/** filters + -I src) and pins MeshCore @ v1.16.0-wada.1 (the slimmed
fork). Both boards build green + size-identical from the published tag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 00:30:21 +02:00
Kaj SchittecatandClaude Opus 4.8 2316439b71 docs: reflect the executed split
- WADAMESH_SPLIT_PLAN.md: status planning -> executed (both boards green from the
  published fork; T-Deck flash-verified on hardware); record what's done + the
  remaining non-blocking phases (minimize fork, re-home release pipeline).
- README: drop the "early scaffold" note; add Architecture (core via lib_deps,
  not vendored) + Build/flash instructions for both envs.
- NOTICE: add the bundled/vendored deps (ed25519, AsyncElegantOTA, TFT_eSPI,
  Adafruit GFX/ST7789, chsc6x).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 00:14:34 +02:00
Kaj SchittecatandClaude Opus 4.8 02e267deba feat: add LilyGo T-Deck / T-Deck Plus board
Second board. Flattened env LilyGo_TDeck_companion_radio_touch (GT911 touch +
matrix keyboard + trackball, ST7789 via Adafruit, sensors off except GPS),
building green against MeshCore@v1.16.0-wada.0. Output byte-identical to the
in-tree meshcomod T-Deck build (delta = build-path strings).

Both touch boards now build from the published fork via lib_deps.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 00:07:08 +02:00
Kaj SchittecatandClaude Opus 4.8 1f6409702c feat: Heltec V4 TFT touch firmware — app + ui-touch + board + platformio
First board lands. wadamesh builds the LVGL touch firmware as its own project,
consuming the MeshCore core via lib_deps @ git tag (ALLFATHER-BV/MeshCore
#v1.16.0-wada.0) — no vendored core in this repo. Output is byte-identical to the
in-tree meshcomod build (delta = embedded build-path strings only).

Contents: companion_radio app (MyMesh/main/DataStore), ui-touch LVGL UI,
variants/heltec_v4 board glue, boards/heltec_v4.json, lv_conf, the bundled
ed25519 lib, AsyncElegantOTA, partition table, and a flattened platformio.ini
for env heltec_v4_tft_companion_radio_usb_tcp_touch.

MeshCore-derived files (app glue) remain MIT; ui-touch is GPL — see NOTICE.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-13 00:01:32 +02:00
Kaj SchittecatandClaude Opus 4.8 ac626bce97 docs: add WADAMESH_SPLIT_PLAN.md — tracked roadmap for the meshcomod→wadamesh split
The lean, no-refactor plan: GPL app (wadamesh) on a minimal/upstreamable MIT
MeshCore fork via lib_deps@tag. Records the boundary, the file-level mapping of
the ~4.2k-line core diff (keep-in-fork / move-to-wadamesh / evaluate), the
one-topic-per-commit sequence behind a build gate, and the risks. No firmware
code moved yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-12 23:28:30 +02:00
Kaj SchittecatandClaude Opus 4.8 a85209d68c license: relicense wadamesh under GPL-3.0-or-later + OSS scaffolding
Adopt copyleft for the touch UI so distributed builds and forks must stay open
(the Meshtastic model — concentrates community effort instead of fragmenting into
closed forks), per the project direction.

- LICENSE: MIT -> full GPL-3.0 text
- NOTICE: third-party attributions; preserves MeshCore's MIT notice (MIT is
  GPL-compatible). The MeshCore *fork* wadamesh builds against stays MIT so its
  Wi-Fi/BLE hooks remain upstreamable.
- CONTRIBUTING.md: inbound=outbound GPL, DCO sign-off, SPDX headers, one-topic
  PRs, prefer libraries, don't regress shipping boards.
- README: license + contributing sections.

GPL-3.0 (not v2) chosen for firmware: anti-tivoization keeps it user-installable,
and it's the only GPL compatible with Apache-2.0 deps (NimBLE).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Kaj Schittecat <kaj@schittecat.com>
2026-06-12 23:16:38 +02:00
Kaj SchittecatandClaude Opus 4.8 fc3ce7b8c7 chore: initial scaffold — README, MIT LICENSE, .gitignore
Security baseline from commit #1: .gitignore excludes CLAUDE.md and .claude/
(ops/infra notes + agent config) so they can never be committed. The touch
firmware source lands here incrementally as the split from meshcomod proceeds.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 23:10:04 +02:00