Changelog¶
All notable changes to LabNet. The format follows
Keep a Changelog, and versions follow
Semantic Versioning. The packages labnet,
labnet-control-center, labnet-automation and labnet-sim are released
together with the same version.
[Unreleased]¶
[3.0.0] - 2026-10-09¶
The first public release.
Network¶
- Central keeps users and API keys, the device directory, and exclusive, renewable leases (SQLite or PostgreSQL, with migrations).
- Lab PCs serve their instruments over gRPC, with TLS off loopback. Each
call is checked against its lease, the driver's published limits and the
lab's site limits (
site_limits(...)in an inventory), whoever calls. - Clients lease a device from Central, then talk directly to its Lab PC
through typed facades (
SimulatedWavemeter(client=central)), sync or async. labnet-certscreates a lab's private CA and server certificates.
Drivers¶
- Instrument families are driver packages, found through the
labnet.devicesentry-point group.labnet driver buildgenerates a package's bindings, contracts and typed facades from its protos, and--checkfails on stale files.labnet driver new NAME --service SERVICEstarts a package that builds and passes its tests out of the box. labnet.testing:check_driver(would a Lab PC accept this device?) andlocal_network(a real Central and Lab PC in one process).- Each device reports its driver (package, version, contract fingerprint), so a missing or mismatched driver is flagged before it is used.
labnet-sim: a simulated optics bench (laser, AOM, EOM, AWG), aDummyDevice, a step-tuned laser and a wavemeter.
Control Center¶
- A web interface for the whole network: live device pages, saved
experiments and scripts, and Caddy logins (
setup_logins.ps1). - Optional, each off unless turned on: Photo-Agent, a read-only AI
assistant in a chat sidebar; and Automation, where an agent runs
experiments under a protocol a person approves, through a gateway that
checks every device call, with a safe-state watchdog and a containerized
runner (
labnet-automation). LABNET_SITE_NAMEnames the lab in titles and generated scripts.
Tooling¶
labnet dev up / down / status / smoke / seed / restart: a whole network on one computer for development.labnet runner …: the Automation runner next to a dev network.labnet bundlebuilds a hash-recorded bundle for a lab (wheels with every dependency, the lab's site folder,install.ps1);labnet updateinstalls a role side by side, checks it, then switches over, keeping earlier versions for rollback.