Changelog
Highlights from recent releases. The in-app "What's new" dialog uses the same list.
2026.08.08 (2026-08-08)
- Report editor: add free-form custom pages (scope of work, methodology, sign-off…) to PDF exports and save the whole layout as a reusable named template.
- Design scope zones: outline the design area from the Auto Planner panel — the heatmap is masked to it and auto-placement stays inside it. Persists per plan.
- Survey walk playback: replay a survey point-by-point from the Survey panel — walked trail, current position, scrub or play.
- 3D building view: with plans assigned to a building, the 3D view can stack every floor — sibling floors render as translucent levels around the current one.
- Wall detection now works without any external ML service: a built-in detector (adaptive threshold + line extraction) finds horizontal/vertical walls in plan images out of the box; Roboflow ML is still used when configured, with automatic fallback.
- Wall detection upgrades: diagonal walls are now detected (with their true angle, not axis-snapped), document borders and title blocks on scanned sheets are ignored, and the detection toast shows which engine ran (built-in vs Roboflow ML).
2026.08.04 (2026-08-04)
- DXF import now infers wall materials from CAD layer names (CONC/CMU → concrete, GLAZING → glass, STEEL → metal, BRICK, TIMBER — anything else defaults to drywall).
- Switches are draggable on the canvas — grab a switch marker to reposition it; the new location saves automatically and cable runs follow.
- PDF report gains a Client Roaming Simulation page (walk stats, association timeline, and a health verdict) whenever a simulation has been run.
- Live view: overlay real-time AP health from Cisco Meraki, Juniper Mist, or Ubiquiti UniFi clouds on your plan — online/offline/alerting badges with client counts and channels, refreshed every 30 seconds. APs are matched by controller serial (import from the controller to link them).
- Live view now also supports Aruba Central, Cisco Catalyst Center, and Ruckus SmartZone — all six connector vendors report AP health.
- Workspace invites for people without an account: inviting an unknown email creates a single-use link (emailed when possible, always copyable) — they sign up and join in one click.
- The PDF roaming page now draws the walk path on the floor plan image — colored per serving AP with roam and disconnect markers.
- Planning assistant: "Send APs to Auto Planner" now opens the Auto Planner directly with the estimate pre-filled and the Advanced section expanded (it previously only set a hidden value).
2026.08.02 (2026-08-02)
- Buildings & floors: new planner panel to group floor plans into a multi-floor building — create buildings, stack/reorder floors, assign plans, and feed inter-floor signal bleed automatically.
- Team workspaces: share floor plans with teammates by email with viewer / editor / admin roles; editors can modify shared plans, viewers get read-only access.
- PDF floor plan import: drop a PDF into the upload panel and the first page is converted to an image in your browser (multi-page PDFs supported one floor per upload).
- Analytics dashboard: new Performance and Live Monitor tabs; quick-action cards now open the planner (upload deep link) instead of dead routes.
- Interactive share links: shared plans are now a live read-only viewer — pan/zoom, walls drawn to type, clickable AP details, and an in-browser coverage heatmap (Signal / SNR) with legend. No account needed.
- AP catalog: 28 new SKUs synced via admin catalog sync — Wi-Fi 7 flagships (Cisco CW9178I, Aruba AP-735/755, Ruckus R770, UniFi U7/E7, Omada EAP783, FortiAP 443K) plus Mist, Extreme, Cambium, Arista, and warehouse-rugged models.
- Admin: new Agents console (queue stats, active/failed counts, old-job cleanup, manual full-test dispatch).
- DXF (CAD) import: drop a .dxf into the upload panel — line geometry becomes real attenuating walls plus a rendered backdrop image (export DWG to DXF from your CAD tool).
- Wired network design (v1): place switches, patch APs (or auto-assign nearest), track port and PoE budgets live, and get cable-run estimates with Cat6 295 ft violation warnings; switch markers and cable runs draw on the canvas.
- Client roaming simulation: draw a walk path on the plan and simulate a sticky client — colored segments show which AP holds it, ⇄ marks roam points, red marks dead stretches; tune roam trigger and hysteresis.
- Bill of materials now uses your designed wired network when present: real switch list with port/PoE utilization and actual per-AP cable-run footage replace the generic estimate, with oversubscription warnings.
2026.03.28 (2026-03-28)
- Fifth batch of 20: WebhookEvent (provider, createdAt) index + SQL helper; enterprise + channel-plan + analytics + health/ready: structured failure logs with message detail (console.error removed); auto-planner plan: X-Request-Id, requestId on success, validation logs; v1 floor-plans by id: rate-limit and CRUD structured logs; admin features/users/subscription/ap-models by id, invoice PDF + resend, verification-codes (logs never include codes), AP catalog sync: structured logs + request ids; coverage-summary export rate-limit log; docs: admin granular routes + color-blind heatmap note.
- Fourth batch of 20: PlanShare (floorPlanId, expiresAt) + AuditLog (userId, createdAt) indexes + SQL helper; coverage calculate rate-limit/validation/error logs + X-Request-Id on error paths; shared AP model seed + public catalog loader with structured logs; PayPal webhook structured logs + request id; v1 floor-plans list/create logs; admin statistics/users/audit-logs/features/subscriptions/invoices/webhooks/ap-models/invoice-template/migrate-floor-plans: structured logs + X-Request-Id; docs observability note; admin features defaults + invoice-template DTO helpers to keep routes under 200 lines.
- Third batch of 20: analytics trends/reports/performance use real DB APs and walls; auth + ownership on performance POST; enterprise floor-plans list includes Prisma AP/wall data; enterprise root + analytics structured logs; building GET/PATCH/DELETE and floor PATCH/DELETE; floor-plan image + health/ready + catalog-info + channel-plan + v1 docs/openapi logging; v1 discovery buildings-session; AP updates participate in undo/redo; Building (userId, updatedAt) index helper; docs expanded for APIs.
- Second batch of 20 roadmap slices: structured logs + request ids for profile PUT, buildings/floors, user features, subscription approve, wall detect, batch floor-plan upload, custom AP export-mine, shared plan image, GET /api/v1 discovery; DB composite indexes on plan_versions and plan_comments (createdAt); wall edit participates in undo/redo; docs + planner links (templates, placed APs, auto-planner advanced).
- deploy-metadata helper; GET /api/health/ready returns version + commitSha; structured logs for floor-plan objects PUT/DELETE, comment PATCH/DELETE, workspaces list/create; custom AP modal footer with docs link.
- Twenty roadmap-aligned slices: structured logs for floor plans (list/delete/patch), duplicate, versions, restore, comments, report branding, objects GET/POST; health JSON may include commitSha; upload uses sharp for image dimensions; FloorPlan (userId, updatedAt) index helper.
- Docs: Advanced topics section (undo, versions, comments, workspaces roadmap, spectrum assumptions, catalog freshness, health, i18n, mobile). Trust page notes commitSha on /api/health.
- Planner: AP catalog footer shows total and custom model counts; coverage area add/remove participates in undo/redo; more modals and tools link to /docs (share, controller CSV, auto-planner results, snap grid, walls export, tour finale).
- Product webhooks: generic export.ready event (kind: channel_plan, coverage_summary, walls_csv) alongside existing typed export events.
- Channel-plan CSV export: structured log export_channel_plan for operations dashboards.
- Public /changelog page, sitemap entry, user menu link, and “full changelog” from What’s new.
- Bulk edit: assign AP model to multiple selected access points (band adjusts if the model does not support the current frequency).
- Docs: keyboard shortcuts aligned with the in-app ? overlay; webhook docs mention export.ready.
- export.ready + structured logs for PDF audit and PPTX exports; auth_password_changed log after successful password change.
- Root layout JSON-LD (WebSite + SoftwareApplication) for search discovery; trust page policy badge links.
- Structured auth_login_success logs after password-direct login and after 2FA verify; OpenAPI + GET /api/v1/docs describe product webhooks.
- Collapsible panels: optional docs link (walls + access points); trust page documents /api/health and /api/health/ready.
- auth_login_failure structured log on invalid credentials; GET /api/v1 lists auto-planner, trial, and productWebhooks.
- Docs links on Visualization, Auto Planner, WiFi Users, Channel Optimizer, and Draw Wall panels.
- auth_verify_failure logs (reason per branch); auth_register_blocked on disabled public register; docs “API discovery” section for GET /api/v1.
- Wall Management & Wall List panels + RF propagation panel link to documentation.
- Forgot/setup password: structured logs for failures + reset email sent + setup success; register blocked log only when JSON body non-empty.
- Quick start wizard footer component with documentation link; AP CSV import panel links to /docs.
- GET /api/auth/user: structured logs for missing auth, missing DB user, and fetch errors; request id on responses.
- Change password: structured failure logs by reason (validation, wrong current password, same password, server error).
- Share links: structured logs for create/revoke success and failures (floor plan, password length, server error).
- Walls CSV import panel and Advanced Heatmap panel link to documentation.
- Premium trial: structured logs for start success and failures (eligibility, already used, errors).
- Password-protected share unlock: structured logs including rate limit, outcomes, and token suffix only.
- Usage API: structured logs for rate limit, missing user row, and server errors.
- Compare scenarios modal: documentation link; subcomponents to keep the modal file under 200 lines.
- Capacity & density panel: link to documentation.
- Survey calibration & survey CSV import: structured logs (rate limits, validation, success metrics).
- Public shared plan GET: structured logs for rate limit, invalid/expired links, password gate, success.
- Floor plan image upload: structured logs and request id on responses.
- PDF report sections modal: link to documentation.
2026.03 (2026-03-03)
- AP catalog: admin sync supplement, JSON/CSV export & import, catalog summary on admin + planner; verify custom models.
- Compare scenarios: Plan A/B choice remembered for the browser session; delta summary (APs, walls, area).
- Planning: project templates for upload + planner presets; auto-planner results sync to store with estimated cost; capacity/density panel.
- Export: channel-plan CSV includes per-access-point rows for controllers/analysis.
- UX: active-tool hint bar, snap-to-grid for walls/APs, skip link + main landmark, Quick start dialog ARIA.
- Accessibility: stronger reduced-motion CSS; coverage summary CSV export for Excel.
- PDF: choose sections (cover, AP list, visualizations, scenario compare, summary) before export; faster coverage preview for report stats.
- Reports: admin “report accent” hex color on invoice template → branded PDF titles via /api/report-branding.
- Share links: optional password (bcrypt) + unlock cookie; expiry presets (24h / 7d / 30d) in share modal.
- Coverage API: preview=true coarser grid + cache key; structured JSON logs for coverage + CSV export.
- Floor plan & shared-plan images: optional WebP when Accept includes image/webp (sharp; Vary: Accept).
- Share unlock: dedicated per-IP rate limit (20 / 15 min) with Retry-After.
- Channel plan CSV: Cisco / Aruba controller reference variants + toolbar modal; v1 POST /export/coverage-summary.
- PowerPoint export: title slide uses invoice template company name and accent color.
- PowerPoint: optional executive summary slide (planner export includes coverage preview + counts).
- API v1: POST /coverage wired; OpenAPI schemas for coverage body and AP CSV import.
- Import AP placements from CSV (append or replace) in Access Points panel; v1 mirror route.
- Jobs table composite index (queueName, state); production CSP drops unsafe-eval from script-src.
- Walls: import segments from CSV (append/replace) in Draw Wall panel; v1 + OpenAPI; rate limit import_wall_csv.
- Optional PRODUCT_EVENTS_WEBHOOK_URL: POST JSON on coverage-summary and channel-plan CSV exports (HMAC optional).
- Usage menu: exports this month (audit log). Heatmap legend: “On-device estimate” when coverage API falls back to the browser.
- API v1 docs JSON: curl-style examples for coverage and wall CSV import.
- Export wall segments CSV (server-backed; matches import columns); Draw Wall panel + v1 POST /export/walls.
- Product webhooks: share link create/revoke, PPTX export, PDF audit (optional floorPlanId in audit payload).
- Usage: last sign-in from login audit; changelog auto-opens once per new version until dismissed.
- RF: selectable FSPL vs ITU-R P.1238, environment presets, per-AP floor offset + slab loss, survey calibration offset on heatmap.
- SNR heatmap: adjustable ambient noise floor (dBm) for more realistic signal-to-noise views.
- Keyboard shortcuts for tools, zoom, and heatmap toggle (? for help).
- Coverage API caching, rate limits, and partial-result notices for large plans.
- Public API v1 discovery, OpenAPI JSON, and quickstart docs.
- Stronger auth rate limits and audit logs for sensitive actions.