Changelog
Last updated: June 21, 2026
We ship continuously. This page tracks the user-visible changes — reliability fixes, security hardening, billing accuracy improvements, and UI polish.
June 2026
New
-
June 14, 2026
Plan-gated affordances fail closed in the UI.
Features your plan doesn't include — Export CSV, CIDR suggestions, and sync history — are now hidden in the app rather than returning an error only after you click. What you can see matches what your plan can do.
-
June 7, 2026
Pro Plus is now self-serve.
The Pro Plus tier (multi-cloud — Azure + AWS + Google Cloud, 20 connections, up to 1,000 networks) now starts with the same 7-day free trial as Pro. No demo call required to evaluate.
-
June 6–7, 2026
Per-tier feature gating enforced end-to-end.
Cloud-connection limits and tier-specific features (Free, Pro, Pro Plus) are now consistently enforced across the API and UI — including provider gating (Free/Pro = single cloud, Pro Plus = all three) and clearer expired-trial semantics in the billing banners.
-
June 5, 2026
Static CIDRs — bulk CSV import.
Import on-prem and reserved ranges in bulk from a CSV (cidr, label, description). All-or-nothing with a preview step: validation errors block the import so you never end up with a half-applied sheet. Up to 1,000 rows per upload.
-
June 1, 2026
Teams & invitations.
Invite teammates into a workspace by email with owner, editor, or viewer roles. Invitees get a secure accept link, and roles are enforced across the app — viewers read, editors change, owners manage billing and members. Seat counts follow your plan.
Reliability & scale
-
June 5–6, 2026
Conflict detection — faster on large estates.
Rewrote the network-vs-network detector with a LATERAL join and composite GIST indexes on
(org, cidr), and route large same-kind event batches through a partial materialization path. Net effect: noticeably quicker recompute on workspaces with thousands of networks. -
June 6, 2026
Sync-worker autoscale and smoother scheduling.
The background sync worker now scales on queue depth, and the hourly scheduler tick applies per-connection deterministic jitter so large workspaces don't all sync on the same wall-clock second. Reduces tail latency at the top of the hour.
-
June 6, 2026
Queue Listen DSN routed through pooled config.
The internal LISTEN connection now goes through the same pooled config as the rest of the API, removing a class of edge-case wake-up delays under pooling.
UX polish
-
June 3–5, 2026
Provider-aware copy across the app.
Dashboard nouns, connection SCOPES column, conflict labels, and topology picker subtitles are now cloud-native per provider — your AWS workspaces stop seeing Azure-only terms, and vice versa.
-
June 4–5, 2026
Conflict labels prefer cloud-native IDs.
Conflict rows and CSV exports now show human-readable names (and the cloud-native ID when present) before falling back to a UUID prefix. Easier to scan and easier to copy into a ticket.
-
June 4, 2026
Conflicts surfaced on the network detail page.
Open any network and you'll now see the conflicts it participates in directly on its detail page, with per-connection attribution from the dashboard so you know which cloud the overlap came from.
-
June 5, 2026
Reservations table — compact layout.
Reservations now render in a tighter Name / CIDR / Status / Pool / Created / Actions table — more rows per screen on large workspaces.
Late May 2026
New
-
May 28–30, 2026
Topology — connectivity view.
The topology graph now shows how a network reaches the world: gateways and peerings, NAT egress, and transit / Virtual WAN attachments. Click a subnet to open a side panel with its connectivity posture (public, NAT, firewall, or private).
-
May 27, 2026
GCP connections.
VNet IQ reads Google Cloud VPC inventory alongside Azure and AWS. Add a GCP project from the Add Connection dialog, upload a read-only service account key, and your VPCs, subnets, peerings, and cross-cloud CIDR conflicts show up in the same Networks, Pools, and Conflicts views. One GCP project per connection; keyless Workload Identity Federation arrives in Phase 2.
-
May 24, 2026
AWS connections.
VNet IQ reads AWS VPC inventory alongside Azure. Add an AWS account from the Add Connection dialog, deploy a one-click CloudFormation stack (a single read-only cross-account role — no keys), and your VPCs, subnets, and CIDR conflicts show up in the same Networks, Pools, and Conflicts views as Azure. One AWS account per connection.
-
May 22, 2026
Subnet Planner — in-app IPv4/IPv6 calculator.
Plan a CIDR carve-up without leaving the app. Enter a parent block, pick split sizes, and get the subnet table instantly. Runs entirely in your browser — no inputs leave the page.
-
May 17, 2026
Org-level Static CIDRs page.
Manage on-prem and reserved ranges in one place at the workspace level, and have them auto-link to any pool whose envelope contains them. New CIDRs added to a pool retroactively absorb matching org-level entries, with a UI toast at the moment of the move (no more silent state changes).
Reliability & scale
-
May 19–20, 2026
Conflicts at scale — async refresh and 5,000-per-kind cap.
Workspaces with 15K+ conflicts now refresh without timing out: the refresh runs in the background and the page polls for completion. We also cap each conflict kind at 5,000 rows per workspace and show a "Showing N of M" hint when the cap kicks in, so the page stays responsive even on huge estates.
-
May 18–19, 2026
Faster, incremental conflict recompute on writes.
Adding or editing a pool, static CIDR, or connection no longer triggers a full recompute. We now debounce and recompute only the affected slices, and the sidebar, dashboard, and Conflicts page show a "Recomputing conflicts…" indicator while work is in flight.
-
May 19, 2026
Permanent fix for stale VNet rows across multiple Azure connections.
A long-standing class of bug where a VNet visible from more than one connection could linger in the inventory after deletion is now closed. Sync correctly treats co-sighted resources as a single entity for stale detection.
-
May 11, 2026
Background sync runs in its own dedicated worker.
Sync execution now runs in a separate worker service, isolated from the API. Long syncs no longer compete with web requests, deploys recover any in-flight jobs on startup, and we can scale the worker independently of the API.
-
May 18, 2026
Sync finalize no longer times out on large estates.
The post-sync finalize window (mark-stale, materialize conflicts, persist run stats) was timing out on estates with thousands of resources. Window extended and finalize now completes cleanly.
-
May 12, 2026
First sync auto-triggers after a connection validates.
Add a connection, wait for it to go green, and the first sync starts on its own. No need to click "Sync now" to see your inventory.
-
May 11, 2026
Per-IP rate limiting on the public API.
All public and authenticated endpoints now have per-IP rate limits, so a misbehaving client can't degrade the service for the rest of your workspace.
UX polish
-
May 18, 2026
Design system refresh across the app.
New design tokens, a shared Card primitive, and consistent Skeleton + EmptyState states rolled out across the Dashboard, Networks, Pools, Conflicts, and Topology pages. The Dashboard now leads with a hero KPI tile and the Conflicts detail panel sits in a proper Card.
-
May 18, 2026
Topology page — VNet list moved to the right, paginated, with fit-to-view.
The Topology hub now opens with the VNet list on the right side and pagination for large estates. The canvas re-fits when you switch pages, and we dropped the lock toggle and minimap that were adding noise more than value.
-
May 18–20, 2026
Always-visible conflicts count and consistent scrollbar.
The Conflicts page now shows the current count at the top of the page even when filters are applied. Page scrollbars are visible by default across the app so you always know there's more to see below the fold.
-
May 17, 2026
Sidebar conflicts badge stays in sync with your edits.
Saving a pool, adding a static CIDR, or deleting a connection now refreshes the sidebar Conflicts badge immediately, so the number you see always matches the page.
-
May 18, 2026
Real Azure subscription names in the UI.
Connection rows now show the actual Azure subscription display name instead of the GUID.
-
May 16, 2026
Connections can be deleted while over-quota.
Removing a connection used to be blocked once you crossed your plan limit — exactly when you most wanted to remove one. Delete now works regardless of quota state.
May 2026
Reliability
-
May 10, 2026
Sync history retention is now self-extending.
Our time-partitioned sync history table now provisions future partitions automatically. You'll no longer see sync runs silently fail to record their history once we cross a partition boundary.
-
May 10, 2026
Graceful drain on background sync workers.
Sync workers now finish in-flight runs before shutting down on deploys, and any run abandoned by an unclean shutdown is automatically recovered on the next start. Result: fewer "stuck running" rows in your sync history.
-
May 10, 2026
Atomic billing webhook handling.
Paddle webhooks are now recorded and applied in a single transaction, so a crash mid-handler can't leave your workspace in a half-applied state. If you've been charged, your plan reflects it.
-
May 10, 2026
Tighter inventory drift detection across multiple Azure connections.
Resources visible from more than one Azure connection are no longer falsely marked stale when only one connection re-syncs. Less drift between your real Azure VNet inventory and what VNet IQ shows you.
Security & privacy
-
May 10, 2026
HTTP hardening across the API.
HSTS, X-Frame-Options, and other security headers are now set on every API response, and request bodies are capped to a sane maximum to prevent oversized-payload abuse.
-
May 10, 2026
Sign-in resilience across Microsoft sessions.
Improved Microsoft sign-in handling so that interaction-required prompts and stale account selections recover cleanly without leaving you on a blank screen.
-
May 10, 2026
Role-based authorization on every mutation.
Endpoints that change state in your workspace now consistently verify the caller's role. Members can't accidentally perform actions reserved for owners or admins.
-
May 10, 2026
Reduced cross-tenant access surface on internal cron services.
Background jobs (notifications, recovery sweeps) now run as a separate database role from the main API, with only the cross-tenant permissions they actually need. Defence-in-depth on top of Row-Level Security.
-
May 10, 2026
Stricter Paddle webhook verification.
Subscription IDs are now uniquely indexed and webhook signatures must be fresh. A duplicate or replayed billing event can no longer mutate your workspace's plan.
Billing accuracy
-
May 10, 2026
Correct plan resolution on multi-line subscriptions.
We now pick the right line item when a Paddle subscription contains add-ons or proration adjustments alongside the base plan. Fewer "Free plan" surprises after an upgrade.
-
May 10, 2026
Faster past-due notifications.
Your past-due notice now arrives within seconds of a failed Paddle charge, with a direct link to update your payment method — rather than waiting for the next billing-cycle email.
-
May 10, 2026
Cancellations are no longer overwritten by late events.
If a delayed Paddle
subscription.updatedevent arrives after you cancel, your workspace stays canceled. No more zombie reactivations.
UX polish
-
May 10, 2026
Frontend hygiene pack.
Filter changes no longer cause a brief flicker, the app reaches a ready state faster on first load, and our generated billing types stay in sync with the API contract.
-
May 10, 2026
Consistent error envelope across the API.
Every API endpoint now returns errors in the same shape. Easier to handle in your own scripts and integrations, and clearer messages in our UI.
-
May 9, 2026
Auto-refreshing sync history.
The sync history panel on each connection now refreshes itself while a run is in progress — no manual reload to see when it finishes.
-
May 9, 2026
Onboarding checklist and empty states.
New workspaces now see a guided checklist on the dashboard, and the Networks, Pools, Conflicts, and Utilisation pages show clear next-step prompts when setup isn't complete yet.
-
May 9, 2026
Near-quota warning emails.
We'll now email you before you hit a plan limit so you can decide whether to upgrade or trim usage, instead of finding out at the moment a sync gets blocked.
-
May 8, 2026
Trial countdown emails.
Three-day, one-day, and trial-expired reminders so you know exactly where you stand before billing kicks in.
-
May 7, 2026
Welcome email on workspace creation.
New workspaces receive a welcome email pointing to the connection setup guide, addressed by the name on your Microsoft account.
Billing launch
-
May 4, 2026
Mid-cycle plan changes with proration preview.
Upgrade or change plans mid-cycle and see the prorated charge before you confirm. Downgrades while over-quota are blocked with a clear message instead of failing silently.
-
May 3, 2026
Self-serve billing in Settings.
New billing tab with your current plan, usage bars, an upgrade modal, customer-portal access, and clear top banners for trial countdown, over-quota, and past-due states.
Want more detail on how we handle your data and what we ship under the hood? See Security and Privacy.