Skip to main content
Changelog

Everything we ship, dated.

No hidden roadmap. No surprise features. Every release, tagged and published the day it lands. Scroll for the current list.

v3.0
FeatureSecurityModule

EDI 277 + 999 inbound, MFA enforcement, dispute drafter, 820 generator, feature flags, full HubSpot + Salesforce one-way CRM push + OAuth web flow

  • EDI 999 + 277 / 277CA inbound — pure X12 parsers (CRLF/LF tolerant, composite-element aware, partial-parse safe), reconciled back to the originating outbound transmission by group control number (999) or TRN02 (277). Per-claim STC status (accepted / pending / rejected / finalized) lands as flat validation rows on the outbound row. POST /api/v1/edi/transmissions/ack + /api/v1/edi/transmissions/status-277.
  • TOTP MFA + recovery codes — RFC 6238 implementation, 4 enrollment routes, and login enforcement via stateless HMAC-signed challenge tokens. Recovery codes are bcrypt-stored, single-use, atomically burned via $transaction. Regeneration requires a current TOTP.
  • Commission dispute drafter — deterministic email skeleton (variance trail, statement period, expected vs received) with optional AI refinement and drift-guard (response must reference the org name + dollar amount or we fall back to the deterministic draft).
  • Feature flag service — per-agency flag CRUD with HMAC bucketing (key = agencyId:flagKey:userId, not just userId, so the same 10% doesn’t get every feature). Used to gate roadmap surfaces in production.
  • X12 820 premium-payment generator — full envelope (BPR I/NON remittance-only, TRN, N1*PR carrier, N1*PE payer, per-EE ENT loops with NM1 + REF + DTM*582 + RMR). 5K-line cap.
  • HubSpot one-way contact push (PAT auth) — Bearer client with 429-aware retry honoring X-HubSpot-RateLimit-Interval-Milliseconds, error classification (auth_failed / rate_limited / not_found / validation_error), connect / disconnect / status / push routes. Atlas → HubSpot only — Atlas remains source of truth.
  • Salesforce one-way contact push (session / OAuth Bearer) — mirror of the HubSpot connector, instance-URL-scoped client with PATCH-by-external-id upsert (velora_atlas_contact_id__c) so dedupe is idempotent in one round-trip. SOQL fallback for orgs without the external-id field configured. Error classification surfaces Salesforce’s errorCode in the message for triage. Same 4-route shape (connect / disconnect / status / push), same encrypt-at-rest tokens, same audit + status surface. Deal sync + full web-flow OAuth UI are roadmap.
  • HubSpot Company + Salesforce Account push — symmetric Organization push surface. POST /api/v1/integrations/hubspot/organizations/[id]/push (search-by-property + create/update) and /api/v1/integrations/salesforce/organizations/[id]/push (PATCH-by-external-id). Domain auto-derived from website for HubSpot dedupe. The returned company / account id is persisted to Organization.hubspotId / Organization.salesforceId so subsequent contact pushes can stamp AccountId on the contact (Atlas → SFDC closes the contact-of-account loop).
  • HubSpot Deal + Salesforce Opportunity push — third CRM leg shipped. Operator passes pipeline + dealstage (HubSpot) or stageName (Salesforce) on each push so we never silently land deals into the wrong stage from an auto-mapping. HubSpot deals carry an explicit company association on create when the linked Atlas Organization has a hubspotId; Salesforce Opportunities populate AccountId the same way. CloseDate is required for Salesforce — the mapper throws a clear 400 with field hint rather than letting Salesforce return a generic VALIDATION_ERROR. Both persist the returned id to Deal.hubspotDealId / Deal.salesforceDealId.
  • HubSpot + Salesforce OAuth 2.0 web flow— paste-in token stays as the developer-friendly path; OAuth is now the connect surface for end users. Stateless HMAC-SHA256 signed state token (10-min TTL) prevents CSRF without a session store, validates the provider on the callback so a state issued for one provider can’t be replayed against the other. Authorize-side: 302-redirect to app.hubspot.com/oauth/authorize / login.salesforce.com/services/oauth2/authorize with operator- configured client_id + scopes. Callback: token exchange viaapplication/x-www-form-urlencoded, capture portal id (HubSpot) / org id + instance_url (Salesforce), encrypt access + refresh tokens at rest, redirect to /settings/integrations?{hubspot,salesforce}=connected. Salesforce side respects a SALESFORCE_LOGIN_HOST env override for sandbox connections. Both flows fail closed: any malformed / expired / cross- provider state token becomes a redirect with a specific {provider}_error reason — never trusts an attacker-supplied agency id from the URL.
  • Atlas-agent test coverage — 19 tests covering all 8 tool dispatchers, agency scoping, limit clamping, MAX_ITERATIONS termination.
  • 1147 tests passing, TypeScript clean.
v2.9
FeatureImprovement

