Changelog
Latest updates, improvements, and fixes for ExecutESG VSME Preview 6788.
v2.9.3 LATEST
2026-09-09v2.9.3: Fix Registration Lead Alert & Auto-Provisioning Single Dispatch
- Registration Alert & Provisioning Deduplication**:
- Removed duplicate event listeners for `NotifyAdminsOfNewRegistration` and `ProvisionEsgClickOrganization` in `AppServiceProvider` that were already discovered via Laravel Event Discovery.
- Eliminated duplicate lead alert emails sent to commercial leadership (Jyrki, Mahdi, Jussi) upon new user registration.
- Added strict single-dispatch test assertions in `NewUserRegistrationNotificationTest` (`Mail::assertSent(..., 1)`) and `EsgClickSyncServiceTest` (`Http::assertSentCount(1)`).
v2.9.0
2026-09-09v2.9.0: Supplier Invoice Upload Bridge with Persistent Audit Trail
- Supplier Invoice Upload Bridge with Persistent Audit Trail (#175, #171, #284)**:
- Drag-and-drop supplier invoice upload supporting PDF, Excel (`.xlsx`, `.xls`, `.csv`), Word (`.docx`, `.doc`), and text files directly in the GHG Emissions Calculator.
- Automatic emissions classification and factor matching for Scope 1 (fuels, stationary and mobile combustion) and Scope 2 (purchased grid electricity and district heating) with unit normalization.
- Dedicated persistent audit trail architecture (`document_uploads` and `document_extractions` tables) with secure company-isolated file storage (`storage/app/documents/...`).
- Cross-module business partner extraction for VSME Module B1 (`b1.q1.business_partners`) linking identified suppliers (e.g. St1 Oy, Helen Oy, Neste).
- Robust multilingual and European number format parsing supporting both comma decimals and thousand separators.
v2.8.1
2026-09-08v2.8.1: AuraWorkWell Diagnostic PDF, Token Sharing & Benchmarks Fix
- AuraWorkWell™ Executive PDF Diagnostic Report (#283)**:
- Formatted 5-page A4 print-ready diagnostic PDF template.
- Implemented WorkwellShowcasePdfService using Spatie LaravelPdf and Browsershot.
- Registered download endpoint GET /workwell-showcase/pdf with one-click download buttons.
- AuraWorkWell™ Dynamic Diagnostic Report Engine & Token Sharing (#282)**:
- Added standalone WorkwellReport component supporting public unlisted tokens and authenticated company admin access.
- Added additive migrations for workwell_gap_scores and workwell_assessments.
- Implemented exact 2D scatter coordinate system matching the CEO Excel model.
- Peer Benchmarks Dashboard 500 Error (#220)**: Resolved Undefined variable $peerWidth 500 error on /panel/benchmarks.
- AuraWorkWell™ Gap Map Alignment (#271)**: Positioned 4-quadrant labels cleanly above and below canvas.
v2.8.0
2026-09-08Release v2.8.0: Heidi QA Report Enhancements, Dynamic GHG Calculator, Scope 2 Market Factors, and AuraWorkWell Debrief
- #279 Dynamic Livewire Updates**: Real-time invalidation of memoized computed properties in Livewire 3 ensures newly added, edited, or deleted emissions entries immediately update KPI summary cards without requiring a page refresh.
- #280 Custom & District Heating Factors**:
- Added company-scoped custom emission factors so users can input supplier-verified invoice figures.
- Seeded Scope 2 district heating market-based factors (100% renewable bio-heat, waste heat recovery, residual mixes).
- Added Finnish district heating guidance tip for Helen, Fortum, Alva, Turku Energia invoices.
- #281 Scope 2 Renewable Electricity Factors & 1-Click Action**:
- Seeded official Scope 2 market-based electricity factors: 100% Renewable Electricity (Guarantees of Origin / PPA), 100% Wind, 100% Solar, 100% Hydro, 100% Nuclear, Finland Residual Mix (Energiavirasto), and EU Average Residual Mix.
- Added 1-click '+ Select 100% Renewable' quick action button that sets contractual market emissions to 0 tCO2e while retaining the physical Finnish grid factor for location-based disclosure.
- Live instant preview renders side-by-side comparison of Location-Based (Grid) and Market-Based (Contract) with a green 'Net Zero' badge.
- #272 Energy & Emissions**: Fixed B3-Q1 fuels/electricity mappings, Executive Summary Scope 1+2 calculation, and GHG intensity ratio presentation.
- #273 Workforce Health & Safety**: Corrected data mapping keys for accidents count, LTIFR rate, and work-related fatalities.
- #274 Remuneration & Training**: Fixed key mismatch in B10 to populate collective bargaining, minimum wage, gender pay gap, and training metrics.
- #275 Layout**: Prevented contact info text overlap on the back page.
- #276 Pagination**: Single-page layout preservation for Environment, Social, and Governance section dividers.
- #277 Formatting**: Enforced space thousands separators across Finnish/Nordic reports (e.g., '12 500 MWh' instead of comma separators).
- #278 Key Figures**: Company-level fallback resolution ensures completed DMA material topic counts display accurately.
- Standardized terminology across the executive showcase: 100% English copy, Theme taxonomy, rotated Y-axis Gap Map, and singular 'Accepted Weakness' classification.
- Local Tests**: 683 automated tests passed (3,624 assertions).
- Staging Preflight**: Live E2E test suite verified on https://vsmetest.pomegroup.studio.
- Production Status**: Successfully deployed to https://executesg.com with health status 200 OK.
v2.7.1
2026-09-07v2.7.1: Questionnaire Wizard State Retention & Radio-Cards Hotfix
- Questionnaire Wizard State Retention (#263)**:
- Fixed an issue where selecting 'Yes' and typing into inner input fields in radio-cards (such as B1.Q5 Sustainability Certificates & Labels) would lose input state on clicking Next.
- Resolved DOM scraping quote parsing conflict in Alpine x-data on the wizard actions bar.
- Made Wizard::next() merge partial input updates rather than destructively overwriting the answers array.
- Added regression test suite covering B1.Q5 state retention and Next navigation.
v2.7.0
2026-09-07v2.7.0: Native CRM Pipeline, Inbound Lead Alerts & SEO Architecture
- Native CRM Lead Pipeline (/core/users)**: Integrated commercial lead tracking tabs, interaction notes, activity logs, and assignee delegation.
- Inbound Lead Alerts**: Automated transactional email alerts to commercial leadership on new user registrations.
- Dedicated Sustainability Reporting Tool Pillar**: Added dedicated landing page and navigation entries for /sustainability-reporting-tool.
- SEO Canonical URL Optimization**: Converted legacy duplicate route aliases to canonical 301 redirects; expanded sitemap.xml.
- Performance**: Eager loaded company reports and answers in admin user listings with defensive relation guards.
v2.6.1
2026-09-04Security Hardening, Threat Defense & Cross-Tenant Isolation
- Security: Enforced global user account suspension via CheckSuspended middleware, terminating active sessions and revoking Sanctum API tokens immediately.
- Security: Locked down GET /api/newsletter-subscribers behind admin auth / sync secrets to eliminate user PII leakage.
- Security: Restricted POST /api/test-email-trigger to local development and authenticated admins to eliminate email relay spam vector.
- Security: Added comprehensive cross-tenant isolation and IDOR checks across Report Viewer, XBRL/Excel export, WorkWell Studio, and Compare Arenas.
- Security: Added NotDisposableEmail validation rule and IP-based rate limiting on registration to block disposable email bot accounts.
- Security: Added API rate limiting on login and webhook endpoints with secret token verification.
v2.6.0
2026-09-01v2.6.0
v2.5.0
2026-08-28Free Readiness Assessment Engine, Super Admin Lead Manager & Integrated Strategy Positioning
- Assessments: Added free interactive ESG Readiness Diagnostic survey (/readiness) and central Assessment Hub (/assessments) with real-time scoring, module breakdowns, and ROI estimates.
- Admin: Built Super Admin Assessment Submissions manager (/core/assessments) with KPI cards, tier/industry filtering, CSV export, and detailed response inspection drawer.
- Marketing: Repositioned homepage Hero to "Sustainability & Strategy. Integrated in One Platform" with direct CTAs for free VS (VSME) onboarding and meeting bookings.
- Localization: Added complete Finnish translations for hero positioning copy and assessment flows.
- Act Module: Added strategic elements, multi-tier hierarchy progress rollups, and interactive project cards.
v2.4.7
2026-08-22v2.4.7 - High-Impact Marketing Localization
- Marketing Localization (Issue #227)**: Fully translated core marketing pages and shared navigation into Finnish and English.
- Navbar & Footer**: Dynamic navigation menus, mega-menu descriptions, and footer links.
- Pricing**: Localized headings, pricing cards, billing toggles, add-on consolidation banner, and FAQs.
- Contact**: Localized headlines, office address, contact person, and Livewire contact form.
- About**: Localized mission, Self-Determination Theory philosophy pillars, and leadership team bios.
- Testing**: Added automated feature tests in MarketingLocalizationTest.
v2.4.6
2026-08-22Marketing Language Switcher
- Navbar: Added desktop and mobile Language Switcher (English / Suomi) to the public marketing navbar.
v2.4.5
2026-08-22v2.4.5 - Smart Report Resolution, Review & Submit Step, and Draft Deletion
- Dedicated Review & Submit Step**: Replaced abrupt auto-submission on the last question with an interactive summary step displaying completion percentage, counts, and 1-click jump links to any incomplete disclosures before final submission (#226).
- Draft Report Deletion**: Added a delete action with confirmation prompt for draft reports in the Reports dashboard (/panel/report), allowing users to easily clean up accidental empty drafts.
- E2E Automation**: Added automated Playwright test suite for report resolution, review & submit step, and draft deletion.
- Smart Report Resolution**: Prevented silent auto-creation of duplicate draft reports when opening the questionnaire from the sidebar. The wizard now reliably reuses the company's active report.
- Question Completion Check**: Fixed false positive completion check on table questions (B3-Q1) by ignoring derived 0 totals and evaluating only user-provided source inputs.
- GHG Calculator Links**: Added target="_blank" and rel="noopener noreferrer" to external GHG calculator entry points to preserve active wizard position.
v2.4.4
2026-08-22VSME Wizard B3-Q1 Energy Table Fix, Fast Sync & Fennoa Integration
- Wizard: Fixed 500 PALVELINVIRHE error on Question 18 (B3-Q1 Energy Table) by eliminating concurrent $wire.set calls in Alpine x-effect and auto-computing derived totals on server (Issue #225).
- Wizard: Migrated all questionnaire inputs to wire:model.live.debounce.300ms to eliminate answer loss and validation race conditions on Next click.
- Integration: Added Fennoa accounting integration with settings UI, normalizer service, and background synchronization.
- Act: Fixed Kanban board blade null checks and progress rollup calculations.
- API: Added token-authenticated /api/newsletter-subscribers endpoint and 1-click test email review trigger.
- Security: Updated composer dependencies to address security audit advisories.
- Testing: Added Playwright E2E automation suite for B3-Q1 Energy Table calculations and rapid navigation.
v2.4.3
2026-07-21About Page Team Update & LinkedIn Profiles
- Team: Replaced Pasi Papunen with Jyrki Taiminen (Business Director) on the About page with updated bio.
- Team: Updated team portrait imagery with Jyrki Taiminen's official photo.
- Team: Added direct LinkedIn profile links for all ExecutESG team members.
v2.4.2
2026-07-18Super Admin Dashboard Redesign & Database Cleanup
- Admin: Redesigned the Super Admin Dashboard with KPI stats, signup growth & plan distribution charts, conversion pipeline funnel, activity feed, and alerts/quick actions.
- Admin: Added db:cleanup-production command to safely remove sandbox, test, or development data while preserving primary customer records.
- Fix: Resolved lazy loading violation in the dashboard by eager-loading user subscriptions.
- Fix: Fixed flakiness in AdminReportViewerTest by using explicit names for test users.
v2.4.1
2026-07-13Blog Links Hotfix
- feat(api): add guided next-question endpoint + robust required detection by @bemehrbani in https://github.com/ExecutESG/vsme/pull/213
- fix(api): unblock consolidated reports + detect object-form required … by @mojbala in https://github.com/ExecutESG/vsme/pull/214
v2.4.0
2026-07-01Netvisor Integration, External API, Glossary, Analytics & Production QA Hardening
- feat: Visma Netvisor API integration for automated GHG baselining by @bemehrbani in https://github.com/ExecutESG/vsme/pull/205
- feat: implement external integration API for VSME platform (#206) by @bemehrbani in https://github.com/ExecutESG/vsme/pull/207
v2.3.1
2026-06-09SEO Redirects & Code Quality Polish
- fix(deploy): update blog:sync paths to match renamed content files and add guide sync by @bemehrbani in https://github.com/ExecutESG/vsme/pull/200
- fix(content): replace irrelevant featured image for best-vsme-reporting-software by @bemehrbani in https://github.com/ExecutESG/vsme/pull/201
v2.3.0
2026-05-22Sustainability Directory, Peer Benchmarks & Onboarding Improvements
- Directory: Public sustainability directory with searchable company profiles and dynamic badge tiers.
- Benchmarks: Peer comparison module with AI-digested ESG data from real sustainability reports.
- Onboarding: Added Company Name and Registration Number capture during user registration.
- Analytics: GTM dataLayer user identification for GA4 attribution on authenticated pages.
- Content: Blog sync paths updated to match renamed content files; added guide syncing support.
- Content: FAQ JSON-LD schema extraction to prevent raw text display on blog pages.
- UX: Human-readable NACE sector display in directory and company profiles.
- UX: Fixed geolocation input editing and conditional textarea disabled state.
- Security: Patched 4 CVEs in Laravel/Symfony dependencies (laravel/framework v12.61.1).
v2.2.2
2026-05-20Premium Featured Blog Images Enrichment
- Blog: Selected and integrated 3 premium, contextually matching Unsplash photo cover assets for the latest blog articles (EU Taxonomy, SFDR, and Scope 1-3 Emissions) resolving visual index inconsistency.
v2.2.1
2026-05-20Branding Refinement & Core Fixes Deployment
- Brand: Updated top-left header logo text from ExecutESG VSME to ExecutESG OS.
- Brand: Updated default app layout metadata titles to ExecutESG OS for full platform consistency.
- Fixes: Deployed full resolved suite including blog links, signup email verification signatures, and trial account gating.
v2.2.0
2026-05-20SEO Academy Guides & Seeding Automation
- SEO Academy: Fully dynamic resources guides system serving curated SEO-optimized guides at /resources/guides.
- Content: Seeded SEO-optimized guides including VSME Data Collection Checklist via MarketingContentSeeder.
- DevOps: Automated seeder execution (MarketingContentSeeder) inside deployment pipeline scripts/deploy.sh.
- CI/CD: Made database migrations and Guides test suite compatible with SQLite in-memory databases for seamless CI execution.
v2.1.0
2026-05-19Organization Member Roles & Invitation Flow Simplification
- Roles: Simplified organization member roles to Owner and Member exclusively.
- Auth: Fixed 403 Unauthorized error for newly invited organization members by correctly assigning default base role.
- UX: Replaced generic password reset email with a branded VSME organization invitation email.
- Auth: Newly invited users are automatically email-verified to prevent unnecessary friction after first login.
v2.0.0
2026-05-19VSME 2.0: Marketing Engine & Brand Polish
- Marketing: High-conversion VSME Reporting Template landing page with hero, value matrix, and FAQ accordion.
- Content: 4 SEO-optimized pillar blog articles seeded via MarketingContentSeeder (VSME Standard, Free vs Paid, Pricing Benchmark, Tutorial).
- SEO: Conditional FAQPage and HowTo JSON-LD schema injection for Google Rich Results eligibility.
- SEO: Responsive CSS overrides for embedded comparison tables on mobile viewports.
- SEO: Environment-aware robots meta tags — staging/dev set to noindex/nofollow automatically.
- Analytics: Verified GTM/GA4 global instrumentation across all marketing pages with data-track-event attribution.
- Brand: Replaced favicon with official ExecutESG Tunnus-Nega symbol (SVG, PNG, ICO) with square aspect ratio.
- Navigation: Added Free Tools section to footer with link to VSME Reporting Template.
- Infra: MarketingContentSeeder integrated into production deploy pipeline for automated content provisioning.
v1.10.1
2026-05-17Analytics Funnel Instrumentation & Tracking
- feat: add GTM analytics for signup and aha moment tracking by @bemehrbani in https://github.com/ExecutESG/vsme/pull/152
v1.10.0
2026-05-08Sustainability Weekly Newsletter & Blog Enhancements
- Blog: Integrated Sustainability Weekly newsletter with 7 backfilled editions from LinkedIn.
- Blog: Rich author card with LinkedIn profile link and initials avatar for guest contributors.
- Blog: Newsletter footer CTA with Subscribe on LinkedIn and Explore VSME buttons.
- Blog: Featured Sustainability Weekly banner on blog index page.
- SEO: RSS feed at /feed with autodiscovery link tag and branded OG images.
- Admin: Added author_url and source_url fields to ContentEditor for streamlined publishing.
- Fix: Category filter labels now visible when selected (brand-primary → brand-navy).
- Security: Updated phpseclib to fix CVE-2026-44167 (ASN1 DoS vulnerability).
v1.9.1
2026-05-04Dashboard 3-Pillar Redesign & Admin Enhancements
- feat: Dashboard 3-pillar redesign and Admin enhancements by @bemehrbani in https://github.com/ExecutESG/vsme/pull/148
- Release v1.9.1: Dashboard Redesign & Admin Enhancements by @bemehrbani in https://github.com/ExecutESG/vsme/pull/149
v1.9.0
2026-05-04Major Platform Expansion: Act Module, CMS & Marketing, and Subscription Gating
- v2.0.0 Marketing Launch: Act Module MVP & Critical Fixes by @bemehrbani in https://github.com/ExecutESG/vsme/pull/134
v-pre-marketing-migration
2026-07-21v-pre-marketing-migration
- v2.0.0 Marketing Launch: Act Module MVP & Critical Fixes by @bemehrbani in https://github.com/ExecutESG/vsme/pull/134
v1.8.0
2026-04-09GDPR Compliance, UI Optimizations & QA Stabilization
- Added comprehensive GDPR Trust Center with links from the footer.
- Implemented strict GDPR cookie consent modal.
- Added User Data Export endpoint for DSAR compliance.
- Added user hard delete/anonymization capabilities for right-to-be-forgotten.
- Fixed issues with parsing commas and saving decimal data in wizard numeric fields (Issue #58).
- Optimized Livewire state syncing for reduced server load resulting in smoother UI generation.
- Fixed sign-in redirect loops for authenticated users and added profile settings links.
- Stabilized automated end-to-end testing for all reporting paths, including new C3/C4 taxonomy questions.