docs: update repo/developer/in-app docs and repair the screenshot pipeline for 2.8.0#5775
Merged
Merged
Conversation
Bring documentation in line with the features bundled in release/2.8.0 and the proto submodule -> org.meshtastic:protobufs Maven migration. Repo / agent docs: - Drop the obsolete `git submodule update --init` proto-submodule bootstrap from CLAUDE.md, .skills/project-overview, and .skills/new-branch, and reword the AGENTS.md "Never Touch Protos" rule (protos are now a Maven dependency). - README: remove the dead core/proto module row; add feature/discovery, feature/car, and baselineprofile; add a 2.8.0 Features section. Developer docs (docs/en/developer): - Remove core:proto / core:api from the module maps; add feature:discovery, feature:car, baselineprofile, and screenshot-tests. - Add the PacketFts FTS5 table to persistence; add a Baseline Profile section to testing; refresh "What's New for Developers"; fix the screenshot task name. User / in-app / hosted docs (docs/en/user): - discovery.md: document the new Local Mesh Discovery scanner (#5275) and fix the now-contradictory "no dedicated discovery mode" line. - node-metrics.md: add Air Quality metrics (PM1.0/PM2.5/PM10, CO2) (#5701). - messages-and-channels.md: add full-text message search (#5373). - New android-auto.md (#5633) and app-functions.md (#5585) pages, wired into the in-app docs browser (DocBundleLoader + DocPageIconResolver + string resources). - desktop.md feature-parity rows and user.md "What's New" entries. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…dd 2.8.0 feature screenshots In-app rendering was silently broken: doc pages reference images as `../../assets/screenshots/...` but ComposeResourceImageTransformer built an unnormalized `files/docs/../../...` path, so no screenshot ever resolved in the in-app reader. The resolver now anchors `assets/...` links at `files/docs/`, and a new DocImageWiringTest asserts every image referenced by a bundled page resolves to a real bundled resource. Screenshot assets are now single-sourced from the tracked docs/assets/screenshots/ directory: syncDocsToComposeResources bundles it directly (previously it bundled the untracked docs/screenshots staging dir — ~4 MB of raw, unaliased CST renders that no page referenced, while 9 referenced images were missing in-app), and copyDocsScreenshots refreshes it, copying only alias-mapped light-mode reference images. Alias map corrections (each previously pointed at the wrong component or a deleted preview): telemetric_actions, detail_local, detail_section, quick_chat, environment_metrics, position; removed two dangling entries; added mappings for previously manual assets (disconnect, firmware_error, messages_reaction, docs-browser_*, app_info, persistence). The connections_wifi_* captures remain manual until matching previews exist. New deterministic previews with mock data, wired into screenshot-tests and referenced from the docs: air-quality metric cards (feature/node), message search bar (feature/messaging), App Functions settings (feature/settings), and discovery preset-result card + dwell progress (feature/discovery, new module dep + manifest entry). Android Auto has no Compose surface (Car App Library templates), so it stays text-only. The new air-quality preview exposed a real layout bug in the 2.8.0 AirQualityMetricsCard: SelectableMetricCard's SelectionContainer imposes no layout, so the timestamp and PM rows rendered stacked on top of each other. The card content is now wrapped in a Column like its environment-metrics sibling, with a timeTextOverride preview seam for deterministic renders. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jamesarich
added a commit
that referenced
this pull request
Jun 12, 2026
…eline for 2.8.0 (#5775) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jamesarich
added a commit
that referenced
this pull request
Jun 13, 2026
…eline for 2.8.0 (#5775) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Brings documentation current with everything bundled in
release/2.8.0— the repo / agent docs and the hosted + in-app docs underdocs/— and repairs the screenshot pipeline that feeds both the Jekyll site and the in-app docs browser.Grounded by a source-verified audit of the release branch, then an adversarial accuracy pass over the drafts that caught and corrected 4 over-claims: the App Functions settings entry is actually labeled "System AI" (not "App Functions"); Android Auto emergency alerts are not yet wired (
emptyFlow()), so that section was removed; there is no canned-reply list (voice/text reply only); and the Discovery AI summary is not flavor-gated (ships on all Android builds, AI-vs-algorithmic depends on on-device model availability).Commit 1 — doc content (
ced62d911)Repo / agent docs
git submodule update --initproto-submodule bootstrap (proto is theorg.meshtastic:protobufsMaven dep since Replace :core:proto with org.meshtastic:protobufs:2.7.25 #5675) fromCLAUDE.md,.skills/project-overview,.skills/new-branch; reword theAGENTS.md"Never Touch Protos" rule.README.md: drop the deadcore/protorow; addfeature/discovery,feature/car,baselineprofile; add a 2.8.0 Features section.Developer docs (
docs/en/developer)core:proto/core:apifrom the module maps; addfeature:discovery,feature:car,baselineprofile,screenshot-tests.PacketFtsFTS5 table to persistence; add a Baseline Profile section to testing; refresh "What's New for Developers"; fix the screenshot task name.User / in-app / hosted docs (
docs/en/user)discovery.mdnode-metrics.mdmessages-and-channels.mdandroid-auto.md(new)app-functions.md(new)desktop.md,user.mdThe two new pages are wired into the in-app docs browser (
DocBundleLoader.kt+DocPageIconResolver.kt+ 4 string resources).nodes.mdalready documented msh.to device links (#5714/#5765).Commit 2 — screenshot pipeline repair + 2.8.0 feature screenshots (
1f66dbf87)A checksum-verified audit of the screenshot pipeline found it substantially broken:
../../assets/screenshots/…butComposeResourceImageTransformerbuilt an unnormalizedfiles/docs/../../…path and silently swallowed the miss — every page in the in-app reader was imageless. Fix: the resolver anchorsassets/…links atfiles/docs/, and a newDocImageWiringTestfails the build if any doc-page image doesn't resolve to a bundled resource.docs/assets/screenshots/(tracked, semantic names) is now the single source for the Jekyll site and the in-app bundle;copyDocsScreenshotsrefreshes it, copying only alias-mapped light-mode reference images.telemetric_actions→ElevationInfo,quick_chat→ChannelInfo,detail_local→DeviceListItem,detail_section→AppInfoSection,position→SatelliteCount,environment_metrics→a dark-mode SignalInfo render) and 2 at deleted previews — any regeneration would have clobbered good images with wrong ones. All corrected; missing mappings added. (connections_wifi_*remain manual captures until matching previews exist.)New deterministic previews with mock data
Wired into screenshot-tests and embedded in the doc pages: discovery preset-result card + dwell progress (
feature/discovery, new module dep + manifest entry), air-quality metric cards (feature/node), message search bar (feature/messaging), App Functions settings (feature/settings). Android Auto stays text-only (Car App Library templates aren't Compose).Drive-by bug fix caught by the new preview
AirQualityMetricsCard(new in 2.8.0, #5701) rendered its timestamp and PM rows stacked on top of each other —SelectableMetricCard'sSelectionContainerimposes no layout. Now wrapped in aColumnlike its environment-metrics sibling, with atimeTextOverridepreview seam for deterministic renders.Verification
spotlessApply spotlessCheck detekt :feature:docs:allTestsgreen; full PR CI green onced62d911(12 pass / 0 fail).spotlessApply spotlessCheck detekt :screenshot-tests:updateDebugScreenshotTest+copyDocsScreenshots+validateDebugScreenshotTest(317 screenshot tests) +:feature:docs:allTests(incl. the newDocImageWiringTest) +:feature:node:allTests— all green locally; PR CI running.Targets
release/2.8.0(notmain).🤖 Generated with Claude Code