ICHRA + self-funded quoting, Microsoft Graph email sync, AI proposal recommendation

  • ICHRA design + class CRUD + affordability engine — IRS Section 4980H(b) safe harbors (W2 / Rate-of-Pay / FPL), 12 IRS-permitted class types, BY_TIER + BY_AGE contribution modes, age-band validation. Affordability tab on /quotes/ichra/[id] with PDF export.
  • Self-funded illustrative quoting engine — expected vs aggregate-corridor maximum across paid claims (PMPM × lives) + spec stop-loss + agg stop-loss + fixed fees. PDF illustrations with what-if overrides preserved in URL.
  • Microsoft Graph email sync — Outlook-connected agencies were silently being skipped. New parseOutlookGraphResponse maps Graph's nested envelope onto Atlas's flat SyncedEmail.
  • AI proposal recommendation — closes the long-standing TODO on GET /api/v1/deals/[id]/proposal. Deterministic candidate set (cheapest / bestValue / closestToCurrent) → constrained AI pick + 1-sentence rationale.
  • SIEM-ready audit-log export — /api/v1/audit/export emits NDJSON with cursor pagination (Splunk HEC, Elastic, Sumo, Datadog ingest format). recordHash preserved for chain-integrity checks downstream.
  • 783 tests passing, TypeScript clean.
v2.8
FeatureModule

Commission engine COMPLETE — schedules, splits, hierarchy, chargebacks, 1099-NEC, bonus, persistency, projection, aging

  • Schedule engine — 8 rate types (FLAT_PCT, FLAT_DOLLAR, TIERED, GRADED, HEAPED, AS_EARNED, LEVELIZED, PEPM) with per-carrier × product × effective-date resolution. Variance is automatic, not manual data entry.
  • Producer splits + GA hierarchy — first-class ProducerSplit model with 5 roles (PRIMARY / SECONDARY / OVERRIDE_MANAGER / GA_OVERRIDE / HOUSE). Hierarchy resolver walks producer → manager chain with cycle detection.
  • Chargeback engine — calendar-month math with NSF / rescind = full clawback, policy_cancelled / other = pro-rated by remaining months in window. Auto-creates PENDING chargebacks when policy status flips inside the 12-month window.
  • 1099-NEC + producer statements + bonus + persistency + projection + aging — every producer payout report shipped end-to-end with PDF + CSV export.
  • ProducerLicense + CarrierAppointment + E&O compliance bundle — vendor-neutral “track in Atlas, link out for action” pattern with NIPR public-lookup deep-links.
  • ~5,000 LOC of commission code; 519+ engine tests.
v2.7
FeatureImprovement

Demo activation — workflow actions, demo seeds, runbook

  • Workflow engine — send_sms + add_tag are no longer silent no-ops. send_sms wires Twilio / Vonage / webhook abstraction; add_tag is idempotent via TagAssignment dedup.
  • Demo broker pipeline seed — 18 deals across all 8 stages, idempotent.
  • Production-readiness — /api/ready flipped 503 → 200/ready (NEXTAUTH_SECRET + NEXTAUTH_URL set; database / auth / encryption all green).
v2.6
SecurityImprovement

Self-migration to dedicated Neon project

  • Dedicated Neon project — velora-atlas now runs on its own project (flat-paper-32541848, PG17, us-east-1). Shared-DB coupling with HelloHR / Ben / EDI removed.
  • Blast-radius isolation — Atlas's data plane is no longer affected by other product migrations or load.
  • 7-day rollback window preserved via the previous shared cluster snapshot.
  • Cross-product calls — broker-comp, ben, hellohr, edi, intelligence, pulse all read via authenticated HTTPS, no direct DB queries.
v2.5
FeatureModule

API docs page, settings hub, public changelog

  • /settings/api-docs — self-documenting reference for all 63 endpoints across 18 categories. Search, copy-as-cURL, method + auth badges.
  • /settings/changelog — in-product release timeline (v2.1 → v2.5) mirrored to this public page.
  • /settings hub — 6-card nav grid to all settings sub-pages.
  • 10 new tests (presets validation, automation builder exports). 179 passing.
v2.4
Feature

Document detail page, responsive fixes

  • /documents/[id] detail page with metadata, download, and delete actions.
  • Service desk: scrollable filter pills on mobile. No more horizontal clipping.
  • 28 new tests: 834 generator segments, portal session crypto, env-check validation. 169 total.
v2.3
FeatureModule

Employee portal, universal CSV import

  • Employee-facing benefits portal — magic-link auth, coverage display, support requests. White-labeled per client.
  • Universal CSV import component wired across policies, organizations, and commission entries. One pattern, reusable anywhere.
  • 35 new tests (141 total) — AI module exports, quoting engine, COBRA notice templates.
v2.2
FeatureSecurity

Deploy prep — Railway config, middleware, landing page

  • railway.toml with health check + restart policy.
  • middleware.ts with CORS allow-list for Velora-origin-only API access.
  • /welcome landing + /onboarding 4-step wizard (welcome, import, connect email, pipeline).
  • env-check.ts startup validation so mis-configured deploys fail fast.
v2.1
Feature

Atlas v2 — the AI-native rebuild

  • 516 source files, 225 API routes, 97 Prisma models — the full rebuild of Atlas into the broker operating system.
  • 26 AI engines live across the surface — SBC parser, commission reconciliation, RAG over documents, AI calls + transcription, telephonic AI, renewal pipeline triggers, and more.
  • 82 product pages, full EE + ER portals, 5-tier role-based access, append-only audit log on every write.

We’re shipping weekly.

Subscribe to the changelog RSS (coming soon) or request a walkthrough to see what’s in the pipeline.

Request a walkthrough