Commit Graph
48 Commits
Author SHA1 Message Date
torlando-agent[bot] f55b54eec0 feat: wire safe opt-in map downloads 2026-08-07 01:34:30 +00:00
torlando-agent[bot] 8e0b603e11 feat: add bounded map tile downloader 2026-08-07 01:32:37 +00:00
torlando-agent[bot] f9219426c1 feat: add peer location sharing controls 2026-08-07 01:32:37 +00:00
torlando-agent[bot] ab516df10f fix: initialize map from local fix 2026-08-07 01:31:17 +00:00
torlando-agent[bot] c8ba2b5ba3 feat: add bounded offline map screen 2026-08-07 01:31:17 +00:00
torlando-agent[bot] b8d58f4bd1 fix: fail closed on SD handle release 2026-08-07 01:27:49 +00:00
torlando-agent[bot] c2cd7163fa fix: preserve unrecognized SD media 2026-08-07 01:27:49 +00:00
torlando-agent[bot] dc0019feb5 feat: add bounded offline map tile store 2026-08-07 01:27:49 +00:00
torlando-agent[bot] fe0d1f7d55 fix: close location durability and router races 2026-08-07 01:27:49 +00:00
torlando-agent[bot] d7a8f17ac8 feat: persist live location state 2026-08-07 01:27:07 +00:00
torlando-agent[bot] a71e19b65c fix: serialize live router admission 2026-08-07 01:26:45 +00:00
torlando-agent[bot] 0a28266b9c fix: harden live location dispatch boundaries 2026-08-07 01:26:12 +00:00
torlando-agent[bot] 77d68a9d07 feat: route live location telemetry 2026-08-07 01:25:48 +00:00
torlando-agent[bot] 6f0807f23c test: enforce location routing trust boundary 2026-08-07 01:25:10 +00:00
torlando-agent[bot] 9791de8149 build: isolate T-Deck test hooks 2026-08-07 01:25:10 +00:00
torlando-agent[bot] 946073ca41 feat: route authenticated location telemetry 2026-08-07 01:23:28 +00:00
torlando-agent[bot] 504afdce70 fix: fail closed on persistence I/O errors 2026-08-07 01:23:28 +00:00
torlando-agent[bot] 49bf2bc675 feat: persist location state transactionally 2026-08-07 01:23:08 +00:00
torlando-agent[bot] 0a1e040dbe feat: add Sideband-compatible telemetry codec 2026-08-07 01:23:08 +00:00
torlando-agent[bot] 7c26a4a9d3 test(watchdog): align persistence stall contract 2026-08-05 20:11:45 +00:00
torlando-agent[bot] 1c8af97548 fix(nomadnet): bound remote page responses 2026-08-05 18:48:58 +00:00
torlando-agent[bot] c869842088 [verified] feat: add SF5 LoRa support 2026-08-04 00:06:46 +00:00
torlando-agent[bot] 178d4ffee2 test: isolate watchdog harness tests from pyserial 2026-08-03 22:55:10 +00:00
torlando-agent[bot] ae91ccdd92 [verified] fix: restore watchdog panic with bounded polling 2026-08-03 20:48:12 +00:00
Torlando e0287c1a0e keep release audit aligned with dependency pin 2026-08-03 19:19:59 +00:00
Torlando 8a72f40198 address transport opt-in review findings 2026-08-03 18:14:44 +00:00
Torlando d75d7370bd make local dependency overrides deterministic 2026-08-03 18:04:13 +00:00
Torlando df2fe4542f make Reticulum transport mode opt-in 2026-08-03 17:50:13 +00:00
Torlando e6ee0a57e5 fix: close recovery and file-selection races 2026-08-02 23:30:40 +00:00
Torlando 9c0997befa fix: make firmware updates persistence-safe 2026-08-02 23:06:44 +00:00
torlando-agent[bot] e5f00a8b39 ci: audit release flags and dependency pins 2026-08-02 03:57:34 +00:00
torlando-agent[bot] 01a56d344c ci: publish hook-free release firmware 2026-08-02 03:50:04 +00:00
torlando-agent[bot] 3f98f43f1f build: enforce pinned release dependencies 2026-08-02 03:05:18 +00:00
torlando-agent[bot] 959f8d8262 build: add hook-free tdeck release environment 2026-08-02 03:00:06 +00:00
torlando-agent[bot] 61872480c9 fix: enforce ULBW-only LXST voice profile 2026-08-02 00:39:45 +00:00
torlando-agent[bot] c2c6ae5641 fix(voice): synchronize call termination and TCP announces 2026-08-01 21:32:01 +00:00
torlando-agent[bot] 9d5cc32b82 fix: avoid duplicate delivery-state persistence 2026-07-27 04:24:58 +00:00
torlando-agent[bot] 55cd2528dd fix: validate OTA image after UI task starts 2026-07-27 01:51:44 +00:00
torlando-agent[bot] e885f27c77 fix: prefer opportunistic delivery for short UI messages 2026-07-26 15:30:45 +00:00
torlando-agent[bot] dcc80e14d7 fix: report active firmware and LittleFS storage 2026-07-25 02:01:05 +00:00
torlando-agent[bot] 0ea2be3fda fix: confirm successful OTA boot before restart 2026-07-24 19:21:56 +00:00
torlando-agent[bot] 12d25b2acc fix: preserve retryable messages on storage failure 2026-07-24 19:02:06 +00:00
torlando-agent[bot] 4e2e74296b fix: fail closed when message persistence fails 2026-07-24 18:22:35 +00:00
torlando-agent[bot] eabc3578b6 fix: preserve persistent data on filesystem mount failure 2026-07-23 02:41:39 +00:00
torlando-agent[bot]andClaude Opus 4.8 96d007870c fix(tests): add build_scripts conftest so _build_helpers is importable on CI
The pre-scripts now import their sibling _build_helpers; the build_scripts tests
load those scripts in-process, so the import needs the repo root on sys.path. CI
runs bare `pytest` (which, unlike `python -m pytest` locally, does NOT add the cwd
to sys.path), so the import failed only there. A conftest.py that puts the repo
root on sys.path fixes it for any invocation. (The standalone-exec subprocess test
got its own sys.path line in the prior commit.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UWZuYkHBRqNb6BZHV8sTG5
2026-06-23 00:22:12 -04:00
torlando-agent[bot]andClaude Opus 4.8 dfc6a14f00 address greptile #38: fix standalone-exec test, drop dead var, clarify docstring, DRY hostname
- test_patch_nimble.py: the refactor made the script import its sibling
  _build_helpers; the standalone-exec test ran it with a temp PROJECT_DIR, so add
  the script's real directory to the shim's sys.path (CI pytest failure fix).
- sync_file_libdeps.py: remove the now-dead ENV_NAME binding.
- _build_helpers.py: reword the docstring (the "never literal env" line conflicted
  with the helper's own "tdeck" fallback) and note inline that "tdeck" is a
  never-hit default (PlatformIO always injects PIOENV).
- main.cpp: DRY the OTA hostname into OTA_HOSTNAME used by both setHostname() and
  the log line.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UWZuYkHBRqNb6BZHV8sTG5
2026-06-23 00:11:54 -04:00
torlando-tech a135c761e6 chore(greptile): iter 1 — applied 4 (3 ACCEPT + 1 MODIFY), rejected 1
Greptile review feedback on PR #21:

ACCEPT:
- test_patch_nimble.py:151 (P1) — replace dead `if False else True`
  ternary with a real assertion that "already applied" is absent on
  the first run.
- test_patch_nimble.py:247 (P1) — invoke the shim subprocess via
  `sys.executable` instead of hardcoded `/usr/bin/python3` so CI's
  setup-python interpreter is used consistently.
- workflows/test.yml:50 (P2) — include hash of
  deps/microReticulum/platformio.ini in PlatformIO cache key so the
  cache invalidates when dependencies change.

MODIFY (narrowed):
- test_ring_buffers.cpp:209 (P2) — keep both `write(data, 0)` and
  `write(data, -1)` assertions, but add a comment clarifying that
  EncodedRingBuffer::write() takes signed `int length` (not size_t),
  so -1 hits the `length <= 0` branch — same as 0. Greptile's
  premise (size_t wrap to SIZE_MAX) does not apply to this codebase.
  The two assertions lock the contract in case the param is ever
  migrated to size_t.

REJECT (silently — no public reply per agent policy):
- test_audio_filters.cpp:237 (P1) — VoiceFilterChain::process()
  takes `numSamples = frames * channels` per the documented
  contract in audio_filters.h:33-40, and the implementation does
  `numFrames = numSamples / channels_` (audio_filters.cpp:63). The
  multichannel test correctly passes `(int)samples.size() = 8000`
  (4000 frames * 2 channels). No out-of-bounds read occurs.
2026-05-04 15:43:14 -04:00
torlando-tech 14f937cf8a Add native pyxis test suite + CI
Standalone C++ tests of pyxis-unique code (BLE fragmenter/reassembler,
peer manager, GATT op queue, LXST ring buffers, audio filters, HDLC
framing) plus Python tests of the patch_nimble.py build script.

Each C++ test is compiled directly by clang++/g++ with shims in
tests/native/ (Bytes.h, Log.h, Utilities/OS.h) so pyxis sources can build
without microReticulum's full Arduino/MsgPack dep tree. A pytest wrapper
per test compiles, runs, and parses the summary line — the whole suite
is one command: `pytest tests/build_scripts tests/native -v`.

Total: 13 pytest tests, ~72 underlying C++ assertions, 3.4s.

Surfaced an HPF-formula bug in lxst_audio (mirrored upstream in
LXST-kt/native_audio_filters.cpp) — filed as LXST-kt#13 and tracked
in the corresponding test with a TODO link.

CI workflow runs the pyxis pytest suite plus the clean-passing
microReticulum native17 unit tests (94/114 of the existing fork
test/* suites) on push and PR.
2026-05-04 14:50:16 -04:00