Upgrade Notes
lager debug NET flash --erase-start/--erase-sizeneeds a Lager Box on 0.50.0. The options are new on both the CLI and the box. On an older box the CLI refuses them before the erase and printsthis box does not support --erase-start/--erase-size (requires box version 0.50.0 or later). The box therefore never erases its default range in place of yours. Runlager update --box <box-name>before you use them.
Features
-
lager debug NET flashandlager debug NET erasetake an erase range. Pass--erase-start ADDRand--erase-size BYTEStogether;BYTESaccepts2M,512K, decimal or0xhex. On a DA1469x the range replaces the fixed 1 MiB from0x16000000and theLAGER_ERASE_RANGEline of the JLinkScript. On any other target it replaces the full chip erase. Both backends report the range they erased, anderase --jsoncarries it aserase_range.DebugNet.erase(start, length)takes the same pair. Seelager debug. -
GET /benchon the Lager Box andlager bench export: the bench manifest. One versioned JSON document with the nets and their metadata, the instruments on the box, the DUT context and the capability graph. Each net carries its API reference key, and a content hash serves as theETag. A client that keeps a copy of many boxes fetches it in one request and gets304while nothing changed./statusadvertises it ascapabilities.benchManifest. -
lager nets describe --dut-connectionand--test-hint. Two more fields on a saved net: where the net lands on the DUT, and one line of advice for a test author. The MCP tools,/status, the manifest and the per-net metadata endpoint all carry them. -
The box image carries its license notices.
/usr/share/licenses/lager/in the container holds Lager’sLICENSEandNOTICEand aTHIRD_PARTY.mdmanifest of the vendor software in the image. The notice files of each Python package sit underpip/.
Bug Fixes
-
discover_benchlists the instruments on the Lager Box. It always answered an empty list, because the bench was loaded from files and nothing read the USB inventory. The inventory now comes from a scan that runs at most once a minute, and only when an agent asks. -
plan_firmware_testgives a solar net an API reference and a plan phase. The net-type knowledge lived in four tables that had drifted apart. There is now one table, checked againstNetType. -
The MCP server never pairs a new bench with an old capability graph. A reload triggered
by
lager dut editorlager nets describepublished the two in sequence, so a request in flight read one of each.
Improvements
-
lager debug NET healthprints aFeaturesline. It lists what the debug service of the box supports beyond its original requests, such aserase_range. A box that predates the list printsnone reported. -
Every MCP tool reply carries
box_id, the control and exec tiers included. A client that talks to several boxes through one session can tell the replies apart. A box with no/etc/lager/box_idfile and noLAGER_BOX_IDis named by its hostname. -
get_test_examplereturns the curated snippet for each net type of the pattern and a link to the full example in the repository. The example scripts were never in the box image, so on a box the tool returned no script content. -
The nightly bench run drives a live UART peer through
lager uart. The uart suite gained a device round-trip section, and its own defects are fixed, so it gates the night at zero failures. The run creates the peer net itself when a bench has lost it.

