PLESTY Development Report

August 2026 · 2026-07-24 → 2026-08-25 · generated 2026-08-25 · 6 main repos + 23 hub modules

📊 Activity Overview

384
Total Commits
123
New Features
126
Bug Fixes
29
Releases
42
Issues Resolved

Commit Type Breakdown

Activity by Repository · top 5 of 20

🔍 Highlights

plesty-bench · plesty/governance#22
The Bench Console
A new core project turns the bench PC into a managed machine — installing hub modules per version, launching and supervising their device servers, and running field tests from a developer's laptop.
plesty-lib · plesty/core/plesty-lib#27
The field test every device runs
One shared on-hardware gate sequence, generated per module by plesty init field-test, published as a sanitised per-instrument report — plus a second tier that tests the path an experiment actually uses.
plesty-lib · plesty/core/plesty-lib#24
Watching a Run
The Monitor contract, the dockable shell and the Viz command line — an experiment gets a live view of its data by writing one function.
plesty-sdk · plesty/core/plesty-sdk#23
Scaffolding beyond devices
plesty init now scaffolds all four project types — including a working analyzer transform held to the new gate a1 contract.
plesty-sdk · plesty/core/plesty-sdk#27
The version number stops being a promise
Gate 8 of plesty check now diffs your public API against the wheel published on PyPI and refuses an unadmitted breaking change — advisory locally, fatal in CI.

🔬 Hub Module Status

23
Total Modules
19
Devices
1
Analyzers
3
Experiments
14
Active This Period
ModuleVendor / GroupTypeStandardVersionLast ActivityActive
plesty-amc300-piezo-controller ATTOCUBE device quantum 2026-08-25
cam_dmk_37aux290 OTHERS device quantum 2026-08-25
plesty-pi-mirror-controller OTHERS device quantum 2026-08-25
demo experiment quantum v0.1.0 2026-08-25
plesty-pl-image-scan experiment quantum 2026-08-25
plesty-pm100d THORLAB device quantum v0.1.0 2026-08-24
ni-usb-daq NATIONAL_INSTRUMENTS device quantum 2026-08-18
lightfield_spectrometer PRINCETON_INSTRUMENTS device quantum v0.1.0 2026-08-17
plesty-k10cr1 THORLAB device quantum 2026-08-17
plesty-pol-pl experiment quantum 2026-08-17
positionestimate analyzer v0.3.0 2026-08-03
cct11 THORLAB device quantum 2026-07-29
chameleon-laser-ultra COHERENT device v0.0.1 2026-07-28
powermeter THORLAB device v0.0.1 2026-07-28
plesty-fps3010 ATTOCUBE device v0.0.1 2026-07-07
pulse-slicer APE device v0.0.1 2026-07-06
attocube-amc300 ATTOCUBE device 2026-06-09
plesty-powermeter-by-ai THORLAB device v0.1.0 2026-06-05
m2-laser M2 device v0.0.1 2026-06-01
slm MEADOWLARK device v0.0.1 2026-05-19
picamccd PRINCETON_INSTRUMENTS device v0.6.1 2026-03-10
pyforpicam PRINCETON_INSTRUMENTS device v0.1.2 2025-07-23
spectrapro_hrs PRINCETON_INSTRUMENTS device v0.2.0 2023-01-06

📁 Main-Repository Breakdown

governance branch:feat/feedback-workflow 3 commits
📖 2📌 1
3 commits
📖 Docs
  • 2751aa5 feedback: user feedback workflow and issue templates Yunshuang Yuan · 2026-08-13
  • 8beaa4b scope: lead with version→level mapping; state PyPI=quantum release backstop Yunshuang Yuan · 2026-07-24
📌 Other
  • fef2c44 Edit TEAM.md yys · 2026-07-24
