mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-06-26 06:25:24 -04:00
Audit the user docs for accuracy against the code, enrich them with
component-level screenshots, and separate the doc-screenshot generation
path from the visual-regression gate so doc framing no longer churns test
baselines.
Veracity fixes (claims verified against code):
- connections: removed 3 screenshots that were from the unrelated mPWRD/nymea
WiFi-provisioning app and rewrote the TCP/IP section to match the real
Network transport flow (mDNS scan + manual IP:4403); replaced the BLE
"scan" image (it was the wifi-provision splash) with the real device list.
- nodes: online window is 2h (not 15min); binary online/offline, no "away" tier.
- map: markers are identity-colored node chips, not online-status colors.
- node-metrics & signal-meter: signal quality is preset-relative SNR, not
fixed thresholds.
- messages: max message length is 200 bytes (not 237/230).
- telemetry: CO2 bands aligned to Co2Severity (Good/Stuffy/Poor/Unsafe/Evacuate).
- translate: locale dirs use {lang}-r{REGION}.
New pages: Home Screen Widget, Help & In-App Docs (Chirpy on-device AI).
Screenshot enrichment + tighter framing: added IAQ scale, firmware verifying,
TAK local server, quick-chat dialog; cropped firmware states and connections
panes to component-level views instead of full-screen frames.
Pipeline split (new :docs-screenshots module, generate-only, not CI-gated):
holds doc-framed compositions so reframing a doc image never moves a regression
baseline; :screenshot-tests stays the gate. copyDocsScreenshots aggregates
both modules. Updated CI filter, governance advisories, dev docs, and the
testing-ci skill.
Translated docs re-sync from the English source via the scheduled Crowdin job.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Documentation Structure
This directory contains the source documentation for the Meshtastic Android/Desktop/iOS app. It serves three consumers:
- In-app docs browser — bundled via Compose Resources at build time
- Jekyll site — GitHub Pages (this directory is the Jekyll source root)
- meshtastic.org — Docusaurus sync (upstream consumption)
Locale Layout
docs/
├── _config.yml, _data/, _layouts/, _sass/ ← Jekyll site infrastructure
├── en/ ← English source (edit here)
│ ├── user/ ← User Guide pages
│ ├── developer/ ← Developer Guide pages
│ ├── index.md ← Site home page
│ ├── user.md ← User Guide nav parent
│ └── developer.md ← Developer Guide nav parent
├── fr-rFR/ ← French (Crowdin-generated)
│ └── user/ ← Translated user guide
├── de-rDE/ ← German (Crowdin-generated)
│ └── user/
└── ... ← Other locales
Editing Guidelines
- English source: Edit files under
docs/en/. These are the authoritative source. - Translations: Do not edit files in locale folders directly. They are auto-generated by Crowdin and will be overwritten on sync. Contribute translations via Crowdin instead.
- Adding a page: Create the
.mdfile indocs/en/user/ordocs/en/developer/, then register it infeature/docs/.../DocBundleLoader.ktfor in-app bundling.
How Translations Work
- English source files (
docs/en/user/*.md) are uploaded to Crowdin as translation sources - Volunteers translate via the Crowdin web UI
- Crowdin PRs land translated files at
docs/{android_code}/user/*.md(e.g.,fr-rFR,pt-rBR) - At build time, the Gradle
syncTranslatedDocsToComposeResourcestask bundles them into locale-qualified Compose Resources for the in-app reader - The in-app
DocBundleLoadertries the user's locale first, then falls back to English