Skip to content

[tidy] tying up some loose ends - #11292

Merged
NomDeTom merged 2 commits into
meshtastic:developfrom
NomDeTom:docs-tidy
Jul 30, 2026
Merged

[tidy] tying up some loose ends#11292
NomDeTom merged 2 commits into
meshtastic:developfrom
NomDeTom:docs-tidy

Conversation

@NomDeTom

@NomDeTom NomDeTom commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

This pull request updates the documentation for node info stores and the traffic management module to clarify memory classing, cache sizing, and timestamp wrap safety. The changes provide more detailed and accurate explanations of how cache capacities are determined per platform, add tables for memory classes and cache sizes, and move technical details about tick clocks to a central location. Minor corrections and clarifications are also made to improve consistency.

Documentation improvements:

  • Added a new "Memory classes" section to node_info_stores.md, explaining how cache sizes are determined by MESHTASTIC_MEM_CLASS and providing a table of memory classes and their corresponding heap sizes and platforms.
  • Expanded and clarified all cache capacity tables (hot store, warm tier, unified cache, NodeInfo cache) with explicit per-class and per-platform values, and added rationale for class-deviant choices. [1] [2] [3] [4]
  • Updated the summary comparison table to reflect new capacity ranges and clarify platform-dependent values. [1] [2]

Timestamp and tick clock documentation:

  • Moved and expanded the explanation of tick clocks and wrap safety from node_info_stores.md to a new dedicated section in traffic_management_module.md, with a detailed table of tick periods, windows, and maintenance mechanisms. [1] [2]

Other changes:

  • Removed the pip install task from .gitpod.yml as it is no longer needed.
  • Minor corrections to platform and structure descriptions for clarity and accuracy.

These updates make the documentation more accurate, easier to understand, and more useful for developers working with node info stores and traffic management internals.

🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other (please specify below)

Summary by CodeRabbit

  • Documentation
    • Expanded documentation for node information storage tiers, including memory classes, capacities, persistence, eviction, and cache behavior.
    • Added guidance on tick clocks, expiration windows, wrap safety, and timestamp handling.
    • Updated property and capacity reference tables to reflect current configuration options.

@NomDeTom NomDeTom added the cleanup Code cleanup or refactor label Jul 30, 2026
@NomDeTom
NomDeTom marked this pull request as ready for review July 30, 2026 11:41
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Updates node storage and traffic-management documentation with memory-tier capacities, persistence and eviction rules, cache invariants, and tick-clock wrap-safety details. Removes the Gitpod initialization command that installed PlatformIO and upgraded pip.

Changes

Documentation and workspace cleanup

Layer / File(s) Summary
Storage tier capacities and persistence
docs/node_info_stores.md, .gitpod.yml
Documents memory classes, storage-tier capacities, persistence, eviction behavior, and payload-cache availability; removes the Gitpod initialization command.
Cache invariants and wrap safety
docs/node_info_stores.md, docs/traffic_management_module.md
Clarifies modular tick clocks, expiration handling, the hasObserved invariant, direct-serve throttle timestamps, and updated property coverage.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: cleanup

Suggested reviewers: caveman99

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is vague and generic; it doesn't describe the documentation and config changes in the pull request. Use a concise, specific title such as "Update node info store docs and tick-clock wrap-safety docs".
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description includes a clear summary, the main changes, and the template's attestations section.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@NomDeTom
NomDeTom requested a review from Copilot July 30, 2026 11:44

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/node_info_stores.md (1)

64-70: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Label the ESP32-S3 flash thresholds directly in the capacity table.

250 / 200 / 100 is only explained indirectly by the later >=15 MB / >=7 MB / smaller prose. Use explicit columns for those thresholds, or add a legend, so platform selection cannot be misread.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/node_info_stores.md` around lines 64 - 70, Clarify the ESP32-S3 row in
the capacity table by directly associating 250, 200, and 100 with the flash-chip
thresholds of >=15 MB, >=7 MB, and smaller, using explicit columns or a nearby
legend. Keep the existing capacity values and platform mappings unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/node_info_stores.md`:
- Around line 227-234: Update the node-info cache enable/sweep path so entries
with stale or potentially aliased obsTick values are invalidated or re-saturated
before serving NodeInfo after traffic management is re-enabled; use
maintainNodeInfoCacheLocked() and runOnce() as the relevant
maintenance/enable-flow symbols. Document the cross-disable/re-enable
wrap-safety guarantee at docs/node_info_stores.md lines 227-234 and
docs/traffic_management_module.md lines 196-200, or ensure the implementation
directly clears the stale state before it reaches the serve path.

