Skip to content

Make the housekeeping job interval configurable - #82

Open
mclueppers wants to merge 1 commit into
attermann:masterfrom
dobrevit:fix/configurable-job-interval
Open

Make the housekeeping job interval configurable#82
mclueppers wants to merge 1 commit into
attermann:masterfrom
dobrevit:fix/configurable-job-interval

Conversation

@mclueppers

@mclueppers mclueppers commented Aug 26, 2026

Copy link
Copy Markdown

Reticulum::loop() runs Transport::jobs() every Type::Reticulum::JOB_INTERVAL (60 s), and announce rebroadcasts, link/receipt timeouts and path-request handling all live there. Applications that bridge interfaces on the same device therefore saw announces forwarded up to a minute late, with no way to change it short of calling Transport::jobs() themselves.

Add Reticulum::jobs_interval() getter/setter (seconds); the default stays JOB_INTERVAL = 60 so existing behaviour is unchanged. Reference RNS runs its equivalent every 0.25 s; 1 s is a good value on an ESP32.

Tested 1s interval on ESP32-S3 bridging announcement packets between LoRa and WiFi without any issues.

Closes #83

Reticulum::loop() runs Transport::jobs() every Type::Reticulum::JOB_INTERVAL
(60 s), and announce rebroadcasts, link/receipt timeouts and path-request
handling all live there. Applications that bridge interfaces on the same
device therefore saw announces forwarded up to a minute late, with no way
to change it short of calling Transport::jobs() themselves.

Add Reticulum::jobs_interval() getter/setter (seconds); the default stays
JOB_INTERVAL = 60 so existing behaviour is unchanged. Reference RNS runs
its equivalent every 0.25 s; 1 s is a good value on an ESP32.
mclueppers added a commit to dobrevit/RetiMesh_Node that referenced this pull request Aug 26, 2026
The upstream fixes are now PRs (attermann/microReticulum#82 and #85,
attermann/microStore#6) and live on our forks, so the default build pulls
dobrevit/microReticulum#retimesh/combined and
dobrevit/microStore#fix/close-active-segment-before-compaction from git
and relies on the new APIs unconditionally:

- Reticulum::jobs_interval(1.0f) replaces the manual Transport::jobs()
  call in the RNS task,
- the packet-carrying AnnounceHandler callback replaces the firmware's
  own announce parser/verifier (RetiTransportServer::noteAnnounce), which
  is removed; the SD-card announce log line moves to the handler.

RETIMESH_UPSTREAM_FIXES and [env:t3s3-upstream] are gone; [env:t3s3-local]
builds against sibling checkouts for library development.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: configurable housekeeping (Transport::jobs()) interval

1 participant