Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
33c8836
Add BLE companion disconnect diagnostics
n30nex Jun 17, 2026
235a50f
Document Android BLE companion validation
n30nex Jun 17, 2026
6532fa3
Add TDM airtime serial smoke probe
n30nex Jun 17, 2026
b3c9602
Add MeshCore TDM validation artifact
n30nex Jun 18, 2026
1552fa8
Polish MeshCore artifact workflow
n30nex Jun 18, 2026
88e9731
Guard blocked Windows serial ports
n30nex Jun 18, 2026
4e15934
Document COM8 TDM smoke evidence
n30nex Jun 18, 2026
43b415d
Add local app sample pack
n30nex Jun 18, 2026
7aecfc7
Instrument TDM hold timing
n30nex Jun 18, 2026
51b74d2
Document COM8 TDM timing smoke
n30nex Jun 18, 2026
40e900a
Add local app runtime budget guard
n30nex Jun 18, 2026
0560b35
Add MeshCore companion v0 serial surface
n30nex Jun 18, 2026
ed8cfef
Add MeshCore MC0 USB companion mode
n30nex Jun 18, 2026
1c0ea12
Reduce MC0 USB static DRAM use
n30nex Jun 18, 2026
1d33712
Add app notification feedback diagnostics
n30nex Jun 18, 2026
d9f880d
Add app catalog schema diagnostics
n30nex Jun 19, 2026
e306161
Add OTA manifest diagnostics
n30nex Jun 19, 2026
fa44512
Add device PIN verifier diagnostics
n30nex Jun 19, 2026
e50cd5d
Add Meshtastic protobuf guard vectors
n30nex Jun 19, 2026
c60825d
Add T-Deck smoke reattach retry
n30nex Jun 19, 2026
b7f21cd
Add T-Deck release evidence checklist
n30nex Jun 19, 2026
a2b65f0
Add T-Deck flashing recovery guide
n30nex Jun 19, 2026
3f689ca
Add T-Deck troubleshooting guide
n30nex Jun 19, 2026
0ae0ab5
Add T-Deck user guide
n30nex Jun 19, 2026
90cbde4
Add T-Deck app developer guide
n30nex Jun 19, 2026
8a2cf17
Add T-Deck hardware test matrix
n30nex Jun 19, 2026
e474ff6
Document T-Deck upgrade path
n30nex Jun 19, 2026
3e1a31d
Refresh T-Deck README status for Wi-Fi credentials
n30nex Jun 19, 2026
8cefd01
Document T-Deck release artifacts
n30nex Jun 19, 2026
cfe6e0f
Document T-Deck release bug gate
n30nex Jun 19, 2026
b438964
Refresh T-Deck feature inventory Wi-Fi status
n30nex Jun 19, 2026
6782cf0
Add feedback DND policy foundation
n30nex Jun 19, 2026
d8c5c92
Add low battery policy foundation
n30nex Jun 19, 2026
01f0dc6
Add emergency trigger guard foundation
n30nex Jun 19, 2026
8da3341
Add app permission prompt summaries
n30nex Jun 19, 2026
4287d8f
Add app source settings foundation
n30nex Jun 19, 2026
ea04c04
Add app package SHA256 verifier
n30nex Jun 19, 2026
fdec7e6
Add app install staging promotion
n30nex Jun 19, 2026
000a44b
Add app uninstall data retention
n30nex Jun 19, 2026
9dc2778
Add app update badges
n30nex Jun 19, 2026
239a950
Add app catalog cache
n30nex Jun 19, 2026
4045ac0
Add app catalog fetch transport
n30nex Jun 19, 2026
490955c
Add OTA boot health policy
n30nex Jun 19, 2026
93cd5b4
Add local app runtime fault capture
n30nex Jun 19, 2026
40f65b2
Add settings schema selftest
n30nex Jun 19, 2026
85fdc43
Add node DB schema selftest
n30nex Jun 19, 2026
8fb062a
Add contact trace diagnostics
n30nex Jun 19, 2026
45be6ee
Add NodeInfo enum labels
n30nex Jun 19, 2026
89c72a4
Show channel send failures
n30nex Jun 19, 2026
dbf46d6
Add Home input regression checks
n30nex Jun 19, 2026
de2abf4
Add settings schema regression tests
n30nex Jun 19, 2026
b377823
Add node DB schema versioning
n30nex Jun 19, 2026
a2699b2
Fix synchronous ACK delivery tracking
n30nex Jun 19, 2026
0219e06
test: add Meshtastic protocol vectors
n30nex Jun 19, 2026
7fb8c55
test: expand T-Deck serial smoke diagnostics
n30nex Jun 19, 2026
ea5eaac
tools: verify fetched T-Deck artifact manifest
n30nex Jun 19, 2026
90d5467
docs: define app catalog schema
n30nex Jun 19, 2026
e3684b5
diag: make rxlog status read-only
n30nex Jun 19, 2026
7e4e2dc
Add union merge driver for append-only docs (eases the 50-PR merge)
ItsLimitlezz Jun 19, 2026
c3dcdaf
Merge PR #21: [codex] Add T-Deck release evidence checklist (n30nex)
ItsLimitlezz Jun 19, 2026
53f9fda
Merge PR #22: [codex] Add T-Deck flashing recovery guide (n30nex)
ItsLimitlezz Jun 19, 2026
031c4dc
Merge PR #23: [codex] Add T-Deck troubleshooting guide (n30nex)
ItsLimitlezz Jun 19, 2026
209eab2
Merge PR #24: [codex] Add T-Deck user guide (n30nex)
ItsLimitlezz Jun 19, 2026
0ace69a
Merge PR #25: [codex] Add T-Deck app developer guide (n30nex)
ItsLimitlezz Jun 19, 2026
04ee590
Merge PR #26: [codex] Add T-Deck hardware test matrix (n30nex)
ItsLimitlezz Jun 19, 2026
8a8153e
Merge PR #27: [codex] Document T-Deck upgrade path (n30nex)
ItsLimitlezz Jun 19, 2026
6c3a39c
Merge PR #28: [codex] Refresh T-Deck Wi-Fi credential status (n30nex)
ItsLimitlezz Jun 19, 2026
eb11f4c
Merge PR #29: [codex] Document T-Deck release artifacts (n30nex)
ItsLimitlezz Jun 19, 2026
f23465d
Merge PR #30: [codex] Document T-Deck release bug gate (n30nex)
ItsLimitlezz Jun 19, 2026
7c74c7b
Merge PR #31: [codex] Refresh T-Deck feature inventory Wi-Fi status (…
ItsLimitlezz Jun 19, 2026
9ac84bc
Merge PR #12: [codex] Instrument TDM hold timing (n30nex)
ItsLimitlezz Jun 19, 2026
17cae21
Merge PR #19: [codex] Add Meshtastic protobuf guard vectors (n30nex)
ItsLimitlezz Jun 19, 2026
95857fa
Merge PR #20: [codex] Add T-Deck smoke reattach retry (n30nex)
ItsLimitlezz Jun 19, 2026
d14fae5
Merge PR #45: [codex] Add settings schema selftest (n30nex)
ItsLimitlezz Jun 19, 2026
8a4dc6e
Merge PR #46: [codex] Add node DB schema selftest (n30nex)
ItsLimitlezz Jun 19, 2026
ce075b9
Merge PR #47: [codex] Add contact trace diagnostics (n30nex)
ItsLimitlezz Jun 19, 2026
ba68235
Merge PR #48: [codex] Add NodeInfo enum labels (n30nex)
ItsLimitlezz Jun 19, 2026
89df1b7
Fix #47 trace test role number (Router=2 not 1) + union scaffolding f…
ItsLimitlezz Jun 19, 2026
6e87828
Restrict union merge to docs + flat header (union corrupts nested cod…
ItsLimitlezz Jun 19, 2026
b98cd87
Merge PR #9: [codex] Add BLE companion disconnect diagnostics (n30nex)
ItsLimitlezz Jun 19, 2026
96c8143
Merge PR #10 (n30nex)
ItsLimitlezz Jun 19, 2026
7eeb38b
Merge PR #32: [codex] Add feedback DND policy foundation (n30nex)
ItsLimitlezz Jun 19, 2026
1a6887f
Merge PR #33 (n30nex)
ItsLimitlezz Jun 19, 2026
8ad7476
RAM: move 45KB node DB (g_nodes) to PSRAM — frees internal DRAM for t…
ItsLimitlezz Jun 20, 2026
9f2c019
Merge PR #34: [codex] Add emergency trigger guard foundation (n30nex)
ItsLimitlezz Jun 20, 2026
4dbad63
Merge PR #11: [codex] Add local app sample pack (n30nex)
ItsLimitlezz Jun 20, 2026
5afbad1
Merge PR #13: [codex] Add local app runtime budget guard (n30nex)
ItsLimitlezz Jun 20, 2026
4ca4660
Merge PR #14: [codex] Add MeshCore companion v0 + MC0 USB mode (n30nex)
ItsLimitlezz Jun 20, 2026
90b6b82
Merge PR #15: [codex] Add app notification feedback diagnostics (n30nex)
ItsLimitlezz Jun 20, 2026
0010318
Merge PR #16: [codex] Add app catalog schema diagnostics (n30nex)
ItsLimitlezz Jun 20, 2026
1ad45d0
Merge PR #17: [codex] Add OTA manifest diagnostics (n30nex)
ItsLimitlezz Jun 20, 2026
e75b96c
Merge PR #18: [codex] Add device PIN verifier diagnostics (n30nex)
ItsLimitlezz Jun 20, 2026
4622083
Merge PR #35: [codex] Add app permission prompt summaries (n30nex)
ItsLimitlezz Jun 20, 2026
1fcc2a7
Fix tdeck-only serial_cli union damage from PR #14-#16 merges
ItsLimitlezz Jun 20, 2026
e27daf7
Merge PR #36: [codex] Add app source settings (n30nex)
ItsLimitlezz Jun 20, 2026
3cc36fb
Merge PR #37: [codex] Add app package SHA256 verifier (n30nex)
ItsLimitlezz Jun 20, 2026
b2ecd73
Merge PR #38: [codex] Add app staging promotion (n30nex)
ItsLimitlezz Jun 20, 2026
49578b4
Merge PR #39: [codex] Add app uninstall retention (n30nex)
ItsLimitlezz Jun 20, 2026
a93966e
Merge PR #40: [codex] Add app update badges (n30nex)
ItsLimitlezz Jun 20, 2026
78b12d3
Merge PR #41: [codex] Add app catalog cache (n30nex)
ItsLimitlezz Jun 20, 2026
f62ddee
Merge PR #42: [codex] Add app catalog fetch transport (n30nex)
ItsLimitlezz Jun 20, 2026
c79528d
Merge PR #43: [codex] Add OTA boot rollback policy (n30nex)
ItsLimitlezz Jun 20, 2026
056649e
Merge PR #44: [codex] Add app runtime fault capture (n30nex)
ItsLimitlezz Jun 20, 2026
5bb3e1d
Merge PR #49: [codex] Show channel send failures (n30nex)
ItsLimitlezz Jun 20, 2026
7a0d149
Merge PR #50: [codex] Add Home input regression checks (n30nex)
ItsLimitlezz Jun 20, 2026
5067ff4
Merge PR #51: [codex] Add settings schema regression tests (n30nex)
ItsLimitlezz Jun 20, 2026
771e698
Merge PR #52: [codex] Add node DB schema version (n30nex)
ItsLimitlezz Jun 20, 2026
2db8d27
Merge PR #53: [codex] Fix synchronous ACK delivery tracking (n30nex)
ItsLimitlezz Jun 20, 2026
c18382c
Merge PR #54: [codex] Add Meshtastic protocol vectors (n30nex)
ItsLimitlezz Jun 20, 2026
c946896
Merge PR #55: [codex] Expand T-Deck serial smoke diagnostics (n30nex)
ItsLimitlezz Jun 20, 2026
3436402
Merge PR #56: [codex] Verify fetched T-Deck artifact manifests (n30nex)
ItsLimitlezz Jun 20, 2026
c26f188
Merge PR #57: [codex] Define network app catalog schema (n30nex)
ItsLimitlezz Jun 20, 2026
9bb1279
Merge PR #58: [codex] Add rxlog status command (n30nex)
ItsLimitlezz Jun 20, 2026
79df930
ci: feed budget gate the build log, not the -t size table
ItsLimitlezz Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
# Auto detect text files and perform LF normalization
* text=auto
# Union-merge ONLY genuinely append-safe files: narrative markdown docs and the
# flat declarations/#defines header. The 50 codex PRs each append a line/block to
# these, so union auto-resolves them. Do NOT add structured code with nested {}
# blocks (main_sim.c, serial_cli.cpp, store.c, ...) here — line-based union splits
# their brace structure and silently corrupts the file. Resolve those by hand.
docs/tdeck-firmware-roadmap.md merge=union
docs/tdeck-feature-inventory.md merge=union
docs/tdeck-hardware-dogfood-checklist.md merge=union
docs/tdeck-local-app-manifest.md merge=union
README.md merge=union
src/services/mesh.h merge=union
83 changes: 82 additions & 1 deletion .github/workflows/firmware.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,17 @@ jobs:
python -m pip install --upgrade pip
python -m pip install platformio

- name: Run Python tooling selftests
run: |
python -m py_compile scripts/check_tdeck_budget.py scripts/fetch_tdeck_artifact.py scripts/serial_harness.py scripts/tdeck_smoke.py scripts/tdm_airtime_smoke.py
python scripts/tdm_airtime_smoke.py --selftest
- name: Validate local app samples
run: |
python -m py_compile scripts/validate_local_app_samples.py
python scripts/validate_local_app_samples.py
- name: Validate app catalog schema
run: python scripts/validate_app_catalog.py docs/examples/app-catalog-index.json

- name: Build native simulator
run: pio run -e native

Expand All @@ -68,8 +79,11 @@ jobs:
pio run -e tdeck -t size | tee tdeck-size.txt
cp tdeck-build.txt .pio/build/tdeck/tdeck-build.txt
cp tdeck-size.txt .pio/build/tdeck/tdeck-size.txt
# RAM usage ("used N from M") is only printed by the build log, not by
# `-t size` (which emits the GNU size table) — and -t size is cached
# here since the firmware was already built above. Parse the build log.
python scripts/check_tdeck_budget.py \
--size-report tdeck-size.txt \
--size-report tdeck-build.txt \
--json-out .pio/build/tdeck/size-budget.json \
--markdown-out .pio/build/tdeck/SIZE_BUDGET.md \
--manifest-out .pio/build/tdeck/SIZE_BUDGET.txt
Expand Down Expand Up @@ -120,6 +134,73 @@ jobs:
.pio/build/tdeck/tdeck-build.txt
.pio/build/tdeck/tdeck-size.txt

- name: Build MeshCore-enabled TDM firmware
run: |
set -o pipefail
pio run -e tdeck-meshcore 2>&1 | tee tdeck-meshcore-build.txt

- name: Capture MeshCore-enabled size report and budget
run: |
pio run -e tdeck-meshcore -t size | tee tdeck-meshcore-size.txt
cp tdeck-meshcore-build.txt .pio/build/tdeck-meshcore/tdeck-build.txt
cp tdeck-meshcore-size.txt .pio/build/tdeck-meshcore/tdeck-size.txt
python scripts/check_tdeck_budget.py \
--firmware .pio/build/tdeck-meshcore/firmware.bin \
--size-report tdeck-meshcore-build.txt \
--json-out .pio/build/tdeck-meshcore/size-budget.json \
--markdown-out .pio/build/tdeck-meshcore/SIZE_BUDGET.md \
--manifest-out .pio/build/tdeck-meshcore/SIZE_BUDGET.txt
{
echo "## MeshCore-enabled T-Deck firmware budget"
echo
cat .pio/build/tdeck-meshcore/SIZE_BUDGET.md
echo
echo "## MeshCore-enabled T-Deck firmware size"
echo
echo "\`\`\`"
cat tdeck-meshcore-size.txt
echo "\`\`\`"
echo
echo "- firmware.bin: $(stat -c%s .pio/build/tdeck-meshcore/firmware.bin) bytes"
echo "- firmware.elf: $(stat -c%s .pio/build/tdeck-meshcore/firmware.elf) bytes"
} >> "$GITHUB_STEP_SUMMARY"

- name: Prepare MeshCore-enabled flash bundle
env:
ARTIFACT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
run: |
cp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin .pio/build/tdeck-meshcore/boot_app0.bin
{
echo "repo=${GITHUB_REPOSITORY}"
echo "sha=${ARTIFACT_SHA}"
echo "github_sha=${GITHUB_SHA}"
echo "workflow=${GITHUB_WORKFLOW}"
echo "run_id=${GITHUB_RUN_ID}"
echo "env=tdeck-meshcore"
echo "meshcore_enabled=1"
echo "flash_offsets=0x0 bootloader.bin 0x8000 partitions.bin 0xe000 boot_app0.bin 0x10000 firmware.bin"
cat .pio/build/tdeck-meshcore/SIZE_BUDGET.txt
} > .pio/build/tdeck-meshcore/FLASH_MANIFEST.txt

- name: Upload MeshCore-enabled TDM artifacts
uses: actions/upload-artifact@v7
with:
name: tdeck-meshcore-firmware-${{ github.event.pull_request.head.sha || github.sha }}
if-no-files-found: error
path: |
.pio/build/tdeck-meshcore/bootloader.bin
.pio/build/tdeck-meshcore/boot_app0.bin
.pio/build/tdeck-meshcore/firmware.bin
.pio/build/tdeck-meshcore/firmware.elf
.pio/build/tdeck-meshcore/firmware.map
.pio/build/tdeck-meshcore/partitions.bin
.pio/build/tdeck-meshcore/FLASH_MANIFEST.txt
.pio/build/tdeck-meshcore/SIZE_BUDGET.md
.pio/build/tdeck-meshcore/SIZE_BUDGET.txt
.pio/build/tdeck-meshcore/size-budget.json
.pio/build/tdeck-meshcore/tdeck-build.txt
.pio/build/tdeck-meshcore/tdeck-size.txt

- name: Upload native screenshots
uses: actions/upload-artifact@v7
with:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ __pycache__/
lzdata/
lzdata_shots/
lzdata_simtest/
lzdata_nodeschema/
.claude/
.serena/
Loading