Skip to content

Releases: uvjim/pyvelop

2026.10.2

Choose a tag to compare

@github-actions github-actions released this 07 Oct 14:29
41f44da

What's Changed

  • feat: introduce ActionFeatures.MESH_DETAILS to allow retrieving only the required information when gathering details for the mesh by @uvjim in #441

Full Changelog: 2026.10.1...2026.10.2

2026.10.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 15:14
f4275a9

What's Changed

  • fix: errors when applying parental control schedules by @uvjim in #435
  • feat: add backup/restore for parental control in the CLI by @uvjim in #436
  • feat: allow ignoring the auth boundary check by @uvjim in #437
  • feat: catch admin account being locked by @uvjim in #438
  • fix: provide a default message for the MeshAdminAccountLocked by @uvjim in #439
  • fix: only raise MeshInvalidCredentialsNoRetry if there are attempts remaining by @uvjim in #440

Full Changelog: 2026.9.4...2026.10.1

2026.9.4

Choose a tag to compare

@github-actions github-actions released this 25 Sep 14:34
f3feeec

What's Changed

  • fix: better target weird wifi adpater state in MeshEntity.adapter_info by @uvjim in #434

Full Changelog: 2026.9.3...2026.9.4

2026.9.3

Choose a tag to compare

@github-actions github-actions released this 25 Sep 14:04
ae98436

What's Changed

  • refactor: reduce the boilerplate in MeshEntity.adapter_info by @uvjim in #432
  • feat: implement backup and restore for device details from the CLI by @uvjim in #433

Full Changelog: 2026.9.2...2026.9.3

2026.9.2

Choose a tag to compare

@github-actions github-actions released this 24 Sep 11:52
571b62e

What's Changed

  • refactor: make better use of MeshSerialiser by @uvjim in #429
  • refactor: improve the MeshDeviceNotfoundResponse exception by @uvjim in #430
  • fix: regression when splitting capabilities into scopes by @uvjim in #431

Full Changelog: 2026.9.1...2026.9.2

2026.9.1

Choose a tag to compare

@github-actions github-actions released this 23 Sep 16:18
a47b32a

Note

Huge amounts of refactoring has happened in 2026.9.1.
The idea has been to reduce the number of calls made to the primary node when establishing the available capabilities.
The module now makes an unauthenticated call to retrieve the available services.
The ActionRegistry has been updated to include a mapping between service versions and action versions, allowing the module to use the latest available (but implemented) action.
Where necessary the module highlights where it has had to fallback.

Tip

As part of the refactor some additional actions have been made available. Additional versions of some of the existing
actions have also been implemented. The main one affected by this is testing credentials.
The module will now, if supported, inform of how many attempts are remaining and advise of the cooldown period before another test can be made.
To ensure that the number of retry attempts is not exhausted, attempts will not be allowed if there are 2 or less remaining.
If that is the case, the expectation is that you will use either the router Web UI or mobile app to login and ensure that the
Linksys security policies are followed.

Warning

If you were using the capabilities property on the Mesh class for anything you will need to refactor you code.
The returned format has been updated to include all available capabilities and some underlying information that might be useful.
If you were using this property to determine what functionality was available then your code should be refactored to use hasattr instead.
All properties on Mesh now raise an AttributeError if they are not available.
The check for availability is based on whether a capability is present but can also be based on the version of the action used for that capability.
If in doubt, check the CLI source which has been updated to use hasttr when processing the details that can be rendered.

What's Changed

  • refactor: rewrite of the capability management, action execution and action registry by @uvjim in #357
  • refactor: tidy up mesh attribute by @uvjim in #358
  • refactor simplify and tidy the cli by @uvjim in #359
  • refactor: introduce namespaced mappings for cli workflows by @uvjim in #360
  • refactor: improve comments and type hinting by @uvjim in #361
  • refactor: rehome JNAP types by @uvjim in #362
  • refactor: normalise the JNAP responses for a more consistent approach by @uvjim in #363
  • info: fix reboot action and introduce system stats by @uvjim in #364
  • fix: stop loggin exception when it is being raised anyway by @uvjim in #365
  • feat: add helpers for timeout scenarios by @uvjim in #366
  • fix: reboot was broken as a regression and introduce the ability to wait for a reboot to complete by @uvjim in #367
  • refactor: accommodate reboot better and add uptime by @uvjim in #368
  • fix: reduce the logging noise from capability logging by @uvjim in #369
  • feat: allow waiting for the whole mesh to reboot by @uvjim in #370
  • feat: add last reboot property for nodes by @uvjim in #371
  • refactor: use uptime property in last_reboot calculation by @uvjim in #372
  • fix: ensure all remediations are carrried out in async_get_devices by @uvjim in #373
  • feat: add last_reboot and uptime to the to_dict list to output by @uvjim in #374
  • fix: ensure GET_SYSTEM_STATS is used when gettting node information by @uvjim in #375
  • feat: add callbacks for speedtest and make more robust by @uvjim in #376
  • refactor: tidy up the speedtest work by @uvjim in #377
  • fix: logging redaction regression by @uvjim in #378
  • feat: implement CheckAdminPassword2 by @uvjim in #379
  • info: additional default redactions by @uvjim in #380
  • refactor: adjust the default number of speedtest results to return by @uvjim in #381
  • feat: implement CheckAdminPassword3 by @uvjim in #382
  • feat: guard login attempts against elayed retries and draining the number of attempts by @uvjim in #383
  • feat: flag capabilities as having either a fallback service or action by @uvjim in #384
  • refactor: adjust capabilities property to provide more information by @uvjim in #385
  • feat: raise AttributeError if the property should not be available based on detected capabilities by @uvjim in #386
  • fix: make async_detect_capabilities authoritative by @uvjim in #387
  • fix: ensure GET_PASSWORD_AUTH is optional in async_test_credentials by @uvjim in #388
  • refactor: cli output now allows grouping, sections and detection based on attribute availability by @uvjim in #389
  • fix: regression when setting parental controls by @uvjim in #390
  • feat: allow CLI to know the available icons by @uvjim in #391
  • refactor: tidy up the ParentalControl class by @uvjim in #392
  • fix: make Mesh.wan_status explicit in return and not munch a missing attribute by @uvjim in #393
  • refactor: handle some edge cases for detecting capabilities by @uvjim in #394
  • refactor: make more use of the CLI rendering functions by @uvjim in #395
  • feat: add AbortedByUser to SpeedtestExitCode by @uvjim in #396
  • refactor: implement some ruff recommendations by @uvjim in #397
  • refactor: rename async_initialise to something more meaningful by @uvjim in #398
  • fix: GET_DEVICE_MODE was not showing as a capability by @uvjim in #399
  • feat: add async_refresh to gather data without detecting capabilities and testing auth again by @uvjim in #400
  • fix: allow requests that aren't directed to the primary node to mark validity by @uvjim in #401
  • refactor: rename wait_for_predicate to wait_until by @uvjim in #402
  • feat: add speedtest_latest_complete property by @uvjim in #403
  • fix: speedtest friendly status didn't reflect it wasn't running when the test was complete by @uvjim in #404
  • fix: various speedtest enhancements by @uvjim in #406
  • fix: speedtest is still available when it shouldn't be by @uvjim in #407
  • info: update default redactions by @uvjim in #408
  • refactor: introduce MeshSnapshot to provide access to the point in time properties by @uvjim in #409
  • fix: restore some missing properties for Mesh by @uvjim in #410
  • cli: remove unnecessary cast by @uvjim in #411
  • refactor: stop mangling in MeshSnapshot by @uvjim in #412
  • refactor: better selection of node IP address from raw details by @uvjim in #415
  • fix: ignore errors when using node scoped requests by @uvjim in #416
  • refactor: serialisation of MeshSnapshot by @uvjim in #417
  • fix: add the primary node to the raw nodes for querying by @uvjim in #418
  • feat: add some default redactions for wireless backhaul by @uvjim in #419
  • fix: regression in adapter_info connected state by @uvjim in #420
  • fix: node wireless connections MAC index by @uvjim in #421
  • feat: add support for retrieving ethernet port connections by @uvjim in #422
  • refactor: break up _async_detect_capabilities by @uvjim in #423
  • fix: degrade gracefully if GET_PASSWORD_AUTH_STATUS isn't available by @uvjim in #424
  • feat: support retrieving the DHCP client list by @uvjim in #425
  • refactor: flatten conditional assignments in _build_mesh_entities by @uvjim in #426
  • refactor: small tidy up for capabilities by @uvjim in #427
  • refactor: reduce the noise in MeshEntity.adapter_info by @uvjim in #428

Full Changelog: 2026.8.15...2026.9.1

2026.9.1b11

2026.9.1b11 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Sep 20:18
349ca96

What's Changed

  • feat: add support for retrieving ethernet port connections by @uvjim in #422
  • refactor: break up _async_detect_capabilities by @uvjim in #423
  • fix: degrade gracefully if GET_PASSWORD_AUTH_STATUS isn't available by @uvjim in #424

Full Changelog: 2026.9.1b10...2026.9.1b11

2026.9.1b10

2026.9.1b10 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Sep 15:26
5d8042f

What's Changed

  • fix: regression in adapter_info connected state by @uvjim in #420
  • fix: node wireless connections MAC index by @uvjim in #421

Full Changelog: 2026.9.1b9...2026.9.1b10

2026.9.1b9

2026.9.1b9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Sep 16:34
678fc38

What's Changed

  • refactor: stop mangling in MeshSnapshot by @uvjim in #412
  • refactor: better selection of node IP address from raw details by @uvjim in #415
  • fix: ignore errors when using node scoped requests by @uvjim in #416
  • refactor: serialisation of MeshSnapshot by @uvjim in #417
  • fix: add the primary node to the raw nodes for querying by @uvjim in #418
  • feat: add some default redactions for wireless backhaul by @uvjim in #419

Full Changelog: 2026.9.1b8...2026.9.1b9

2026.9.1b8

2026.9.1b8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 16:01
291fe56

What's Changed

Full Changelog: 2026.9.1b7...2026.9.1b8