The "Draft of FleetSuite" commit shipped the Vue SPA, scripts, pyproject
entrypoint, and unit tests, but the meshtastic_mcp.web backend they all
reference was never committed. Root cause: the repo-root .gitignore had a
bare `web` pattern (for the firmware build's top-level web/ output) that
also matched mcp-server/src/meshtastic_mcp/web/, so `git add` silently
skipped the package and a later clean wiped the untracked files. Anchored
the build-artifact patterns (.pio/pio/web/...) to the repo root so they no
longer clobber nested web/ directories.
Reconstructed the backend from the contract pinned down by the three unit
tests and the seven Pinia stores:
- db/ aiosqlite registry: devices (serial-keyed identity that follows
a node across ports, env pinning, offline marking), cameras,
flash timings, test runs/results, build ledger, settings
- services/ identity (VID->role->env, hw_model resolution), control gate
(no port action during a run), builder (SHA-keyed artifact
cache + queue), test_runner (live pytest via reportlog tail),
datadog (scrub + dashboard-compatible mappers + cursor reader),
firmware (git ref), native (Docker meshtasticd), discovery
(USB poll loop), serial_monitor (live pyserial stream),
camera_stream (MJPEG)
- ws/hub.py topic broadcast hub backing /ws
- app.py FastAPI factory: REST for every store/component + /ws, serves
the built SPA
- __main__.py the meshtastic-mcp-web entrypoint (uvicorn + pywebview window,
--browser to serve only)
All 20 web unit tests pass; verified end-to-end against real hardware
(discovery, live serial logs, REST + WebSocket).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
69 lines
1.0 KiB
Plaintext
69 lines
1.0 KiB
Plaintext
/.pio
|
|
/pio
|
|
/pio.tar
|
|
/web
|
|
/web.tar
|
|
|
|
# ignore vscode IDE settings files
|
|
.vscode/*
|
|
!.vscode/settings.json
|
|
!.vscode/tasks.json
|
|
!.vscode/extensions.json
|
|
*.code-workspace
|
|
|
|
.idea
|
|
.platformio
|
|
.local
|
|
.cache
|
|
|
|
.DS_Store
|
|
Thumbs.db
|
|
.autotools
|
|
.built
|
|
.context
|
|
.cproject
|
|
.vagrant
|
|
nanopb*
|
|
flash.uf2
|
|
cmake-build*
|
|
__pycache__
|
|
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
venv/
|
|
.venv/
|
|
release/
|
|
.vscode/extensions.json
|
|
/compile_commands.json
|
|
src/mesh/raspihttp/certificate.pem
|
|
src/mesh/raspihttp/private_key.pem
|
|
|
|
# Ignore logo (set at build time with platformio-custom.py)
|
|
data/boot/logo.*
|
|
|
|
# pioarduino platform
|
|
managed_components/*
|
|
arduino-lib-builder*
|
|
dependencies.lock
|
|
|
|
# JLink / RTT debug artifacts (nRF SoCs)
|
|
flash.jlink
|
|
rtt_*.txt
|
|
idf_component.yml
|
|
CMakeLists.txt
|
|
/sdkconfig.*
|
|
.dummy/*
|
|
|
|
# PYTHONPATH used by the Nix shell
|
|
.python3
|
|
.claude/scheduled_tasks.lock
|
|
userPrefs.jsonc.mcp-session-bak
|
|
|
|
# Fake-NodeDB fixture pipeline (bin/regen-fake-nodedbs.sh)
|
|
# JSONL seeds are committed (test/fixtures/nodedb/seed_v25_*.jsonl);
|
|
# compiled .proto outputs are ephemeral build artifacts.
|
|
build/fixtures/
|
|
bin/_generated/
|