plesty-sdk branch:exp tag:v0.3.5 quantum 50 commits
✨ 27🐛 13♻️ 2📖 2🔧 4📌 2
50 commits
✨ Features
  • 90009f0 docs: version picker in the sidebar of every module's docs Yunshuang Yuan · 2026-08-24
  • 95bb973 init: --lib-version pins plesty-lib to what the caller names Yunshuang Yuan · 2026-08-21
  • cf4baa1 init: the scaffold is generated against the newest plesty-lib Yunshuang Yuan · 2026-08-21
  • 7cce1b6 init: field-test interview reads the operation kinds the module declares (plesty-lib#39) Yunshuang Yuan · 2026-08-18
  • 58dac6b init: the scaffold stops carrying its own config loader Yunshuang Yuan · 2026-08-14
  • ab7a8ae docs: the reference pages say what a field test measured Yunshuang Yuan · 2026-08-12
  • cce34c9 init: name what regenerating would take away Yunshuang Yuan · 2026-08-12
  • 884fb65 init: the interview generates the provocation, not just its name Yunshuang Yuan · 2026-08-12
  • c5a3318 init: the generated client test reads the host tier's report Yunshuang Yuan · 2026-08-12
  • a4868d6 init: the generated client test publishes its report Yunshuang Yuan · 2026-08-12
  • 7734a28 init: one interview, two tiers, and answers that persist Yunshuang Yuan · 2026-08-12
  • 5b1a8de init: generate the mock test, and record what ran the checks Yunshuang Yuan · 2026-08-11
  • b70b210 init: expose the server threading mode in the scaffold Yunshuang Yuan · 2026-08-11
  • 072c07a init: derive the model, drop the transport, and make .env safe to have Yunshuang Yuan · 2026-08-10
  • bfabfae init: label every prompt, require a safeguard, and survive Ctrl-C Yunshuang Yuan · 2026-08-10
  • acc3777 init: the choices are a checkable list, not numbers typed into a prompt Yunshuang Yuan · 2026-08-10
  • cf6ba2b init: motion and emission are a question to confirm, not a rule to exclude Yunshuang Yuan · 2026-08-10
  • 89e1e52 init: make the field-test interview readable, and stop asking what it can read Yunshuang Yuan · 2026-08-10
  • 9e4e1ea init: the field test is generated from the device, not from its JSON Yunshuang Yuan · 2026-08-10
  • 18d3e13 init: generate a module's field test by asking about its instrument Yunshuang Yuan · 2026-08-10
  • 31eabb6 check: publish check.json, and refuse a module the hardware contradicts Yunshuang Yuan · 2026-08-10
  • 4949eb8 init,check: full analyzer support — init scaffold and gate a1 Yunshuang Yuan · 2026-08-03
  • 039c810 cli: verbose step-by-step guidance during scaffolding and verification Yunshuang Yuan · 2026-08-03
  • 2077583 init: implement the default project template Yunshuang Yuan · 2026-08-03
  • b47db02 check: run gate 11 (docs build) in merge-request pipelines Yunshuang Yuan · 2026-08-03
  • 3ec98e3 check: authoritative semantic-versioning gate via PyPI API diff Yunshuang Yuan · 2026-08-03
  • 7447b85 init: in-package config.yaml for every module type Yunshuang Yuan · 2026-08-03
🐛 Bug Fixes
  • d0a0c90 docs: never offer a version the reader cannot switch back out of Yunshuang Yuan · 2026-08-25
  • 8f9e414 docs: stamp the version picker into releases built without it Yunshuang Yuan · 2026-08-24
  • 00b89cc check: point the gate reference link at docs.plesty.net Yunshuang Yuan · 2026-08-24
  • 7148c3b deps: declare plesty-lib so the test suite collects in CI Yunshuang Yuan · 2026-08-24
  • ad2c520 init: field-test long-list notice waits for Enter; a confirmed selection leaves a record Yunshuang Yuan · 2026-08-17
  • e9fae73 init: field-test interview reads arrow keys whole and stops drawing lists it cannot erase Yunshuang Yuan · 2026-08-17
  • 10c494b docs: Pages job gates on a file, not a directory glob Yunshuang Yuan · 2026-08-14
  • 8b3f493 init: a published report needs a licence, and JSON cannot carry one Yunshuang Yuan · 2026-08-10
  • c88f1f0 init: the .gitignore rules it wrote were inert Yunshuang Yuan · 2026-08-10
  • 0e888d6 tui: the Windows key reader must type-check off Windows too Yunshuang Yuan · 2026-08-10
  • 0450156 init: drop the removed api-reference docs key from the scaffold template Yunshuang Yuan · 2026-08-03
  • 5f9e895 docs: generate device reference pages inside the Sphinx builder Yunshuang Yuan · 2026-08-03
  • 295f699 init: scaffold plesty-standard-ci@main; upgrade pymdown-extensions (CVE-2026-61632) Yunshuang Yuan · 2026-07-30
♻️ Refactors
  • 5dd7aef manual: move the inline PDF stylesheet into packaged assets Yunshuang Yuan · 2026-08-03
  • 86cbbf6 assets: delete the dead legacy CI asset from the wheel Yunshuang Yuan · 2026-08-03
📖 Docs
  • f3d5a59 architecture: track technical debt as type::debt issues, not a doc register Yunshuang Yuan · 2026-07-30
  • c98558c add living architecture document (release DoD) Yunshuang Yuan · 2026-07-30
🔧 Chores
  • 06d8c18 release: close the changelog for 0.3.5 Yunshuang Yuan · 2026-08-24
  • cefd400 release: name the pin option pre-release 0.3.5.dev1 Yunshuang Yuan · 2026-08-21
  • 2fdaef3 release: name the accumulated changes 0.3.4 Yunshuang Yuan · 2026-08-21
  • cc1ff14 release: name the accumulated changes 0.3.2 Yunshuang Yuan · 2026-08-12
📌 Other
  • 8a0fbc3 update CI to main branch Yunshuang Yuan · 2026-07-24
  • ce86b73 update docs, prepare release Yunshuang Yuan · 2026-07-24
plesty-lib branch:exp tag:v0.3.5 quantum 117 commits
✨ 39🐛 51♻️ 5📖 8🧪 1🔧 7📌 6
117 commits
✨ Features
  • 4db3251 device: a schema names its response parser (#40) Yunshuang Yuan · 2026-08-24
  • d1cf684 test: client tier drives operations by kind (#39) Yunshuang Yuan · 2026-08-18
  • e07b26d test: operations declare a kind and the field test drives them by it (#39) Yunshuang Yuan · 2026-08-18
  • 30bd49e experiment,device: rig preflight and connect_rig — a run starts only on a rig that is really there Yunshuang Yuan · 2026-08-17
  • ac2d0cc device,experiment: connection state + bounded first connect; default logging (#36, #37) Yunshuang Yuan · 2026-08-17
  • 29886d1 monitor: Viz — the monitor/render command line over an experiment's panels (#34) Yunshuang Yuan · 2026-08-17
  • ea70a40 experiment: run convention in one place — records.jsonl, Run, PLESTY_DATA_* (#34) Yunshuang Yuan · 2026-08-17
  • 6bb1d5e device: the composite owns the threads its sockets need Yunshuang Yuan · 2026-08-13
  • a9b9bfc utils: the config loader every module was writing itself Yunshuang Yuan · 2026-08-13
  • 9617b8c ui: the run as something a colleague can watch Yunshuang Yuan · 2026-08-13
  • dbeab74 monitor: a live view that cannot disturb what it watches Yunshuang Yuan · 2026-08-13
  • f6ea800 data: declare h5py as the hdf5 optional extra Yunshuang Yuan · 2026-08-12
  • 85f866d traffic: the transport orphans a reply, so no module has to Yunshuang Yuan · 2026-08-12
  • 7096d64 test: the client tier repeats each call as often as the host tier did Yunshuang Yuan · 2026-08-12
  • d9c26b1 test: the host tier's report decides what the client tier touches Yunshuang Yuan · 2026-08-12
  • 1dae7ef test: the client report says what it reached and how it behaved Yunshuang Yuan · 2026-08-12
  • 14d51ee test: the client tier publishes, and an abandoned call settles quietly Yunshuang Yuan · 2026-08-12
  • a43b995 test: finish the client tier — timeout, allocation, wrapper modes Yunshuang Yuan · 2026-08-11
  • 6ab857d test: a client-side field test — the path an experiment uses Yunshuang Yuan · 2026-08-11
  • 1923383 sim: a standard demo device, so tests stop hand-writing their own Yunshuang Yuan · 2026-08-11
  • ec49617 device: construct CompositeDevice from config dicts Yunshuang Yuan · 2026-08-11
  • 858e380 device: client-settable data path Yunshuang Yuan · 2026-08-11
  • c6e1a8f device: model and transport are part of the contract, not a guess Yunshuang Yuan · 2026-08-10
  • 60cd7a0 test: copy every run to a shared archive when one is configured Yunshuang Yuan · 2026-08-10
  • 251442e test: publish a sanitised field-test report a hub page can read Yunshuang Yuan · 2026-08-10
  • 3f52faa test: name the parameters to test, not the ones to skip Yunshuang Yuan · 2026-08-06
  • e8571f5 traffic: discover an APT controller by serial number, not COM number Yunshuang Yuan · 2026-08-06
  • 8c81be2 test: the function gate can call @expose_to_api methods Yunshuang Yuan · 2026-08-06
  • cf3feaf test: create the orphaned reply deliberately, not by racing a timeout Yunshuang Yuan · 2026-08-06
  • 89e3d5d test: record which plesty-lib produced the report Yunshuang Yuan · 2026-08-06
  • 6ab48c3 test: name what failed, skipped and passed at the end of the run Yunshuang Yuan · 2026-08-06
  • f55f27f test: the drain gate can abandon a slow operation Yunshuang Yuan · 2026-08-05
  • 513c228 test: stop the field test at the first failed gate Yunshuang Yuan · 2026-08-05
  • 06963ee test: propose schema updates from field observations, never apply them Yunshuang Yuan · 2026-08-05
  • 049cd38 test: standardize the on-hardware device field test (#27) Yunshuang Yuan · 2026-08-05
  • 0607605 traffic: watchdog frees VISA reads stuck past their timeout Yunshuang Yuan · 2026-08-04
  • 1cc4657 traffic: in-place recovery for wedged VISA sessions Yunshuang Yuan · 2026-08-04
  • 7358223 analyzer: add the Analyzer ABC and AnalyzerPipeline contract gates Yunshuang Yuan · 2026-08-03
  • 27e673c traffic,device: Thorlabs APT protocol — framing, traffic manager, base device, simulator Yunshuang Yuan · 2026-08-03
🐛 Bug Fixes
  • d53d3e8 test: report_artifact reads the module's own repo, not the one GIT_DIR names Yunshuang Yuan · 2026-08-18
  • 70781c9 traffic: a serial port that is held says so instead of 'Access is denied' Yunshuang Yuan · 2026-08-18
  • a495c51 test: client-tier functions gate passes any operation that returns Yunshuang Yuan · 2026-08-17
  • 83e032d device: a composite that is given up closes its clients — release(); disconnect_all closes remote clients Yunshuang Yuan · 2026-08-17
  • c05f9d1 device: a requested disconnect_all logs DISCONNECTED at INFO, not WARNING Yunshuang Yuan · 2026-08-17
  • e47244b service,device: a first connect to a dead server returns; resolve addresses before connecting Yunshuang Yuan · 2026-08-17
  • d111d12 monitor: Viz --data-dir defaults to PLESTY_DATA_DIR, like --mount Yunshuang Yuan · 2026-08-17
  • 8e6d524 monitor: Viz reports the recording the window itself stopped Yunshuang Yuan · 2026-08-17
  • 0c1ced0 ui: read QByteArray bytes via .data() so mypy passes with PySide6 installed Yunshuang Yuan · 2026-08-17
  • a06db52 transport message loss, blocking reconnect, data path spelling (#31-#33) Yunshuang Yuan · 2026-08-14
  • 413d64f ui: a recording of nothing looks exactly like a recording Yunshuang Yuan · 2026-08-13
  • 815fcea ui: a panel nobody can resize is not a panel Yunshuang Yuan · 2026-08-13
  • 86ae5a7 test: a provoking gate restores what the run first saw Yunshuang Yuan · 2026-08-12
  • 42d19ae test: a provocation the gate cannot undo fails the gate Yunshuang Yuan · 2026-08-12
  • 1a35e69 test: coverage looks calls up under prefixed keys Yunshuang Yuan · 2026-08-12
  • 5347b65 test: the abandoned call, not the connection, gets the short timeout Yunshuang Yuan · 2026-08-12
  • 34bda18 service: a result JSON cannot carry fails the call, not the server Yunshuang Yuan · 2026-08-11
  • 9ec8bb5 service: pin device calls to one thread by default Yunshuang Yuan · 2026-08-11
  • c338ac3 traffic: VISA discovery states what it found and what failed Yunshuang Yuan · 2026-08-11
  • eb992aa device: schema operations keep the description the schema gives them Yunshuang Yuan · 2026-08-10
  • 2ffe4f8 test: coverage takes the API surface from the device's own doc model Yunshuang Yuan · 2026-08-10
  • 05bf643 test: coverage lists the module's operations, not the framework's Yunshuang Yuan · 2026-08-10
  • 4ff2da9 test: discovery is expensive too when init() starts an application Yunshuang Yuan · 2026-08-06
  • c64e173 test: the discovery gate held the instrument it was asked to find Yunshuang Yuan · 2026-08-06
  • 863816e test: stop when the device never connects, and stop restarting it Yunshuang Yuan · 2026-08-06
  • c158e31 device: the FTDI channel letter is not part of the serial number Yunshuang Yuan · 2026-08-06
  • a5e4a4e APT frames belong at debug, and identity must name a findable serial Yunshuang Yuan · 2026-08-06
  • c5ef48f traffic: a simulated APT transport needs no port discovery Yunshuang Yuan · 2026-08-06
  • ad20f9c device: find an APT handler under either spelling of a grouped key Yunshuang Yuan · 2026-08-06
  • 9cd99c2 remove the VISA watchdog; give error_recovery a real failure to recover from Yunshuang Yuan · 2026-08-06
  • 9ff7b22 test: the drain gate reported its own side effect as a stale reply Yunshuang Yuan · 2026-08-06
  • 52193dd the drain gate must not let the transport undo its own provocation Yunshuang Yuan · 2026-08-06
  • 73a128a test: a per-call timeout can no longer defeat the drain gate Yunshuang Yuan · 2026-08-05
  • 3f53493 test: no retries by default Yunshuang Yuan · 2026-08-05
  • e975d3f test: clear the transport after probing optional limits Yunshuang Yuan · 2026-08-05
  • 4b82847 traffic: release the transport lock on close failure; resolve ops in session Yunshuang Yuan · 2026-08-05
  • 63c315e device: release the resource lock even when disconnect fails Yunshuang Yuan · 2026-08-05
  • d4d1b04 test: stop the retry policy from manufacturing the wedge it repairs Yunshuang Yuan · 2026-08-05
  • 5771264 test: an unsupported limit is not a wedged instrument Yunshuang Yuan · 2026-08-05
  • 21cf29f solver: SCPI limit queries pass MIN/MAX as the parameter, not a subnode Yunshuang Yuan · 2026-08-05
  • e51240b traffic: guard session opening; fix the logging that hid where it hung Yunshuang Yuan · 2026-08-05
  • 7a1bb66 traffic: load the resource manager on the no-discovery path, guard open Yunshuang Yuan · 2026-08-05
  • f671483 traffic: VISA discovery no longer scans buses it cannot match Yunshuang Yuan · 2026-08-05
  • 3b57d9a test: field-test gates survive the first bad parameter Yunshuang Yuan · 2026-08-05
  • da3c6a9 device: AsyncDeviceThread inherits the wrapper base — fixed threading never worked Yunshuang Yuan · 2026-08-04
  • b86706b traffic: reopen wedged VISA sessions without discovery Yunshuang Yuan · 2026-08-04
  • c690b9f device: accept finished motion via status poll when completion is lost Yunshuang Yuan · 2026-08-04
  • 81823f1 traffic: discard stale same-id replies before an APT request Yunshuang Yuan · 2026-08-04
  • 8f37f80 traffic,device: fresh APT session — purge adapter and stale streams on connect Yunshuang Yuan · 2026-08-04
  • b1a2d20 service,traffic: startup visibility for stalled devices Yunshuang Yuan · 2026-08-04
  • 8cc6d09 traffic: human-readable AptMessage.__str__ for wire logs Yunshuang Yuan · 2026-08-04
♻️ Refactors
  • bb9f4cc lib: remove the deprecated plestylib namespace shim Yunshuang Yuan · 2026-08-12
  • 0fb177b test: the client tier identifies its module the way the host does Yunshuang Yuan · 2026-08-12
  • 1962e5d test: gate 1 reads the device, and one call runs the pipeline Yunshuang Yuan · 2026-08-11
  • d98f354 test: the mock pipeline is mock-only, and its gates can fail Yunshuang Yuan · 2026-08-11
  • b3999d1 traffic: drop the USB reset from the VISA connect path Yunshuang Yuan · 2026-08-05
📖 Docs
  • d449036 the served device, the simulators, and the bases you can start from Yunshuang Yuan · 2026-08-24
  • 9f341b6 the docs describe what the code does, before the release Yunshuang Yuan · 2026-08-24
  • 29f15e4 ui: module docstrings speak of traces and a demo shell, not one rig Yunshuang Yuan · 2026-08-18
  • edb81c9 monitor: one Run.source() per view — a source hands each record out once Yunshuang Yuan · 2026-08-17
  • 3a88309 changelog: record the transport orphan and get_query_command Yunshuang Yuan · 2026-08-12
  • af70bdb architecture: track technical debt as type::debt issues, not a doc register Yunshuang Yuan · 2026-07-30
  • df4b531 add living architecture document (release DoD); upgrade pymdown-extensions (CVE-2026-61632) Yunshuang Yuan · 2026-07-30
  • 7a72888 solver: document SCPISolver.solve_func and FuncMeta dispatch Yunshuang Yuan · 2026-07-30
🧪 Tests
  • 35a5352 reopen recovery targets the known address, no _open discovery Yunshuang Yuan · 2026-08-04
🔧 Chores
  • 25bff4d deps: lock plesty-sdk 0.3.5 so the docs build with the version picker Yunshuang Yuan · 2026-08-24
  • 27e68a7 release: name the operation-kinds pre-release 0.3.5.dev3 Yunshuang Yuan · 2026-08-18
  • b80f6f6 release: name the rig start-up pre-release 0.3.5.dev2 Yunshuang Yuan · 2026-08-17
  • 5cdc029 release: name the run-convention pre-release 0.3.5.dev1 Yunshuang Yuan · 2026-08-17
  • a9f0e37 release: name the transport and data-path fixes 0.3.4 Yunshuang Yuan · 2026-08-14
  • 0865710 release: name the accumulated changes 0.3.3 Yunshuang Yuan · 2026-08-14
  • 0e45a4c release: name the accumulated changes 0.3.2 Yunshuang Yuan · 2026-08-12
📌 Other
  • 656b6df revert "model and transport are part of the contract", and drop transport Yunshuang Yuan · 2026-08-10
  • af91851 update CHANGELOG Yunshuang Yuan · 2026-07-24
  • c0fc198 update CHANGELOG Yunshuang Yuan · 2026-07-24
  • c2b0053 remove ci component branching exp, it is now available on main Yunshuang Yuan · 2026-07-24
  • 65099d6 remove ci component branching exp, it is now available on main Yunshuang Yuan · 2026-07-24
  • e29804e update docs Yunshuang Yuan · 2026-07-24
plesty-ci branch:main 3 commits
✨ 1🐛 1📖 1
3 commits
✨ Features
  • fc0e058 ci: gate 14 publishes through a PyPI trusted publisher when no token is set Yunshuang Yuan · 2026-08-18
🐛 Bug Fixes
  • cac4536 ci: gate 14 mints the trusted-publishing token with python, not curl Yunshuang Yuan · 2026-08-18
📖 Docs
  • 8968213 templates: gate 11 runs in merge-request pipelines (plesty-sdk >= 0.4) Yunshuang Yuan · 2026-08-03
plesty-bench branch:exp tag:v0.2.6 quantum 74 commits
✨ 17🐛 20📖 4🧪 4🔧 3🚀 12📌 14
74 commits
✨ Features
  • 865f593 install.sh: a test mode, and a launcher for a build installed by hand Yunshuang Yuan · 2026-08-21
  • e0be64b console: a progress line gets its own row, and goes stale on its own Yunshuang Yuan · 2026-08-21
  • c2323a7 installer: a TEST build, and an installer that can actually install Yunshuang Yuan · 2026-08-21
  • 0ca7c6c bench: a port the bench chose moves when something else takes it Yunshuang Yuan · 2026-08-21
  • e9ea13f console: a failure is reported in the window, not in front of it Yunshuang Yuan · 2026-08-20
  • 437dc68 installer: a release the index does not have yet is taken from its tag Yunshuang Yuan · 2026-08-20
  • a4b7d33 console: dim .env comments, and offer branches as git refs Yunshuang Yuan · 2026-08-19
  • 3d24150 installer: the PyPI install shows its log on a wizard page, no console Yunshuang Yuan · 2026-08-19
  • 4aa5c75 model,view: remember each module's repository as a package record Yunshuang Yuan · 2026-08-19
  • 6e6ba0c view: the PLESTY mark as window and About icon Yunshuang Yuan · 2026-08-19
  • e53c8f1 view: field-test gates as the standard check boxes, mock default, full-width fields Yunshuang Yuan · 2026-08-19
  • d420ecb view: fleet file dialogs start in <home>/fleets Yunshuang Yuan · 2026-08-19
  • ac5bd3a bench: plesty.bench client and plesty-bench command Yunshuang Yuan · 2026-08-19
  • 4752d28 view: the Qt console on plesty-lib's theme with its own layout Yunshuang Yuan · 2026-08-19
  • 9e4a692 presenter,cli: Bench and the plesty-server command line Yunshuang Yuan · 2026-08-19
  • 0c4a89a services: installer, detached launcher, job runner, supervisor, agent, catalogue Yunshuang Yuan · 2026-08-19
  • d47070c model: fleet, inventory, jobs, processes, field tests, catalogue; host and reexec seams Yunshuang Yuan · 2026-08-19
🐛 Bug Fixes
  • c8b1724 bench: suppressing the window must not suppress the output with it Yunshuang Yuan · 2026-08-21
  • 882dae5 ports: a busy port read as free on Windows, and the move said nothing Yunshuang Yuan · 2026-08-21
  • 30a08b1 host: the interpreter that re-executes us must be able to own a console Yunshuang Yuan · 2026-08-21
  • f2fc688 installer: a first install on a bare machine finishes in one run Yunshuang Yuan · 2026-08-21
  • b387600 installer: find uv where it lives, and do not install what is there Yunshuang Yuan · 2026-08-21
  • ef27939 host: no cmd window when a device server or a job starts Yunshuang Yuan · 2026-08-20
  • 2436fe7 installer: wait out whoever holds the new environment before moving it Yunshuang Yuan · 2026-08-20
  • 0b6dfa6 installer: one directory, however PATH spells it — and stop guessing ports Yunshuang Yuan · 2026-08-20
  • c3aff0a bench: the fallback needs a repository the fresh bench does not have Yunshuang Yuan · 2026-08-20
  • d76f409 installer: the git the bench installs must reach uv too Yunshuang Yuan · 2026-08-20
  • 839ac87 jobs: a job that finished as we looked is not a lost job Yunshuang Yuan · 2026-08-20
  • ad8a1e8 cli: an expected failure is a sentence, not a traceback Yunshuang Yuan · 2026-08-20
  • 228b1d3 bench: a module install needs no fleet, no git on PATH, no stable-only deps Yunshuang Yuan · 2026-08-20
  • d5de08c server: make a Windows bench behave like a POSIX one Yunshuang Yuan · 2026-08-19
  • e11a50b installer: macOS launcher app declares arm64 — no Rosetta prompt Yunshuang Yuan · 2026-08-19
  • 367ddce installer: Windows install step as a shipped, logged install.ps1 Yunshuang Yuan · 2026-08-19
  • c50bc66 view: fetch the catalogue before the edit/add dialogs open Yunshuang Yuan · 2026-08-19
  • 8835b35 view: substitute installed font families into the stylesheet Yunshuang Yuan · 2026-08-19
  • b03640b view: field-test dialog rejects flag-like addresses and shows the script's options Yunshuang Yuan · 2026-08-19
  • 7ea7352 view: Edit button without the ellipsis Yunshuang Yuan · 2026-08-19
📖 Docs
  • b5d1455 ports get their own page, and the index shows a bench being brought up Yunshuang Yuan · 2026-08-24
  • 90e05e6 the trampoline retry rate was a probe rate, not a field rate Yunshuang Yuan · 2026-08-21
  • 20a3414 installing: whether the pre-release retry fires depends on the bench's uv Yunshuang Yuan · 2026-08-20
  • 1988637 architecture, installing, process management, cross-platform, field tests, cli, gui, remote, packaging Yunshuang Yuan · 2026-08-19
🧪 Tests
  • ce40e84 agent: wait for the bind instead of racing it Yunshuang Yuan · 2026-08-20
  • 8813b12 conftest: a fake venv that is not a venv now fails instead of degrading Yunshuang Yuan · 2026-08-20
  • 1eba49d conftest: a fake venv needs a pyvenv.cfg to be an interpreter Yunshuang Yuan · 2026-08-20
  • 0245757 windows: a modal that blocks forever, and a git test that assumed PATH Yunshuang Yuan · 2026-08-20
🔧 Chores
  • 8bfeca9 deps: plesty-sdk 0.3.5 and plesty-lib 0.3.5 for the docs version picker Yunshuang Yuan · 2026-08-24
  • b57c614 pin quantum standard, add lockfile and check report Yunshuang Yuan · 2026-08-19
  • d0d6545 initial project structure Plesty SDK · 2026-08-19
🚀 CI/CD
  • c5c6c57 drop the Windows cache, which cost ten minutes to save one and a half Yunshuang Yuan · 2026-08-21
  • 4dbbf96 run the suite on Windows Yunshuang Yuan · 2026-08-20
  • d2f6047 installer/* branches build the Windows installer on demand Yunshuang Yuan · 2026-08-19
  • 1ceaa48 release link names without shell metacharacters (the generated release command broke on '|') Yunshuang Yuan · 2026-08-19
  • 7219578 server-wheel job on the PLESTY runner image (the slim uv image has no git) Yunshuang Yuan · 2026-08-19
  • 865ff51 publishing jobs run in environments pypi-bench / pypi-server Yunshuang Yuan · 2026-08-19
  • efebc80 release via the release: keyword, bundles in the package registry Yunshuang Yuan · 2026-08-19
  • e62767b macOS bundle on the macos-15-xcode-16 image (14/15 is no longer offered) Yunshuang Yuan · 2026-08-19
  • 21cab57 release lists the bundles from the package registry Yunshuang Yuan · 2026-08-19
  • a22ae0c bundle/* branches build the bundles too Yunshuang Yuan · 2026-08-19
  • fa0c1f4 build the bundles on demand (BUILD_BUNDLES=true), not only on tags Yunshuang Yuan · 2026-08-19
  • 381de06 omit the Qt console from coverage where the gui extra is absent Yunshuang Yuan · 2026-08-19
📌 Other
  • 880f10e name every cache and build directory in .gitignore Yunshuang Yuan · 2026-08-21
  • 764fb6e 0.2.6 changelog Yunshuang Yuan · 2026-08-21
  • 674712d windows: a build script that parses, runs, and checks its tools Yunshuang Yuan · 2026-08-21
  • 6d0b08c keep uv's cache out of the source distribution Yunshuang Yuan · 2026-08-21
  • 6cae7d7 0.2.5 changelog Yunshuang Yuan · 2026-08-20
  • 79285cc 0.2.4 changelog Yunshuang Yuan · 2026-08-19
  • ef4603f 0.2.3 changelog Yunshuang Yuan · 2026-08-19
  • 4bb2fcd 0.2.2 changelog Yunshuang Yuan · 2026-08-19
  • 0b4b218 0.2.1 changelog Yunshuang Yuan · 2026-08-19
  • 0818c37 0.2.0 changelog Yunshuang Yuan · 2026-08-19
  • 14a77e7 plesty-server on PyPI and light installers instead of bundles Yunshuang Yuan · 2026-08-19
  • 21c4079 installers — macOS .app in a dmg, Windows setup.exe, Linux desktop entry Yunshuang Yuan · 2026-08-19
  • 4cd3d9e 0.1.0 changelog Yunshuang Yuan · 2026-08-19
  • d89487b plesty-bench wheel, PyInstaller bundles per OS, release jobs Yunshuang Yuan · 2026-08-19
plesty-website branch:main 8 commits
✨ 5🐛 2🔧 1
8 commits
✨ Features
  • 68c610a theme: scale the layout above 1180px Yunshuang Yuan · 2026-08-24
  • bc6fa01 build: publish the media a content page references Yunshuang Yuan · 2026-08-20
  • 7a53831 nav: move the sibling sites beside the logo Yunshuang Yuan · 2026-08-24
  • 13a533b docs: give the docs landing the plesty.net header Yunshuang Yuan · 2026-08-24
  • 8fbe7e8 sync: list plesty-bench on the docs landing index Yunshuang Yuan · 2026-08-24
🐛 Bug Fixes
  • 52e5daa theme: guard every image, not only those in the doc card Yunshuang Yuan · 2026-08-20
  • f6877d1 theme: keep content figures inside the column Yunshuang Yuan · 2026-08-20
🔧 Chores
  • 2fec3e3 license: relicense to LGPL-3.0-or-later Yunshuang Yuan · 2026-08-24

📦 Releases

plesty-sdk v0.2.4 → v0.3.5 · 2026-08-24 8 releases
  • v0.3.5 2026-08-24
  • v0.3.5.dev1 2026-08-21
  • v0.3.4 2026-08-21
  • v0.3.3 2026-08-14
  • v0.3.2 2026-08-12
  • v0.3.1 2026-08-10
  • v0.3.0 2026-07-31
  • v0.2.4 2026-07-24
plesty-lib v0.2.9 → v0.3.5 · 2026-08-24 10 releases
  • v0.3.5 2026-08-24
  • v0.3.5.dev3 2026-08-18
  • v0.3.5.dev2 2026-08-17
  • v0.3.5.dev1 2026-08-17
  • v0.3.4 2026-08-14
  • v0.3.3 2026-08-14
  • v0.3.2 2026-08-12
  • v0.3.1 2026-08-10
  • v0.3.0 2026-07-31
  • v0.2.9 2026-07-24
plesty-bench v0.1.0 → v0.2.6 · 2026-08-21 8 releases
  • v0.2.6 2026-08-21
  • v0.2.5 2026-08-20
  • v0.2.4 2026-08-19
  • v0.2.3 2026-08-19
  • v0.2.2 2026-08-19
  • v0.2.1 2026-08-19
  • v0.2.0 2026-08-19
  • v0.1.0 2026-08-19
plesty-k10cr1 v0.1.1 · 2026-08-19
plesty-pm100d v0.1.0 · 2026-08-18
lightfield_spectrometer v0.1.0 · 2026-08-17

🏁 Milestones

Core System integration closed · due 2026-07-28Develop & Field-Test Platform active · due 2026-09-30User-Centred Ecosystem active · due 2026-10-06