---

Nitpick comments:
In `@docs/node_info_stores.md`:
- Around line 64-70: Clarify the ESP32-S3 row in the capacity table by directly
associating 250, 200, and 100 with the flash-chip thresholds of >=15 MB, >=7 MB,
and smaller, using explicit columns or a nearby legend. Keep the existing
capacity values and platform mappings unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 7a1c8cdd-7e3b-48ac-b89c-bce89a313668

📥 Commits

Reviewing files that changed from the base of the PR and between 16765dd and 3adf3ff.

📒 Files selected for processing (3)
  • .gitpod.yml
  • docs/node_info_stores.md
  • docs/traffic_management_module.md
💤 Files with no reviewable changes (1)
  • .gitpod.yml

Comment thread docs/node_info_stores.md
@NomDeTom
NomDeTom enabled auto-merge July 30, 2026 11:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Updates documentation for node info stores and the traffic management module, clarifying how cache sizing depends on memory class/platforms and centralizing tick-clock/wrap-safety details.

Changes:

  • Added/expanded memory class and cache capacity tables in node_info_stores.md.
  • Moved and expanded tick clock / wrap-safety explanation into traffic_management_module.md.
  • Removed the Gitpod init task (leaving .gitpod.yml empty).

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
docs/traffic_management_module.md Adds a centralized “Tick clocks and wrap safety” section and links back to node-info store details.
docs/node_info_stores.md Introduces “Memory classes” plus expanded capacity tables and updates the store comparison table.
.gitpod.yml Removes init tasks (resulting in an empty config file).

Comment thread docs/traffic_management_module.md
Comment thread docs/node_info_stores.md
@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

⚡ Try this PR in the Web Flasher

Flash this PR in the Web Flasher

firmware commit boards expires

Warning

This is an automated, unreviewed CI test build. Back up your device configuration
before flashing, and only flash devices you are able to recover.

Supported boards built by this PR (31)
Device Board Platform
Crowpanel Adv 3.5 TFT elecrow-adv-35-tft esp32-s3
Heltec HT62 heltec-ht62-esp32c3-sx1262 esp32-c3
Heltec Mesh Node 096 heltec-mesh-node-t096 nrf52840
Heltec Mesh Node T1 heltec-mesh-node-t1 nrf52840
Heltec Mesh Node T114 heltec-mesh-node-t114 nrf52840
Heltec V3 heltec-v3 esp32-s3
Heltec V4 heltec-v4 esp32-s3
Meshnology W10 meshnology_w10 esp32-s3
Meshnology W12 meshnology_w12 esp32-s3
Raspberry Pi Pico pico rp2040
Raspberry Pi Pico W picow rp2040
RAK WisMesh Pocket V3 rak_wismesh_pocket nrf52840
RAK WisMesh Pod rak_wismesh_pod nrf52840
RAK WisMesh Repeater Mini V2 rak_wismesh_repeater_mini nrf52840
RAK WisMesh Tag rak_wismeshtag nrf52840
RAK WisBlock 11200 rak11200 esp32
RAK WisBlock 11310 rak11310 rp2040
RAK3312 rak3312 esp32-s3
RAK WisBlock 4631 rak4631 nrf52840
Seeed SenseCAP Mesh-Tracker-X1 seeed_mesh_tracker_X1 nrf52840
Seeed Wio Tracker L1 seeed_wio_tracker_L1 nrf52840
Seeed Xiao NRF52840 Kit seeed_xiao_nrf52840_kit nrf52840
Seeed Xiao ESP32-S3 seeed-xiao-s3 esp32-s3
Station G2 station-g2 esp32-s3
Station G3 station-g3 esp32-s3
LILYGO T-Deck t-deck-tft esp32-s3
LILYGO T-Echo t-echo nrf52840
LILYGO T-Echo Plus t-echo-plus nrf52840
LILYGO T-Impulse Plus t-impulse-plus nrf52840
LilyGo T3-C6 tlora-c6 esp32-c6
Seeed SenseCAP T1000-E tracker-t1000-e nrf52840

Build artifacts expire on 2026-08-29. Updated for bd2b787.

@NomDeTom
NomDeTom added this pull request to the merge queue Jul 30, 2026
Merged via the queue into meshtastic:develop with commit 06577e6 Jul 30, 2026
100 checks passed
@NomDeTom
NomDeTom deleted the docs-tidy branch August 4, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup Code cleanup or refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants