Skip to content

Release v0.9.396

Choose a tag to compare

@Treehouse-00 Treehouse-00 released this 28 Sep 01:24
· 1 commit to main since this release

Added

  • Radio Fabric controls in Configuration. Choose the default radio and select Default, Sticky, or Bridge routing. Repeat on ingress and transmission of locally originated packets on both radios appear when the repeater reports support; both require exactly two radios, and ingress repeat also requires Bridge routing.
  • Raw repeater commands from the terminal. Use cli <command> to send a command and read the repeater's own reply, including commands that otherwise have a dedicated console display. Command lookup, help, and autocomplete include the repeater command families, with unavailable Linux commands and conditional region support identified.
  • Per-radio airtime in Statistics. Choose Airtime → Trend to view the repeater's estimated receive and transmit airtime for all radios or one radio. The report counts separate physical transmissions when a relay leaves through both radios, and identifies missing attribution or incomplete radio profiles.

Changed

  • Configuration is easier to navigate on a phone. Search, section actions, the selected device and radio, and the last synchronization time share a compact header. All nine configuration destinations remain available, with a section index, readable labels, wrapping summaries, larger controls, and visible keyboard focus.
  • Review a module's changes before applying them. Editors show original values and the number of unsaved changes, with explicit Apply and Discard actions. Inline validation identifies the field that needs attention, while standalone settings retain their individual save controls.
  • Radio Fabric shows the route being programmed. Its instrument readout brings the default radio, routing mode, ingress repeat, and originated-packet behavior together, with distinct draft, saving, error, and restart states. Saving and restarting remain separate actions; the title, search badge, and status also fit narrow screens.
  • Changing the default web interface requires an explicit Apply. Selecting an interface stages the choice; Set as default interface applies and verifies it. The current page stays open, unavailable choices cannot be applied, and failed selections remain available to retry.
  • Disruptive configuration changes explain their consequences. Disabling forwarding, airtime enforcement, advert protection, or flood-loop detection, allowing other browser origins, and increasing transmit power require confirmation. Pending edits and requests prevent conflicting actions.
  • Update status says what is actually known. The update panel distinguishes unchecked, stale, failed, and current results and shows when the last check ran. Stable and Development remain available, with other branches under the advanced controls.

Fixed

  • Drafts survive status refreshes, collapsing a card, and changing or clearing a search. Clicking outside a modified stealth location also keeps its draft; leaving the page warns about unsaved edits, and pending writes must finish before navigation or restart. A failed save keeps the entered values available to correct or retry.
  • Search opens the setting it finds. Results name matching sections and reveal matching fields, including advanced advert controls. Clearing a search restores disclosure state while keeping active drafts visible, including cards that started collapsed on a phone; keyboard activation of card actions works correctly.
  • Settings stay attached to the device and radio being edited. Apply checks the captured target and current configuration before writing and verifies the result afterward. A changed device, missing radio, changed topology, or conflicting setting keeps the draft open instead of applying it to a different target.
  • Save feedback distinguishes configuration, disk storage, and live behavior. A matching configured value no longer turns an explicit rejection or failed disk write into success. Restart requirements and unconfirmed outcomes remain visible, failed writes can be retried even when values already match, and standalone fields retain the returned receipt after their editor closes.
  • Numeric edits no longer conflict solely because of formatting. Equivalent values such as 434.0 and 434.000 compare as the same number. Empty, non-finite, out-of-range, and invalid-step values are rejected before saving; supported fractional advert settings retain their precision.
  • Radio Hardware preserves the rest of the radio stack. Hardware changes use a fresh configuration while retaining other radios and existing backend details. An untouched hidden modem token stays unchanged, clearing it is explicit, and an empty optional enable-pin list no longer becomes GPIO 0.
  • Protection controls retain actionable failures. Advert presets, flood-loop modes, and Auto-Configure verify the requested configuration and keep errors or restart notices visible. Analysis and Apply remain tied to the same device, and failed operations can be retried without dismissing their results.
  • Configuration switches cannot start overlapping requests. Failed or uncertain forwarding, duty-cycle, and browser-origin changes remain visible until resolved. Updating the airtime limit preserves the current enforcement setting, and older wrapped numeric values are read correctly.
  • Token management separates unsupported features from connection failures. Failed token loading offers a retry instead of an empty list, repeated create or revoke actions are blocked while a request is pending, and failed clipboard copying leaves the new token available for manual copying.
  • Password changes cannot remain pending indefinitely. The request has a deadline covering both the response and its body. An incorrect current password preserves the session and entered fields, while a timeout explains that the outcome may need checking.
  • Software update controls recover after temporary status failures. A failed initial request no longer permanently hides the panel, later checks can recover it, and late responses cannot revive an abandoned request. The existing installation flow and channel choices remain available.
  • Configuration imports report failed disk writes. Backup restore recognizes both supported receipt shapes and reports when configuration was accepted in memory but could not be stored, including restart information.
  • Terminal settings use the repeater's actual command handling. get/set af controls airtime factor independently of transmit delay. Advanced acknowledgement, interference-threshold, and automatic-gain-control settings use the repeater command endpoint; an error inside a successful HTTP response is treated as failure, and clock reads repeater time rather than browser time.
  • Terminal radio setters keep their multi-radio behavior. set tx, set freq, set bw, set sf, and set cr retain the radio configuration endpoint, which resolves the Fabric default radio on current upstream Development; older backends may update only shared defaults. Raw cli set ... and the full set radio ... command retain the repeater's shared-default behavior, which explicit per-radio settings can override.
  • Terminal command routing preserves local tools. clear stats reaches the repeater instead of clearing the screen, while clear and packet capture keep their existing behavior; ordinary advert commands still wait for send confirmation or failure. Password-changing commands are excluded from command recall history, unsupported commands such as setperm are labelled honestly, and cli advert shows the raw repeater reply.
  • Airtime charts include silent periods. Quiet buckets contribute zero airtime to the line and its average, and a partial selection does not inflate a full server bucket's utilization. Invalid multi-radio reports are rejected, and a failed refresh labels the last available report instead of presenting it as current.
  • Live airtime remains readable as packets arrive. Moving live windows no longer start a request and clear the report for every incoming packet. Explicit historical selections keep their exact bounds, while device or radio-profile changes invalidate old results.

