Skip to content

v0.2.1

Choose a tag to compare

@franciscofleury franciscofleury released this 05 Jun 23:01
· 69 commits to main since this release

Release Notes - v0.2.1

Adds remote script execution management, hardens API
startup/shutdown, and
overhauls logging. Includes one breaking CLI change — see below.

Breaking changes

  • Log component token API → UVICORN. The --log_console and
    --debug
    flags no longer accept API; use UVICORN for the HTTP-server
    logs.
    Update launch scripts: --log_console API → --log_console UVICORN.
    Available components are now: VEHICLE, UVICORN, GRADYS_GS,
    SCRIPT.

New features

  • Script execution management — run Python scripts on the
    drone's companion
    computer and control their lifecycle over HTTP:
    • POST /mission/execute-script runs an uploaded script in its
      own tmux
      session (UAV_API_<sysid>-<name>-<timestamp>), capturing
      stdout/stderr to
      timestamped log files.
    • GET /mission/running-scripts lists currently running scripts.
    • POST /mission/stop-script stops a script gracefully (Ctrl+C →
      kill) so it
      can run cleanup/landing logic first.
    • A background watcher polls tmux (~2s) and marks scripts
      stopped when their
      session ends.
    • New SCRIPT log component surfaces script lifecycle messages.

Bug fixes

  • GET /movement/set_yaw_rate: fixed an incorrect
    position-target typemask
    that prevented the command from taking effect. Continuous yaw at a
    given
    deg/s now works as documented.
  • Shutdown cleanup: script tmux sessions are now stopped when
    the API shuts
    down, preventing orphaned sessions.

Robustness & internals

  • Hardened startup: SITL liveness is verified after spawn, and any
    partially-started resources (SITL processes, tmux sessions) are
    torn down if
    startup fails — no more half-initialized API.
  • Lifespan logic extracted from api_app.py into a dedicated
    uav_api/lifespan.py.
  • Logging overhaul: print statements replaced with structured
    per-component
    loggers; clearer logger names; loggers configured before setup()
    so early
    messages surface.

Housekeeping

  • Removed stray ArduPilot SITL artifacts committed to the repo
    (mav.tlog,
    mav.tlog.raw, mav.parm, eeprom.bin, terrain data).
  • Documentation refreshed across README.md, CLAUDE.md, and
    .claude/docs/.

Full changelog: v0.2.0...v0.2.1