Changelog

Semantic versioning. Breaking changes to the profile JSON schema only happen on a major, and every one of them is listed here rather than summarised as “improvements”.

Current: 1.0.0 First release Windows 10 / 11 x64
1.0.0 Initial release Stable

The first public version. Per-application routing enforced through the Windows Filtering Platform, named profiles with scheduling, per-adapter speed tests and live bandwidth monitoring. The profile JSON schema is version 1 and is frozen for the 1.x line.

  • ADDPer-application routing: assign an executable to an adapter, enforced by blocking it on the others through WFP filters at the ALE connect layer.
  • ADDHonest enforcement reporting — each rule states whether it was confined, not enforced, and any caveat that applies, rather than assuming success.
  • ADDAdapter enumeration with routability judged from link state, address and gateway, so a dead line cannot be assigned by accident.
  • ADDAdapter isolation by interface metric, with the original value journalled to disk first so it can always be restored.
  • ADDNamed profiles with import and export as JSON, and daily activation windows including spans that cross midnight.
  • ADDPer-adapter speed test bound to that adapter’s own address, plus live per-adapter throughput at a configurable interval.
  • ADDSystem tray operation with configurable minimise and close behaviour, and start at sign-in via an elevated scheduled task (no UAC prompt).
  • ADDNotification when an adapter carrying enabled rules stops being routable — the moment an application silently loses its network.
  • ADD30-day trial, then activation by purchase email and licence key. Keys are ECDSA P-256 signed; the app embeds the public half only.
  • ADDRecovery on launch: an adapter left isolated by a run that ended abnormally is restored from the journal.
  • SECEnforcement is gated on entitlement in the routing service, not only in the window, so an expired trial cannot keep applying rules. Removing rules is never gated.
  • SECSingle-instance guard: two copies managing filters and metrics could overwrite each other’s restore data and strand an adapter.
  • SECNo telemetry and no analytics. The only outbound requests are a speed test when you press it and a licence check when you activate or re-validate.

Not in 1.0

Routing by destination, domain or port; a command-line interface; a PowerShell module; a kill switch; DNS over HTTPS; and webhooks are all on the roadmap and are not in this release. Automatic failover is not planned for the current architecture at all — redirecting a connection needs a kernel callout driver, which usermode WFP cannot do, so an assignment can only be enforced by blocking.


Versioning and support policy

Versions are major.minor.patch. A patch fixes behaviour without changing any interface. A minor adds capability and keeps every existing profile file working unchanged. A major may remove or rename things, and will ship with a migration note for each change.

The public interface covered by that promise is the exported profile JSON schema, including its version field. Internal details — the database layout, the log format, WFP filter weights, the settings file — can change on any release.

Each major line gets security and correctness fixes for two years after its first stable release. Perpetual Professional licences keep working past that date; they simply stop receiving updates, and the support window is about what we patch rather than what keeps running.

What is queued next

Not commitments and not dated, just what is actually being worked on. Ordering follows what people ask for on the support address.

  • Per-rule bandwidth caps, so a bulk rule can be throttled rather than only moved.
  • IPv6 destination rules with prefix delegation awareness.
  • A read-only status endpoint on localhost for dashboards that would rather poll HTTP than shell out.
  • Adapter grouping, so a rule can target "any metered line" instead of one named adapter.
  • Signed profile bundles for locked Enterprise baselines.

Getting notified

The application checks for a new version on launch if you leave that enabled, and says so quietly in the header rather than interrupting. There is no mailing list and no in-app telemetry — the check sends your current version and nothing else, and turning it off in Settings disables the only outbound request the application makes on its own.