Compatibility and distribution

  • New releases use the waev:outpost plugin channel. In the built-in Repeater Frontend, open System → Plugins → Catalogue, find waev:outpost, and press Install. Catalogue installation enables it automatically; open the plugin once UI READY is shown. The standalone pymc_console-dist distribution is retired at v0.9.394, with its existing downloads retained and plugin migration instructions left for current users.
  • Choose the default interface on its configuration page. In the built-in Repeater Frontend, use System → Configuration → Access → Web Options → Web Frontend. In waev:outpost, use Configuration → Web Frontend, then Set as default interface. Selecting the plugin changes the web interface without replacing repeater configuration, radio settings, or credentials.
  • Catalogue and wheel installs have different update paths. Approved catalogue releases can be installed through the repeater's plugin update controls or waev:outpost's update notice. A manually uploaded wheel may lack catalogue update tracking; upload a newer wheel again, or install through the catalogue. A published wheel may appear before catalogue approval reaches the plugin list.
  • Fabric controls follow the connected repeater's capabilities. Older multi-radio repeaters keep the routing controls they support without receiving newer fan-out fields. Fabric configuration requires a repeater restart before the running radio stack adopts it; the console does not restart or reload automatically.
  • Terminal support comes from the connected repeater. Shared commands require its authenticated command endpoint; exposing a command in help does not implement it on Linux. Existing structured setters retain transmit-delay factors 0–5, nonnegative receive-delay values, local advert intervals 0 or 1–10080 minutes, and flood advert intervals 0 or 3–168 hours, with their backend validation and restart feedback. Raw cli set ... uses the repeater command grammar and can have narrower ranges.
  • Airtime is an estimate, not a physical utilization measurement. Multi-radio Trend requires an attributed report and uses current radio profiles; the combined sum can exceed 100%. Device or node filters cannot be applied to that report, and other packet-type airtime views remain estimates from loaded packets. Older single-radio endpoints receive the configured profile; an absent endpoint uses an explicitly labelled loaded-packet fallback. Multi-radio stacks never silently fall back to a single-radio total.
  • Under the hood. Shared editor state, save receipts, numeric readers, update status, and hardware payload construction have been consolidated and covered by regression tests. Development builds also include a synthetic two-radio Fabric and airtime preview; preview saves remain local and never configure or restart a repeater.

Full history: CHANGELOG.md

Installation

In the built-in Repeater interface, open System → Plugins → Catalogue, find waev:outpost, and press Install. Catalogue installation enables the plugin automatically. Confirm UI READY on the Installed tab, then use Open UI or visit /plugins/waev.outpost/ with your existing Repeater credentials.

To use waev:outpost at /, open System → Configuration → Access → Web Options → Web Frontend and select the waev:outpost plugin entry. The built-in interface applies this selection immediately.

For a direct installation, download this release's .whl, use System → Plugins → Install wheel, select the file and press Install, then Enable if disabled.

Moving from pymc_console-dist? v0.9.394 is the final legacy standalone release. Keep your existing files and Repeater configuration. In waev:outpost, use Configuration → Web Frontend → Default Frontend to return to the built-in Repeater interface, then follow the plugin installation steps. See the migration and recovery guide. No credential reset or standalone uninstall is needed.

Upgrade

For catalogue installs, use System → Plugins → Catalogue → Refresh → Update when offered, or What's new → Update in waev:outpost. A published release becomes available there only after catalogue approval.

A fresh local-wheel installation has no catalogue repository metadata, so automatic Update may be unavailable. Upload the newer wheel with Install wheel again, or use the guide's catalogue-install API to adopt the approved version. Check that version first because it may be older than a manually uploaded release. Repeater configuration and credentials remain in place.