Cashwerk cashwerk.io ↗

Product updates

Changelog

Every new feature, improvement and fix we ship — across the Cashwerk platform, updated automatically with each release.

Frontend

v1.7.0

New
  • licensing: branded upgrade dialog for gated actions (global)
Fix
  • organization,licensing: ungate branches; guard null interval label
  • ci: guard resolve-local-deps so changelog workflow doesn't fail in single-repo CI
Docs
  • changelog: update CHANGELOG.md for v1.6.0
Notable
  • release: 1.7.0 [minor]
  • nx-chat: fixed visual issue with CDK content wrapper
Backend

v1.7.0

New
  • i18n: add ERRORS.LICENSING.SEAT_ABOVE_MAXIMUM (de+en)
Fix
  • licensing: floor license expiry at granted free period; add expiry repair
Docs
  • changelog: update CHANGELOG.md for v1.6.1
Notable
  • release: 1.7.0 [minor]
Backend

v1.6.1

Fix
  • licensing: resolve seat-based product per tier (legacy/per-seat coexist in prod)
  • ci: guard resolve-local-deps so changelog workflow doesn't fail in single-repo CI
Docs
  • changelog: update CHANGELOG.md for v1.6.0
Notable
  • release: 1.6.1 [patch]
Frontend

v1.6.0

New
  • licensing: resume-payment CTA in billing cockpit + dark checkout theming
  • licensing: collect card inline when a plan upgrade needs payment
  • licensing: collect card inline when a plan upgrade needs payment
  • currency: swap CurrencyPipe for MoneyFormatPipe in component imports
  • user-status: shared nx-user-status widget adopted app-wide
  • currency: centralize money formatting via money pipe and CurrencyFormatterService
  • platform: wire feature gates, credit checks, and paid overlays
  • admin-panel: add seat transition panel and manual license grant (S17B)
  • organization: add billing cockpit and credits usage dashboard (S14/S24)
  • nx-licensing: add billing, credits, addons, and enforcement UI (S13–S25)
  • nx-licensing: add plan switch dialog, seat count selector and contextual pricing table (S08)
  • nx-licensing: add trial state helpers and signal-first trial banner (S06)
  • nx-licensing: add NxTrialService, trial plan config and response model (S05B)
  • nx-licensing: resolve license state from org effective license (S04)
  • nx-admin-panel: add manual license grant/revoke UI to organization licensing tab (S03)
  • nx-licensing: extend license model with source and grant fields
  • nx-dashboard: enhance analytics chart tooltip with human-readable dates and hour formatter
  • nx-dashboard: add CRM KPI cards and Upcoming Snapshot widget with permission-based card selection
  • nx-licensing: introduce LicenseFeature enum, feature access utils and NxFeatureGateDirective
  • nx-invoicing: add view linked project navigation button in invoice and offer boards
  • calendar: add two-week, six-week and quarter calendar views
  • profile: wire Device Manager route and settings menu entry
  • profile: add Device Manager settings page with session tracking UI
  • nx-calendar: add sync source linking UI to edit dialog and filter sidebar
  • nx-invoicing: add filter components and NgRx filter state management
  • shared: add reusable list header and filter sidebar components
  • nx-work-manager: add global worktime-missing banner in topbar
  • booking: add Open Graph meta tags for social link previews
  • nx-chat: add idempotency key to socket send and REST fallback
  • nx-chat: add socket send-message fallback and unread count improvements
  • sidebar: redesign navigation sidebar with collapsible layout
  • nx-booking: enhance bookings tab with filtering and staff booking creation
  • nx-crm: add appointments tab to relationship list widget
  • shared: add timezone selector component and update sidebar navigation
  • nx-sales-pipeline: update deal details for many-to-many CRM associations
  • nx-crm: add company import handler and clean up CRM service
  • nx-crm: unify CRM metric cards into compact single row and enhance dashboard charts
  • nx-crm: add PRIVATE_CUSTOMER type, CHURN status and CRM field configs
  • organization: add enterprise gating and auto-join rules to transcription settings
  • organization: add transcription settings page with usage overview
  • calendar: integrate live transcript socket and recording playback
  • calendar: add transcription settings models, socket service, and HTTP methods
  • i18n: add PrimengI18nService for dynamic PrimeNG locale switching
  • nx-profile: add paid feature overlay to mailing and calendar sync settings
  • nx-api-platform: add paid feature overlay to integration portal and detail pages
  • nx-licensing: add reusable NxPaidFeatureOverlayComponent for premium feature gating
  • nx-booking: add share link password visibility with reusable nx-SecretField component
  • notifications: implemented socket gateway (2)
  • notifications: implemented socket gateway
  • calendar: add toolbar date navigation popover
  • calendar: expand transcript detail and calendar event flows
  • nx-calendar-sync: add auto-join rules and i18n improvements
  • nx-permissions: add permission presets with translated preview
  • nx-global-search: improve search with i18n and working actions
  • nx-sidebar: redesign workspace selector and navigation profiles
  • nx-calendar: add meeting transcription UI and platform fields
  • nx-booking: add booking management and public scheduling UI
  • nx-calendar: add guest-to-contact conversion feature
  • nx-calendar: add sync badges, filter sidebar, and event overlays
  • nx-calendar: add calendar sync settings page and NgRx state
  • nx-calendar: wire recurring events, multi-calendar, attachments, and stability fixes
  • nx-calendar: add recurring action dialog, DTOs, and calendar models
  • nx-work-manager: modernize time/break tracking forms with option cards and collapsible sections
Fix
  • licensing: widen plan-switch payment dialog to fit inline card form
  • licensing: widen plan-upgrade payment dialog and refresh plan after purchase
  • auth: redirect authenticated users off the sign-in route
  • login: stale showing forced license modal on login page
  • nx-spinner: remove duplicate icon input and mark standalone
  • chat: always open conversations fully scrolled to the bottom
  • deps: pin @cashwerk/shared-types@1.2.1 from GitHub Packages
  • nx-licensing: correct billing cockpit and Stripe return URLs
  • nx-booking: resolve public booking asset URLs on the client
  • nx-chat: prevent zombie state by refreshing JWT on socket reconnect
  • nx-licensing: register de-DE locale, fix license_interval.null label and trial CTA routing
  • nx-licensing: propagate translationKey and translationContext from server error responses
  • nx-licensing: fix slot update modal stuck in PROCESSING and broken error state
  • meetbot: pass occurrence start for recurring event transcription scheduling
  • nx-profile: update device settings card to PrimeNG v20 design tokens
  • nx-profile: guard device manager against cross-profile session leak
  • nx-calendar: correct all-day event end date rendering for non-UTC timezones
  • invoicing: board loading fix
  • nx-topbar: fix unread chat badge visibility and positioning in topbar
  • nx-ai-assistant: fix draggable AI chat button tooltip anchor to target wrapper element
  • nx-drive: reset loading state on cache hit in loadOrganizationPossessedDrives
  • ui: resolve multiple UI/UX bugs across CRM, drive, notifications, layout and organization
  • nx-licensing: migrate all feature gates from deprecated isTrial() to hasAccessToFeature()
  • nx-licensing: rewrite LicenseEnforcementInterceptor and fix modal cooldown reset
  • nx-shared: add fluid attribute to p-datepicker inputs and sort phone model imports
  • nx-shared: correct phone number formatting with plus prefix in feed and text blocks
  • nx-work-manager: fix tracking widget duration format, UI redesign and board totals icons
  • nx-task-manager: fix tasks not loading on dashboard refresh and list flicker
  • nx-drive: fix chunked upload DTO import paths and return type safety
  • reccuring-action-dialog: fixed visibility of dialog on action
  • tests: restore nx-input and settings-company spec files from master
  • project-manager: use correct translation key and icon for portfolio tab
  • asset-manager: strip UI-only relational fields from asset API payloads
  • nx-invoicing: use reactive isSaving$ pattern for cancellation assignee save
  • shift-planner: fixed creation & conversion
  • shared: resolve tooltip z-index rendering behind dialogs, drawers and sidebars
  • nx-task-manager: resolve NG0201 provider errors for cross-module injections
  • security: patch npm vulnerabilities, upgrade NgRx 19→20, remove xlsx
  • nx-work-manager: replace endless loading with proper validation on tracking sidebar save
  • nx-time-tracking: prevent invalid corrections from saving multi-day trackings
  • shared: stabilize worktime missing banner visibility and session sync
  • shared: fix memory leaks in global-search, mailing, and upload-container
  • nx-calendar: fix mouse tracking memory leak and sidebar header style
  • nx-ai-assistant: fix chat window positioning to follow draggable button
  • nx-absence-planner: fix absence creation failure and redesign planner UI
  • nx-notifications: decrement stats.unread on socketNotificationMarkedRead
  • nx-sales-pipeline: remove duplicate loadDeals dispatch on init
  • ngrx: harden socket effects and fix list-loading race conditions
  • nx-calendar: update transcript detail dialog and model
  • nx-sales-pipeline: update stage manager component and deal operations helper
  • booking: fix dropdown/datepicker clipping and double-submit in booking system
  • core: dialog form reset, router cleanup, error handling, and validators
  • nx-invoicing: use createPaymentSuccess action for reliable success detection
  • core: fix subscription stacking, event listener cleanup, and timeout leaks
  • crm: fix broken HTML, dead styling, and invalid company routerLink
  • security: align frontend with backend security hardening
  • calendar: calendar tags assigment fix
  • sentry: distinguish staging vs production environment
  • build: make Sentry sourcemap upload non-blocking in Docker build
  • deps: resolve @cashwerk/shared-types from registry, not local symlink
  • deps: replace luxon with moment-timezone for consistency
  • deps: upgrade @cashwerk/shared-types to ^1.1.0 and add luxon
  • deps: upgrade @cashwerk/shared-types to ^1.1.0 and add luxon
  • docker: copy scripts/ before npm ci to fix postinstall hook
  • nx-chat: use correct NX_CHAT prefix for send-failure toast keys
  • sidebar: improve focus profile engine chip selection visibility
  • profile: improve worktime model and global search service
  • booking: fix availability DTO, invitee locale, and durable confirmation page
  • nx-booking: resolve error codes to translated messages and remove duplicate notifications
  • nx-crm: normalize phone data and fix flag/area code display across all CRM components
  • nx-booking: fix route order and unify public page error states
  • nx-booking: improve share link validation and error handling
  • nx-booking: fix calendar dropdown showing empty labels and redesign event type drawer
  • calendar: add client-side file size pre-validation for attachment uploads
  • nx-ui: remove forced border-radius override from global button styles
  • nx-booking: refine global button styling to preserve default PrimeNG sizes
  • nx-booking: resolve overlay clipping and align drawer headers with corporate identity
  • nx-chat: improve chat sidebar mobile overlay appearance
  • topbar: redesign mobile menu layout and refactor desktop profile dropdown
  • nx-profile: adjust avatar and name spacing in profile view
  • nx-api-platform: standardize headers and reduce secondary color overuse
  • nx-organization: standardize settings tab headers with icon, title, and subtitle
  • nx-feed: replace hardcoded 'Unbekannt' with translation key
  • forms: address Bugbot review feedback on nx-input
  • nx-drive: use surface-card token for file and folder items
  • ui: standardize button variants and fix token usage across modules
  • auth: add iOS safe-area insets and dvh viewport support
  • nx-chat: hide compact chat rail when nothing to show
  • nx-task-manager: wrap long titles on task board cards
  • nx-ui: fix tagger i18n and z-index layer adjustments
  • nx-dashboard: fix KPI box vs pie chart data inconsistency
  • organization: use distinct form keys on company settings fields
  • forms: recreate FormControl when nx-input field is replaced
  • nx-calendar: fix z-index stacking, styling, and template cleanup
  • core: elevate p-datepicker-panel overlay z-index above dialogs globally
  • nx-work-manager: forward selected date to tracking/break dialogs and fix negative flag mapping
Perf
  • nx-chat: improve virtual scroll rendering and participant list handling
  • app: defer heavy UI components and optimize asset/locale loading
  • chat: wire CDK virtual scrolling for chat message list
  • change-detection: pre-compute deal view model and migrate to OnPush
  • pipes: convert impure pipes to pure with explicit dependency params
  • rendering: add trackBy to feed, sidebar, and deal-list ngFor loops
  • rendering: add trackBy to high-traffic ngFor loops
  • core: replace PreloadAllModules with idle/network-aware selective strategy
Refactor
  • nx-licensing: remove dead NxSeatCountSelectorComponent and retire PREMIUM tier
  • nx-licensing: migrate NxPricingTableComponent to signal-first + trial CTA routing (S05B)
  • nx-chat: migrate ChatMessageBubble to signal inputs and signal-first template
  • nx-dashboard: rework layout to 4-column CSS Grid with unified design tokens
  • nx-licensing: migrate NxTrialBannerComponent to signal-first architecture
  • nx-project-manager: sort imports alphabetically in widgets module and dashboard component
  • nx-crm: sort imports alphabetically in contact-list and CRM facades
  • nx-address: fix country display and normalize parsed addresses to ISO alpha-2
  • nx-profile: use PhoneNumberPipe for phone display in profile settings contact
  • nx-organization: use PhoneNumberPipe for phone display in employee and contact components
  • nx-crm: integrate PhoneNumberPipe and formatPhoneDisplay across CRM components
  • nx-shared: improve phone normalization and add formatPhoneDisplay utility
  • nx-work-manager: update last-entries-widget template to signal-first control flow
  • nx-work-manager: migrate last-entries-widget to signal-first pattern
  • nx-chat,nx-booking,nx-api-platform,calendar,asset-manager,nx-notifications,nx-ai-assistant,project-manager: add typed request DTOs for remaining inline endpoints (Roadmap 10 P2/P3)
  • crm,nx-sales-pipeline,nx-task-manager: add typed request DTOs for bulk ops and relationship endpoints (Roadmap 10 P1)
  • nx-work-manager: add typed request DTOs for time-tracking, work-reports and absence-planner endpoints (Roadmap 10 P0)
  • shared,nx-invoicing,nx-mailing: add typed request DTOs for shared and financial endpoints (Roadmap 10 P0/P1)
  • nx-invoicing: introduce typed DTOs for invoicing services, actions, and mailing
  • nx-profile: introduce typed DTOs for all user profile update endpoints
  • nx-auth: introduce typed OTP DTOs and replace inline payload objects
  • nx-invoicing: clean up record-payment-dialog imports and remove inline styles
  • nx-invoicing: integrate filter sidebar and shared header in listing containers
  • nx-invoicing: migrate list headers to shared NxListHeader component
  • app: colocate NgRx store modules with their feature modules
  • nx-ai-assistant: remove vendor-specific references from comments
  • core: add PreloadAllModules strategy and simplify SSO param handling
  • crm: replace any-typed feature selectors with CrmState
  • ngrx: remove provideHttpClient from all feature store modules
  • shared: replace inline not-specified placeholders with shared NxNotSpecifiedComponent
  • nx-asset-manager: simplify catalog board tab navigation
  • nx-metric-card: consolidate to single surface variant
  • nx-booking: redesign booking manage UI to match deal-details design system
  • nx-client: improve calendar filter sidebar, tracker control, and metric card components
  • organization: improve transcription settings component layout and functionality
  • nx-booking: improve public booking pages UX and component structure
  • nx-api-platform: replace inline upgrade wall with centralized paid feature overlay
  • nx-mailing: improve mail provider item responsive grid layout
  • nx-calendar-sync: simplify provider cards to compact row layout
  • theming: replace PrimeFlex CSS with token-based compatibility layer
  • nx-calendar-sync: simplify calendar sync connection list
  • nx-invoicing: set primary variant on invoicing metric cards
  • admin-panel: align metric cards with nx-metric-card variants
  • organization: migrate overview metrics to nx-metric-card
  • dashboard: use nx-metric-card for KPIs and remove unused widget
  • crm: centralize metric cards on nx-metric-card
  • shared: enhance nx-metric-card with dual variant support
  • nx-calendar: reorder toolbar controls, add ViewChild for popover and fix layout
Docs
  • replace legacy style guide with scoped nx-client CLAUDE.md
  • changelog: update CHANGELOG.md for v1.4.2
Style
  • booking: vertically center public booking content
  • sales-pipeline: increased column width
  • invoicing: simplify document-status panel headers
  • ui: remove hardcoded bg-primary-100 from icon containers
  • shared: replace deprecated green-500 with success-500 color tokens
  • dropdowns: fixing dropdown overflow across components
  • booking: adapted public booking pages to smartphone view
  • nx-crm: redesign CRM board sidebar and tab system
  • theme: soften dark mode borders and add tab design tokens
  • nx-booking: use semantic design tokens and soften borders
Tests
  • breakpoints: added classifier for unit testing breakpoints
  • auth: fixed auth & http handling in unit tests
  • nx-organization: add missing hasAccessToFeature mock in transcription component spec
  • jest-units: added & updated unit tests for claendar & shared
  • jest: switched unit testing from karma to jest
  • calendar: add regression tests for nx-calendar component
Continuous Integration
  • release: auto bump+tag on merge to master, trigger changelog site rebuild
Notable
  • release: 1.6.0 [minor]
  • build: remove stray root Dockerfile, point README at prod.dockerfile
  • demo-link: updated demo link (still static)
  • licensing: removed license id from user creation & invitation flow + added license price fallback for freemium
  • deps: consume @cashwerk/shared-types v1.2.0 from GitHub Packages
  • update changelog workflow and package-lock
  • package: added ngrx/signals for new ngrx store management
  • data-col: adding data col attributes for e2e
  • unit-testing: added more karma unit tests
  • tests-removal: removed default broken unit tests
  • workspace: modernize Angular schematics defaults to standalone + OnPush
  • booking: date overridal dialog visual issue
  • release: v1.5.0
  • nx-client: align build tooling for booking rollout
Other
  • chart.js: added charts package
  • chore(state-management): fixed state management rendering bugs / race conditions
  • admin-panel: refactored demo data seeder tool for more interactive ai dataset generation & images
  • unit-testing: added further unit tests
  • - Replaced file: response.data?.file ([]
  • a three-state model ('has' ([ 'missing' ] 'missing' ))
  • - Fix JWT refresh interceptor (BehaviorSubject<string ([ null ] null ))
Backend

v1.6.0

New
  • licensing: sync only seat_based_v2 catalog; tag staging; add live setup script
  • licensing: collect card inline for card-less plan/seat changes, fix webhook-gap stranding
  • platform: enforce plan limits, feature tiers, and credit gates
  • nx-licensing: add credit pool, addons, plan limits, and migrations S10–S16
  • nx-licensing: complete ILicense domain model with trialEndsAt, grant and downgrade fields
  • nx-licensing: add PromoteLicenseToOrgPrimaryCommand and enforce org-wide license invariant
  • nx-licensing: introduce LicensingException base class and standardise exception hierarchy
  • nx-licensing: add ChangePlanCommand, UpdateSeatCountCommand and webhook seat sync (S07)
  • nx-licensing: expose POST /licensing/start-trial endpoint (S05B)
  • nx-licensing: add StartPlanTrialCommand and domain trial config (S05B)
  • nx-licensing: wire trialEndsAt through handlers, repository and cron (S05)
  • nx-licensing: introduce isFreePlan/isInTrialPeriod and update guards (S05)
  • nx-licensing: add trialEndsAt, isOrgPrimary and effectiveLicenseId schema (S05)
  • nx-admin-panel: add AdminLicenseGrantController for manual license grant/revoke (S03)
  • nx-licensing: add GrantManualLicenseCommand and RevokeManualLicenseCommand (S03)
  • nx-organization: enforce org-level seat capacity check on user invitation (S03)
  • nx-licensing: add OrganizationAtCapacityException and tier-resolution utils (S03)
  • nx-licensing: make NxLicense.priceId nullable for manual grants (S03)
  • nx-licensing: implement org-level license model with dual-read bridge and auto-assign (S02)
  • nx-admin-panel: add early-adopter license migration endpoint
  • nx-licensing: add licenseSource/grant columns, extend entity, repositories and Stripe webhook handler
  • nx-dashboard: add CRM KPIs (won deals, new contacts this month) to dashboard handler
  • nx-shared: add centralized country ISO normalizer, DTO validator, and data migration
  • nx-seeder: add booking and drive factories with major demo data seeder enhancements
  • nx-shared: add normalizeIPhone server-side utility and NormalizePhoneNumberData migration
  • auth: add device manager i18n keys for session/device UI (de, en, sv)
  • auth: implement session tracking, GeoIP enrichment and persistent JWT sessions
  • auth: add NxUserSession entity, repository, and migration for persistent session tracking
  • nx-calendar: enrich calendar list with sync provider summaries
  • nx-crm: support tag name resolution and external references on all import paths
  • shared: add filter fields to TablePaginatorDto
  • i18n: add error translation keys for cross-tenant violations and invalid PDF tokens
  • i18n: add absence planner translation keys
  • security: global auth guard, PDF token system, file access hardening
  • booking: add OG preview endpoint for social link previews
  • nx-chat: add idempotency key dedup for send-message
  • nx-chat: optimize unread counts and add send-message resilience
  • nx-chat: enhance chat controller with extended message DTO
  • nx-booking: add source tracking and enhance staff booking creation
  • nx-crm: add appointment query endpoints for contacts and companies
  • api-platform: add ExternalApi decorators for booking and chat endpoints
  • calendar: handle Microsoft delta link expiry with graceful full resync
  • nx-sales-pipeline: migrate deal CRM associations to many-to-many relations
  • i18n: add booking error codes, public booking and reminder translations
  • nx-crm: add find-or-create company on import, enhance DTOs and export fields
  • nx-crm: enhance CRM metrics with CHURN tracking and type-safe status counts
  • nx-crm: add CHURN status, PRIVATE_CUSTOMER contact type with migrations and translations
  • nx-booking: add translation keys and test suites
  • i18n: add transcription settings and usage translation keys
  • meeting-transcription: wire settings, usage metering, and observability
  • meeting-transcription: add org settings and usage metering entities
  • i18n: add CALENDAR.ATTACHMENT_TOO_LARGE translation keys
  • nx-i18n: add paid feature overlay translation keys
  • nx-licensing: restrict email and calendar API endpoints to paid licenses
  • nx-licensing: enhance PaidLicenseAccessGuard with i18n support and feature metadata
  • notifications: implemented socket gateway
  • nx-audit-log: add missing audit strategies for unhandled entity types
  • nx-meeting-transcription: add AI transcript task extraction
  • nx-calendar: add meeting platform fields and sync improvements
  • nx-meeting-transcription: add Recall.ai bot transcription module
  • nx-booking: add booking module and production-safe schema
  • nx-calendar: add guest-to-contact conversion backend
  • nx-calendar: add syncInfo enrichment to calendar event API
  • nx-calendar: add bidirectional calendar sync engine
  • nx-calendar: add calendar sync entities, migration, and enums
  • nx-calendar: wire occurrence endpoints, multi-calendar, RSVP per-occurrence, and mail attachments
  • nx-calendar: add recurring event exceptions, occurrence service, and Drive integration
  • nx-work-manager: add translation keys for time-tracking option cards and collapsible section
Fix
  • licensing: set live product description + marketing_features in catalog setup
  • nx-licensing: fixed stripe cronjob for expired licenses (stripe counter check added) & license upgrade fixed from trial
  • licensing: make plan upgrades payment-safe via webhook-authoritative promotion
  • migration: run AddCalendarOverlapIndex outside a transaction
  • chat: strip TypeORM inverse refs before broadcasting messages over socket.io
  • licensing: activate freemium without capturing a payment method
  • ai-engine: keep SSE stream alive and switch to gemini-2.5-flash
  • deps: pin @cashwerk/shared-types@1.2.1 from GitHub Packages
  • nx-booking: resolve reused slugs to the current published page
  • nx-licensing: restore feature tier gates after S16 org-level cutover
  • nx-booking: build absolute public file URLs for logos and avatars
  • audit-log: correct purge cron SQL and disable by default
  • nx-licensing: resolve S09E regressions in seat management and admin grant
  • nx-licensing: harden plan-change lifecycle and webhook handling
  • meetbot: add partial unique indexes for per-occurrence transcript isolation
  • meetbot: resolve stuck PROCESSING and add occurrence-aware scheduling
  • nx-admin-panel: remove early-adopter migration endpoint
  • nx-licensing: add licenseSource guard to subscription_schedule.canceled webhook
  • nx-auth: resolve JTI mismatch, refreshToken race condition and missing IP/UA on onboard
  • nx-calendar: correct all-day event outbound end dates for Google, MS & CalDAV
  • nx-work-manager: fix cascade deletions and query handler bugs across modules
  • nx-crm: fix archived view and enforce soft-delete invariant in demo seeder
  • nx-invoicing: sanitize XSS in invoice header/footer and handle missing invoice lines
  • security: add global null-byte sanitization and enforce API key org isolation
  • i18n: add missing drive empty-state translation keys
  • nx-crm,nx-invoicing,nx-import: normalize phone formatting and use normalizeIPhone utility
  • seeders: restore missing logProgress method on BaseFactory
  • nx-work-manager: fix total time/break calculation excluding cross-midnight entries
  • calendar-sync: updated attendee resolver
  • nx-work-reports: fix 500 error on PDF export and user-not-found handling
  • nx-absence-planner: fix 500 errors on PATCH/approve/reject endpoints
  • nx-work-manager: add class-validator decorators to ExportReportDto
  • nx-invoicing: add UpdateInvoiceDTO and UpdateOfferDTO for partial PATCH validation
  • dto-drift: fixing dto drifts accross invoicing & crm
  • shift-planner: fixed creation & conversion
  • deps: upgrade prettier to v3 to resolve peer dependency conflict
  • repositories: cast CASE THEN values to integer in bulk position updates
  • migrations: resolve timestamp collisions and apply DB schema cleanup
  • security: patch critical npm vulnerabilities and harden server config
  • auth: serialize /auth/me response to include computed latestWorkTime
  • migrations: resolve timestamp collision, split jsonb DDL, add zero-downtime performance indexes
  • security: dedupe IDs in cross-tenant guards and harden PDF token key validation
  • nx-meeting-transcription: update transcript repository query
  • nx-sales-pipeline: add missing fields to CreateDealRequestDto
  • nx-work-manager: worktime safety net — prevent silent failures when no worktime configured
  • nx-chat: add uploadedBy ownership check to chat attachments
  • security: cross-tenant IDOR prevention + SQL injection sort whitelists
  • calendar: calendar tags assigment fix
  • sentry: distinguish staging vs production environment
  • deps: add isomorphic-fetch required by Microsoft Calendar Sync driver
  • migrations: use raw SQL instead of entity repository in CalendarModuleEnhancements
  • deps: regenerate lockfile to restore pruned transitive dependencies
  • deps: resolve @cashwerk/shared-types from registry, not local symlink
  • deps: upgrade @cashwerk/shared-types to ^1.1.0
  • docker: increase builder heap to 4GB for TypeScript compilation
  • nx-booking: emit outbound sync trigger and defer emails for meetingUrl backfill
  • nx-calendar: add timeout protection for sync driver API calls
  • nx-calendar: improve type safety in Microsoft delta expiry check
  • booking: fix cancellation email URLs, add Sentry to cancel emails, extend reminder window
  • nx-booking: improve error handling in command handlers and add test suites
  • nx-data-import: fix chunked import validation and add PRIVATE_CUSTOMER parsing
  • nx-booking: resolve custom field labels in booking confirmation emails
  • nx-booking: fix booking creation, validation, and query issues
  • nx-calendar: resolve circular dependency in calendar OAuth service
  • nx-api-platform: auto-disable Lexware sync after consecutive auth failures
  • nx-api-platform: cache encryption key and suppress repeated dev warnings
  • calendar: harden sync pipeline for production multi-user load
  • calendar: add Sentry breadcrumbs and structured error logging
  • nx-i18n: add ~84 missing feed translations and fix German grammar
  • nx-audit-log: add missing archived/restored actions to invoice strategies
  • nx-audit-log: replace hardcoded entity name fallbacks with neutral format
  • nx-i18n: correct drive name translations and add calendar drive label
  • nx-i18n: add missing translation keys for new features
  • nx-ai-engine: stabilize SSE response lifecycle under Fastify
  • nx-work-manager: keep paused end-time when stopping trackers
  • nx-calendar: harden Microsoft sync and calendar OAuth edge cases
  • nx-calendar: add explicit event emission for outbound sync bridge
  • i18n: fix typo in BIRTH_DATE_UPDATED and add NO_ACTIVE_LICENSES key
  • api-platform: prevent inbound sync from overwriting CRM contact/company numbers
Perf
  • calendar: cut dashboard/calendar query load
  • infra: codify Cloud Run --concurrency, cap max-instances to DB ceiling
  • notifications: compute stats in one indexed grouped query
  • dashboard: delegate revenue KPI to shared GetRevenueSummary query
  • database: increased poolSize to 30 => moved from hardcoded to dynamic env var
  • nx-invoicing: add missing cancellation_invoice_id index and translations
  • nx-invoicing: optimize queryAll with scalar subqueries and full sort/filter support
  • chat: batch WebSocket presence updates to reduce broadcast storm
  • server: entity indexes, eager flags, take caps, tag filter SQL pushdown, audit-log params
  • server: replace blocking Redis KEYS with SCAN and remove in-memory ZIP buffering
  • server: add hard take limits to unbounded audit-log and permission queries
  • server: parallelize calendar notifications and batch Redis unread updates
  • server: eliminate N+1 queries across invoicing, project, and user modules
Refactor
  • nx-user: remove per-user license assignment (S16 cutover)
  • nx-licensing: migrate remaining handlers and module to LicensingException base class
  • nx-address: enforce ISO country normalization at DTO gateway and eliminate duplicate normalizers
  • typeorm: normalize FK column types and add missing entity-level metadata
  • server: replace let with const for never-reassigned variables
  • nx-sales-pipeline: replace inline filter type and 'as any' cast with GetDealsFilterDto
  • integrity: type safety, advisory lock registry, sort models, i18n keys
  • nx-calendar: improve calendar event create and update handlers
  • nx-time-tracking: improve tracker command handlers and repository
  • nx-booking: improve availability service, host selection, and booking handlers
  • nx-booking: replace password hash with plain secretPhrase for share links
  • nx-server: improve config typing and code cleanup
Docs
  • api-platform: add connector author guardrail README and release-gate script
  • changelog: update CHANGELOG.md for v1.4.2
Tests
  • meeting-transcription: provide credit-pool and addon repo mocks
  • nx-licensing: add unit tests for new command handlers and utils
  • nx-licensing: add webhook quantity sync integration test (S09)
  • fix e2e test suite setup and align security, integration and performance tests
  • auth: add authorization boundary e2e tests and multi-user API helpers
  • nx-work-manager: align e2e tests to use expectCreated for POST responses
  • env: added test environment scripts & shell
  • unit-testing: removed / modified & added new unit testing spec files
  • calendar: add edge-case tests for occurrence expansion and RSVP handler
  • api-platform: add regression tests for inbound sync number preservation
Continuous Integration
  • release: auto bump+tag on merge to master, trigger changelog site rebuild
Notable
  • release: 1.6.0 [minor]
  • stripe: centralized stripe api version & webhook command added
  • ignore local .env secret files and add nx-server CLAUDE.md
  • dev: added type check commands & decreased nodemon
  • test: updated the seed data for auth in e2e
  • licensing: remove staging pre/postflight SQL scripts
  • i18n: add licensing, credits, and plan-limit translation keys
  • deps: consume @cashwerk/shared-types v1.2.0 from GitHub Packages
  • nx-licensing: remove seed scripts; DB sync handled by Stripe cron
  • nx-licensing: deprecate LicenseType.TRIAL with Phase 2 migration note
  • package: added ngrx/signals for new ngrx store management
  • nx-shared: add libphonenumber-js dependency and fix UpdateAddPhone DTO
  • nx-server: alphabetize imports across CRM, organization, user modules and seeders
  • demo-seeder: added more factories for demo seeder
  • missing-translations: added missing invoicing translations
  • booking: form field save error fix
  • release: v1.5.0
  • add CRM metadata endpoint, update task search DTO and remove obsolete migration
  • nx-server: update user repository interface and cursor config
  • nx-server: align shared-types and maintenance scripts
  • nx-calendar: add calendar sync translations and dependencies
  • nx-calendar: add database migrations and update dependencies
  • nx-calendar: backfill calendar translation keys for de, en, sv
Other
  • PLAN_DOES_NOT_ALLOW_TRIAL ([ ALREADY_HAS_ACTIVE_TRIAL ] ALREADY_HAS_ACTIVE_TRIAL ))
  • - TrialLimitGuard: bypass when !isFreePlan(pkg) ([]
  • admin-panel: added new & updated existing factorys & seeders for admin panel tool
  • admin-panel: refactored demo data seeder for new architecture & better quality examples
  • e2e: added nestjs e2e unit tests
  • unit-testing: added further e2e unit nestjs tests
  • drive-folder: updated relation ids of drive folder to nullable
  • container: increased cpu to 2 added --no-cpu-throttling & --cpu-boost
  • - Calendar event repository: cap take to Math.min(dto.take ([]
  • nx-chat: add missing NX_CHAT translation keys for DE/EN/SV
  • nx-booking: add translation keys for booking and CRM features
  • nx-asset-manager: rename Material to Produkt and add summary keys
Backend

v1.4.2

New
  • nx-admin-panel: add analytics API with metrics, activity sorting, and cross-org user queries
  • i18n: add German translations for chat format and clipboard keys
  • i18n: add GENERAL.DATE translation key for German locale
Fix
  • nx-calendar: expose creator in event response DTO and eager-load relation
Docs
  • changelog: update CHANGELOG.md for v1.4.1
Notable
  • release: 1.4.2 [patch]
Frontend

v1.4.2

New
  • nx-admin-panel: add analytics dashboard with KPIs, charts, and organization activity tracking
  • nx-chat: add drag-to-resize handle on chat message input
Fix
  • nx-calendar: scope filter-sidebar styles to prevent global CSS leakage
  • nx-time-tracking: restore live millisecond updates in tracker control
  • nx-chat: append dialogs to body and use correct theme token for dialog background
Refactor
  • nx-calendar: redesign event form schedule section with symmetrical layout
  • nx-global-notifications: simplify template and update notification styles
Docs
  • changelog: update CHANGELOG.md for v1.4.1
Style
  • nx-chat: update chat bubbles, link previews, and theme tokens
  • z-index: fixed z-index order of dialogs especially in nx-chat
Notable
  • release: 1.4.2 [patch]
  • momentjs: added default datetime service to tracking toolbar & initial language setup
Backend

v1.4.1

Notable
  • release: 1.4.1 [patch]
Backend

v1.4.0

Notable
  • release: 1.4.1 [patch]
Backend

v1.3.1

New
  • i18n: add NX_CHAT section labels for chat list
Fix
  • nx-crm: add error handling and structured response for contact/company imports
  • nx-server: coalesce null values in create handlers to prevent NOT NULL violations
Refactor
  • nx-data-import: use CQRS CommandBus instead of direct repository access
Notable
  • release: 1.3.1 [patch]
Frontend

v1.4.1

New
  • nx-chat: sectioned conversation list and compact sidebar UX
  • nx-chat: add drag & drop file upload with image thumbnails
  • nx-chat: add markdown rendering with DOMPurify sanitization
  • nx-data-importer: improve chunked import with error handling and logging
Fix
  • ui: calendar, CRM, AI, pipeline, and project markup/styles
  • ui: align global z-index, theme tokens, and app shell styles
  • nx-drive: restore file viewer translucent background overlay
  • nx-client: add null safety guards to prevent runtime errors
  • nx-client: update sidebar and dialog widths from rem to vw for responsive layout
  • nx-client: comprehensive dark mode theme improvements
Docs
  • changelog: update CHANGELOG.md for v1.4.0
Notable
  • release: 1.4.1 [patch]
Backend

v1.3.0

New
  • i18n: add NX_CHAT section labels for chat list
Fix
  • nx-crm: add error handling and structured response for contact/company imports
  • nx-server: coalesce null values in create handlers to prevent NOT NULL violations
Refactor
  • nx-data-import: use CQRS CommandBus instead of direct repository access
Notable
  • release: 1.3.1 [patch]
Frontend

v1.3.1

Notable
  • release: 1.4.0 [minor]
Frontend

v1.3.0

Notable
  • release: 1.3.1 [patch]
Frontend

v1.4.0

Notable
  • release: 1.4.0 [minor]
Frontend

v1.2.0

New
  • nx-input: add address autocomplete selection validation with visual feedback
  • nx-asset-manager: add duplicate detection and import update/upsert for all asset types
  • nx-crm: add batched import with progress, address normalization, and country ISO resolution
  • nx-data-importer: add duplicate detection, import modes, and data transformer support
  • nx-project-manager: add rich empty state placeholders for project metrics
  • nx-invoicing: improve cancellation overview with HTML rendering and collapsible lines
  • nx-invoicing: add XInvoice/ZUGFeRD download support for cancellation invoices
  • nx-project-manager: add project metrics tab with KPIs, charts, financial analysis and hover effects
  • nx-feed: add custom feed entries with standalone dialog components
  • ai-engine: added performance caching, compression & advanced security layers
  • nx-sales-pipeline: add entry-point type filtering for sales vs support pipelines
  • nx-sales-pipeline: add dealReason input with autocomplete in deal details
  • nx-sales-pipeline: add nx-pipeline-priority component for quick priority changes
  • nx-sales-pipeline: add PipelineTerminologyService for multi-pipeline support
  • nx-sales-pipeline: add PipelineTermPipe and IsCostBasedPipe for dynamic terminology
  • nx-ai-assistant: add image attachment support in chat
  • nx-ai-assistant: added voice feature for the ai assistant casper
  • nx-ai-assistant: add copy button to chat messages
  • nx-invoicing: add toggle switch to enable/disable skonto
  • auth: handle SSO access denied errors
  • nx-crm: add external references and improve UI
  • nx-crm: add tag filtering to crm export panel
  • crm: improve address import handling
  • crm: add search and reorderable columns to relationship list
  • nx-editor: enhance image handling and security
  • nx-text-blocks: enhance text block system and editor integration
  • nx-ai-assistant: implement permission-based access control
  • access-control: sync permission enums with server and update references
  • nx-drive: add loading animation and subfolder support to folder chooser
  • nx-crm: add centralized field configuration for exports
  • nx-data-exporter: add CRM exporter with combined export support
  • nx-crm: add CRM reports module with unified export panel
  • nx-ai-assistant: add SSE streaming support for real-time AI responses
  • nx-sales-pipeline: implement debouncing for deal updates and improve state preservation
  • nx-client: add organization dropdown menu and fix sidebar active state styling
  • nx-crm: add number conflict confirmation dialog for companies and contacts
  • nx-shift-planner: add color mode switch for timeline events
  • nx-shift-planner: implement absence creation, conversion, and context menu from timeline
  • nx-calendar: add collapsible calendar list and sorting functionality
  • nx-profile: allow admins to change other users' profile images
  • nx-drive: add optimized trash endpoint integration
  • nx-invoicing: improve payment tracking with Mark as Paid button
  • nx-organization: add double-click protection guards to UI components
  • nx-organization: add granular loading flags for branch/sector operations
  • nx-drive: implement upload strategy matrix with batch support
  • nx-drive: improve upload container UI and batch upload support
  • nx-drive: integrate unified drive view in NgRx state
  • nx-crm: implement centralized phone and address parsing for CSV imports
  • nx-data-importer: add unified import architecture with chunked import and AI services
  • nx-text-blocks: add AI generation and redesign text block editor dialog
  • nx-sales-pipeline: add loading state for offer creation from deal
  • nx-admin-panel: add set headquarters option for branches
  • nx-drive: implement folder upload with drag & drop support
  • nx-client: sync business fields and add onboarding filter
Fix
  • nx-crm, nx-asset-manager: add skippedIndices to importUpdate HTTP method return types
  • nx-asset-manager: use skippedIndices for correct upsert filtering
  • nx-crm: use skippedIndices for correct upsert create-phase filtering
  • nx-crm: add null safety guards for getUserData() calls
  • nx-crm: fix non-functional tagger in export panel by using allowCreate
  • nx-invoicing: fix payment terms accordion state and invoicing type defaults
  • scss: migrate deprecated darken/lighten to sass:color module
  • nx-invoicing: fix VAT calculation returning zero for cancellation invoices
  • nx-project-manager: fix change detection in project documents tab
  • theme: fix PrimeFlex surface-hover producing black background in light mode
  • nx-time-tracking: add null safety for tracking and break arrays
  • nx-crm: fix date mutation in metrics navigation
  • nx-ai-assistant: restore glassmorphism and fix sidebar layout
  • nx-ai-assistant: improve UI design with z-index fixes and glassmorphism consistency
  • nx-crm: make company email field optional in forms
  • data-importer: fixed dynamic data handling @ importer
  • nx-crm: fix removal of social media and external references
  • auth: handle disposable email error in onboarding
  • asset-manager: persist selection across pagination and add reset feature
  • nx-invoicing: fix frozen header state on creation validation error
  • ui: enable profile verification badge and error icons
  • nx-editor: prevent editor collapse when opening dialogs
  • nx-data-importer: display translated enum values in import preview
  • nx-task-manager: add optional breadcrumb to task board
  • nx-project-manager: fix archived project banner display
  • nx-profile: fix feed isolation and navigation state
  • nx-task-manager: adjust task board height and sidebar scroll
  • project-manager: correct portfolio column header translation key
  • calendar: ensure holidays load for all visible years in view
  • nx-time-tracking: allow editing of start/end time based on permissions
  • nx-organization: fix text block editor dialog styling
  • nx-data-exporter: prevent multiple confirm dialogs on close
  • nx-invoicing: fix invoice.total variable showing date instead of currency
  • nx-ai-assistant: fix entity preview persistence across conversations
  • nx-organization: add defensive null checks for invited user display
  • nx-organization: resolve NG01002 form error on cancel with nullish coalescing
  • nx-crm: include companyNumber field in company update form
  • nx-crm: fix selection count and add reset selection button for company/contact lists
  • nx-absence-planner: fix duplicate notifications and endless sidebar loading
  • shifting-timeline: fixed minor property access error & employee color changes
  • nx-work-manager: guard timeline handlers against missing events
  • nx-shift-planner: fix timeline resource display and scrolling
  • nx-work-manager: fix sidebar stuck in loading state after tracking update
  • nx-invoicing: fix assignees not saving from offer/invoice editors
  • nx-drive: resolve PDF viewer Transport destroyed race condition
  • nx-invoicing: resolve Net/Gross toggle crash in invoice lines form
  • menu-frame: fix invalid pStyleClass @ancestor selector
  • nx-drive: fix null pointer errors in share center and state management
  • nx-drive: map complete drive fields for sidebar navigation
  • nx-client: fix navigation routes for license and settings
  • calendar: filter sidebar and create event dialog improvements
  • calendar: fix filter race condition causing filters to not apply
  • calendar: add validation and proper error handling to event creation dialog
  • nx-invoicing: add double-click prevention to all header components
  • nx-drive: map isShared, tags, driveId from backend response
  • nx-drive: add null safety checks for file.file.objectId
  • nx-crm: fix race condition in phone input component initialization
  • nx-client: fix Observable completion in ClientManagerService
  • nx-asset-manager: fix import services and add import handlers
  • nx-crm: fix company and contact list auto-refresh after import
  • nx-invoicing: fix invoice line responsive layout alignment
  • nx-invoicing: improve form validation with specific error messages
  • nx-notifications: improve tooltip z-index, icons, and infinite scroll
  • dashboard: enable dynamic date localization in dashboard and month selector
  • nx-client: resolve organization navigation bug in sidebar
  • nx-work-manager: update time tracking chooser component
  • nx-client: fix Sentry user context race condition with sentryReady$ signal
  • nx-crm: fix PrimeFlex hover:surface-hover applying dark colors in light mode
  • nx-client: reorder providers to fix Sentry user context not being set
  • styles: add global tooltip styling for light mode
  • editor: scope tooltip styling to editor toolbar only
  • notifications: use p-toggleSwitch instead of deprecated p-inputSwitch
  • nx-client: fix table layout overflow in editor and project info components
  • ci: add GitHub Package Registry auth for @cashwerk/shared-utils
Perf
  • nx-ai-assistant: optimize streaming performance and add rich activity indicators
  • nx-work-manager: optimize last entries widget with single API call (N+1 fix)
Refactor
  • shared: extract splitStreetAndNumber as shared utility function
  • nx-tags: optimize tagger with debounced search, local caching, and theme-aware styling
  • nx-sales-pipeline: migrate components to use terminology pipes
  • nx-ai-assistant: centralize entity routing in frontend
  • nx-crm: consolidate field definitions to single source of truth
  • nx-crm: remove export buttons from list headers
  • nx-project-manager: replace hardcoded text with translations in portfolio widget
  • nx-admin-panel: update organization overview with CRM-style metrics
  • nx-organization: redesign overview tab with CRM-style metrics
  • nx-client: standardize severity colors to use PrimeNG variables
  • profile: simplify effects by removing redundant inner switchMap
  • calendar: fix load effects to use switchMap instead of exhaustMap
  • nx-organization: add double-click protection to settings-permissions
  • nx-access-control: migrate write operations to exhaustMap for Phase 2
  • nx-ai-assistant: migrate write operations to exhaustMap for Phase 2
  • nx-profile: migrate write operations to exhaustMap for Phase 2 completion
  • nx-organization: migrate effects from switchMap to exhaustMap for race condition protection
  • asset-manager: add double-click protection to all UI components
  • asset-manager: migrate all effects to exhaustMap for write operations
  • nx-work-manager: migrate write operations to exhaustMap for race condition prevention
  • nx-sales-pipeline: migrate to exhaustMap for race condition protection
  • nx-task-manager: migrate to exhaustMap and add double-click protection
  • project-manager: full vertical migration for race condition prevention
  • crm: migrate write operations to exhaustMap for race condition prevention
  • nx-invoicing: migrate write operations from switchMap to exhaustMap
  • nx-drive: migrate effects to use proper RxJS operators
Docs
  • changelog: update CHANGELOG.md for v1.1.10
  • changelog: update CHANGELOG.md for v1.1.9
Style
  • nx-project-manager: improve contact card hover state
  • nx-profile: improve company tab styling
  • common: fix code formatting and whitespace
  • nx-client: add togglebutton theme customization for dark mode
  • nx-client: add border color utility classes
  • severity-colors: replaced green, yellow, red with severity colors
  • nx-sales-pipeline: adjust deal details slider thumb styling
  • crm: adjust company avatar sizing and add paddingClass input
  • nx-task-manager: remove redundant border class from my-tasks container
  • profile: remove fixed font-size from time separator
Build System
  • increase Node.js memory allocation for dev server
Notable
  • release: 1.2.0 [minor]
  • nx-client: update dependencies
  • layout: remove sales pipeline from sidebar
  • nx-data-exporter: fix formatting and whitespace
  • common: update permissions, sidebar, and minor fixes
  • deps: pin fullcalendar versions
  • nx-client: minor formatting and whitespace cleanup
  • nx-drive: temporarily disable cloud storage upgrade button
  • update package dependencies
  • nx-client: disable NgRx StoreDevtools for performance
Revert
  • nx-client: revert CSS order change that caused sidebar spacing issues
Other
  • Revert feat(ai-engine): failed commits
  • ai-assistant: reworked tool naming to dynamic labeling by ai
  • event-driven-arch: implemented full event-driven architecture & adapted audit log system + AI Tool handling
Backend

v1.2.0

New
  • nx-i18n: add address validation translation keys
  • nx-asset-manager: add batch import-update endpoints for all asset types
  • nx-crm: add batch import-update endpoints for companies and contacts
  • nx-data-import: add duplicate detection, number cycles, address parsing, and country normalization
  • nx-project-manager: add translation keys for metrics empty state placeholders
  • nx-invoicing: add XInvoice/ZUGFeRD generation for cancellation invoices
  • nx-project-manager: add project metrics API with time tracking and shift plan query endpoints
  • nx-feed: add custom feed entry support with CRUD endpoints
  • nx-events: add audit change configs and i18n for asset and tax entities
  • nx-invoicing: migrate tax rate and sales tax regulation controllers to CQRS
  • nx-asset-manager: migrate all asset controllers to CQRS pattern
  • nx-i18n: add granular feed description translations for all entity types
  • nx-events: centralize auto-change-detection in NxCommandBus via entity registry
  • audit-log: implement granular change tracking with smart strategy ordering
  • ai-engine: added performance caching, compression & advanced security layers
  • nx-sales-pipeline: support JSONB legacy stages in reorder command
  • nx-i18n: add AI assistant streaming activity translations
  • nx-sales-pipeline: add dealReason field with autocomplete support
  • nx-i18n: add dynamic terminology translations for all pipeline types
  • nx-sales-pipeline: add TICKET_NUMBER cycle for support pipelines
  • nx-ai-engine: add image attachment support with vision capabilities
  • nx-work-manager: add AI tools to work manager handlers
  • nx-invoicing, nx-task-manager, nx-sales-pipeline: add AI tools to business modules
  • nx-crm, nx-calendar: add AI tools to CRM and Calendar handlers
  • nx-ai-engine: add DTO introspection for AI tool parameters
  • nx-ai-assistant: added voice feature for the ai assistant casper
  • nx-ai-engine: add DTO introspection and improve AI tool execution
  • user: implement account deletion request
  • auth: implement disposable email validation
  • nx-crm: add external references support
  • nx-crm: implement tag filtering for crm export
  • nx-invoicing: implement html sanitization for invoice content
  • access-control: add AI Engine permissions and translations
  • access-control: add CRM export permissions
  • nx-pdf-engine: add CRM export PDF templates
  • nx-crm: add CRM export services for CSV and PDF generation
  • nx-ai-engine: enhance Casper with streaming, web search, and RAG
  • nx-ai-engine: add AI metrics service with OpenTelemetry
  • nx-ai-engine: add Google Custom Search API for web grounding
  • nx-ai-engine: add RAG infrastructure with pgvector embeddings
  • i18n: update project manager translation keys
  • nx-i18n: add translation keys for organization dashboard
  • nx-i18n: add sidebar navigation translations for organization menu
  • nx-crm: add translations for number conflict confirmation dialog
  • nx-crm: add duplicate number detection with increment suggestion for companies and contacts
  • nx-absence-planner: fix user assignment and add translations for timeline features
  • nx-translations: add custom sorting translation key
  • nx-drive: add German translations for trash functionality
  • nx-drive: add German and English translations for Drive module
  • nx-drive: add dedicated trash endpoint with optimized queries
  • nx-drive: add localized in-app notifications for drive sharing
  • nx-invoicing: add payment tracking translations
  • nx-drive: implement streaming upload with race condition prevention
  • nx-drive: add tags, isShared, driveId to drive view API response
  • nx-drive: add batch upload endpoint for small files
  • nx-drive: add unified drive view endpoint for Phase 1.1
  • nx-crm: enhance CSV import processor to handle phone and address fields
  • nx-data-import: add data import module infrastructure
  • nx-ai-engine: add AI data import service for column matching
  • nx-text-blocks: add translation keys for AI generation mode
  • translations: add form validation error translation keys
  • nx-drive: implement folder upload with auto-rename for duplicates
  • nx-server: add missing organization audit feed translations
  • nx-calendar: implement default calendar creation for organizations and users
  • nx-server: expand BusinessField enum with comprehensive industry list
  • nx-server: add German translation keys for OTP verification
Fix
  • nx-crm, nx-asset-manager: return skippedIndices from import-update endpoints
  • finax: fix duplicate buyerReference fallback and extract shared error formatter
  • nx-ai-engine: add system instruction and HTML output to editor text generation
  • nx-asset-manager: use real organization ID in getById endpoints for service, machine, and subcontract
  • nx-invoicing: auto-generate PDF when creating ZUGFeRD for cancellation invoices
  • nx-time-tracking: fix AI tool field mapping for stop and get-running tracker
  • nx-ai-engine: fix bigint type coercion in conversation ownership checks
  • nx-licensing: correct inverted freemium check in TrialLimitGuard
  • nx-cqrs: add null-safety guards and entityId validation in NxCommandBus
  • nx-sales-pipeline: restore rich feed descriptions for deal stage moves
  • shared: update DTOs with AI property decorators
  • nx-invoicing: enforce required fields in invoice DTOs
  • nx-crm: make company email field optional
  • data-importer: fixed dynamic data handling @ importer
  • nx-user: update account deletion to anonymize and remove user
  • auth: validate user status in SSO and include REMOVED status
  • nx-licensing: add missing CRM export permissions to database
  • crm: correct address type in create dtos and controllers
  • crm: fix search filtering for relationship queries
  • nx-invoicing: enrich invoice cancellation audit log
  • nx-calendar: improve audit logging and deleted event handling
  • nx-calendar: improve event query for recurring events
  • nx-ai-engine: enable AI to create recurring calendar events
  • nx-crm: improve CRM export with filters and memory optimization
  • nx-invoicing: fix invoice.total variable showing date instead of currency
  • nx-organization: remove redundant interceptor on inviteUser endpoint
  • nx-auth: stabilize Apple SSO via server-side token exchange
  • nx-work-manager: add missing project, task, and projectImage relations to tracking queries
  • nx-invoicing: fix assignees persistence and validation in offer patch handler
  • nx-drive: add parentFolderId to models and filter trashed from shares
  • nx-drive: fix folder color handling in create folder command
  • nx-drive: include personal drive in sidebar navigation
  • nx-calendar: query DTO and controller improvements
  • i18n: add missing calendar error message translations
  • project-manager: update audit log action and add translation
  • nx-invoicing: add missing INVOICE_CREATED enum value to offers document state
  • nx-crm: make company import DTO fields optional
  • nx-asset-manager: fix service import to return created services
  • nx-notifications: add missing notification translations
  • nx-organization: correct audit log action type for logo update
  • project: load company logo and contact avatar in getProjectCustomer
  • project: load customer/contact image relations in project repository
  • ci: add GitHub Package Registry auth for @cashwerk/shared-utils
Perf
  • nx-drive: fix critical memory leak in folder/subfolder queries
  • nx-drive: add indexes and optimize folder queries
  • nx-pdf-engine: add browser pool with semaphore concurrency control
  • nx-drive: optimize share operations with bulk queries and recursive CTE
  • nx-drive: use lightweight drive queries in command handlers
  • nx-drive: add database indexes for folder/file queries
  • nx-server: add database indexes for frequently queried columns
  • nx-server: remove eager loading from TypeORM entity relations
Refactor
  • nx-cqrs: remove redundant withChangeDetection from handlers
  • nx-project-manager: simplify command patterns with DTO-based architecture
  • nx-crm: simplify command/query patterns with DTO-based architecture
  • nx-ai-engine: cleanup legacy code and update core services
  • nx-ai-engine: modularize AI engine into specialized services
  • nx-cqrs: enhance unified decorators with aiTool support
  • nx-calendar: simplify calendar event creation handler
  • nx-pdf-engine: simplify browser pool with idle timeout
Docs
  • changelog: update CHANGELOG.md for v1.1.9
Notable
  • release: 1.2.0 [minor]
  • nx-server: update dependencies
  • nx-server: add missing German translations for text blocks
  • nx-ai-engine: disable tool registration logging
  • nx-server: update translations and instrumentation
  • common: update server configuration and dependencies
  • i18n: add translations for CRM export feature
  • docker: update postgres to pgvector image for RAG support
  • translations: fixed german translation json syntax issue
  • nx-server: remove duplicate translation keys from de.json
  • translations: update German translations
  • nx-drive: remove plan reference comments
  • nx-drive: add upload-related translation keys
  • update German translations
  • nx-server: update translations and app module
  • nx-server: update translations and app module
  • translations: added missing mobile translations
  • nx-user: register UpdateOwnAvatar and UpdateOwnHeader command handlers
Other
  • as fallback instead of duplicated contactNumber ([]
  • event-driven-arch: standardized NxCommand & NxQuery handlers & implemented bus factor
  • ai-assistant: reworked tool naming to dynamic labeling by ai
  • event-driven-arch: implemented full event-driven architecture & adapted audit log system + AI Tool handling
  • nx-work-manager: add organization validation for cross-user operations
Frontend

v1.1.10

New
  • nx-auth: implement OTP email verification in onboarding
  • nx-auth: add shared NxOtpInputComponent
  • nx-crm: add row click navigation in company and contact lists
  • nx-asset-manager: add selection clearing and row click navigation
  • nx-drive: add standalone video player component with custom controls
  • nx-notifications: add notification settings and admin broadcast UI
  • nx-invoicing: add time tracking chooser and insert above/below for invoice lines
  • nx-core: add Sentry user context for authenticated user tracking
  • nx-dashboard: add chart type toggle with line and pie chart views
  • nx-feed: enhance feed component with detailed audit log display
  • nx-profile: implement DEÜV Personengruppenschlüssel codes
  • nx-absence-planner: add absence calculation utils for business logic
  • nx-notifications: add push notifications module with NgRx state
Fix
  • nx-tags: fix tag dropdown display in task filter
  • nx-task-manager: fix employee search in subtasks and contact dialog closing
  • nx-ai-assistant: reduce z-index to prevent overlap with modals
  • nx-admin-panel: apply centralized employee/license counting to admin panel
  • nx-organization: centralize employee/license counting to fix miscounting bugs
  • nx-profile: fix notification settings not loading with OnPush change detection
  • nx-calendar: fix recurring events not saving and events disappearing
  • nx-time-tracking: resolve widget positioning and drag issues on tracker start
  • nx-crm, nx-calendar, nx-invoicing: add null safety checks for session data
  • nx-crm: prevent infinite notification loop when assigning contacts/companies
  • nx-mailing: limit failure reason text length in transaction list
  • nx-notifications: fix notification badge cut-off and increase icon size
  • nx-time-tracking: use correct translation key for task column header
  • nx-profile: refactor vacation settings to use direct API calls
  • nx-time-tracking: refactor dashboard widgets to use direct API calls
  • nx-client: update @cashwerk packages to CommonJS versions
  • nx-client: update @cashwerk packages to CommonJS versions
  • nx-client: downgrade node-xlsx to resolve compatibility issues
  • nx-ai-assistant: fix approval flow and add pending jobs persistence
Refactor
  • nx-auth: implement OTP-based password reset flow
  • nx-invoicing, nx-project-manager: update table row selection handlers
  • nx-profile: improve password update form with permission-based logic
  • nx-shared: update nx-editor content component
  • nx-task-manager: update task board template
  • nx-crm: update CRM quick forms and portfolio dialog
  • nx-dashboard: improve dashboard component structure and styling
  • nx-dashboard: integrate month selector into user-info widget with modern UI
  • nx-time-tracking: improve global tracker widget with drag, minimize, and animations
  • nx-editor: replace PrimeIcons with FontAwesome icons in toolbar
  • nx-ai-engine: simplify AI prompt dialog styles to use PrimeNG defaults
  • nx-profile: update changeable profile components
  • nx-profile: modernize worktime and company tab styling
  • nx-time-tracking: rename time-tracking-calculations service to match backend
  • nx-work-manager: improve absence planner effects
Docs
  • nx-client: update logo URL and remove deprecated tiptap reference
Style
  • nx-client: improve UI styling for account verification and AI chat
Notable
  • release: 1.1.10 [patch]
  • nx-absence-planner: remove unused absence calculations utility
  • nx-client: integrate @cashwerk/shared-types and configure GitHub Packages
Backend

v1.1.10

New
  • nx-mailer: implement OTP email verification system
  • nx-drive: add video player control translations
  • nx-notifications: add email notification support with template
  • nx-notifications: add notification settings entity and API endpoints
  • nx-calendar: add push/email notifications for calendar event operations
  • translations: add translation keys for time tracking chooser and invoicing
  • nx-server: add dashboard translation keys for chart and productivity features
  • nx-profile: implement DEÜV Personengruppenschlüssel codes
  • nx-notifications: add Expo push notifications with device token management
  • nx-auth: add mobile SSO support with deep linking
  • nx-ai-engine: migrate from Google AI Studio to Vertex AI
  • nx-ai-engine: add parameter metadata and pending jobs persistence
Fix
  • nx-feed: fix invoice/offer name display for drafts in audit feed
  • nx-crm: fix ManyToMany relationship removal for contacts and companies
  • nx-user: log actual email value in audit log instead of boolean
  • nx-server: install css-inline musl binary inside Docker container
  • nx-server: allow native module scripts in production install
  • nx-server: update @cashwerk packages to CommonJS versions
  • nx-server: update @cashwerk packages to CommonJS versions
  • nx-server: update @cashwerk/shared-types to v1.0.2 (CommonJS)
  • nx-server: add .npmrc copy to production stage in Dockerfile
  • nx-server: add npmrc creation step to migration job cloudbuild configs
Perf
  • nx-time-tracking: optimize tracker start from 15-20s to <1s
Refactor
  • nx-server: update variable resolver and remove unused translations
  • nx-user: improve password update with permission-based access control
  • audit-log: implement unified config-based change detection system
  • nx-work-manager: improve absence planner service and controller
  • nx-ai-engine: replace prompt-based architecture with Gemini native function calling
Notable
  • release: 1.1.10 [patch]
  • nx-i18n: add notification settings translations
  • nx-server: update translations for German and English
  • nx-server: integrate @cashwerk/shared-types and configure GitHub Packages
  • nx-server: add filtered logger and minor improvements
  • nx-server: upgrade to NestJS 11 and update core dependencies
Frontend

v1.1.9

New
  • nx-ai-assistant: add entity preview and improve chat UI
Refactor
  • nx-invoicing: update listing components layout
  • nx-ai-engine: update state management for plan-based backend
Docs
  • changelog: update CHANGELOG.md for v1.1.8
Notable
  • release: 1.1.9 [patch]
Backend

v1.1.9

New
  • nx-calendar: add get_calendars AI tool for calendar selection
Fix
  • nx-crm: improve search_companies AI tool parameter handling
Refactor
  • nx-ai-engine: implement plan-based architecture with modular prompts
Docs
  • nx-ai-engine: add architecture plan and refactor documentation
  • changelog: update CHANGELOG.md for v1.1.8
Notable
  • release: 1.1.9 [patch]
Frontend

v1.1.8

Fix
  • nx-client: upgrade angular-fontawesome and fix CI workflow for Angular 19
Continuous Integration
  • nx-client: add FontAwesome Pro npm authentication to changelog workflow
Notable
  • release: 1.1.8 [patch]
  • release: 1.1.8 [patch]
  • package: updated project meta
Backend

v1.1.8

Fix
  • nx-licensing: remove obsolete licensePackage relation from license query
Docs
  • changelog: update CHANGELOG.md for v1.1.7
Notable
  • release: 1.1.8 [patch]
  • package: updated project meta
Backend

v1.1.7

Breaking Changes
  • nx-work-manager: consolidate legacy time-tracking into DDD structure
New
  • nx-licensing: add Stripe customer address management for tax calculation
  • i18n: add translations for address requirement and product image update
  • nx-time-tracking: add task integration for time tracking
  • nx-work-reports: add PDF/CSV export endpoints
  • nx-work-reports: improve PDF report with accurate calculations and professional design
  • nx-shift-planner: enhance timeline data and fix tracking assignment
  • nx-shift-planner: enhance timeline data endpoint
  • nx-shift-planner: add project relation to shift plans
  • nx-absence-planner: add calculate-working-days endpoint with holiday exclusion
  • nx-holiday: add holiday controller and improve service with state code normalization
  • nx-time-tracking: add German translations for Work Manager module
  • nx-time-tracking: add project entity relation with database migration
  • nx-invoicing: add translations for preset selector dialog
  • nx-invoicing: add asset product images to invoice PDF generation
  • nx-invoicing: add asset product images to invoice PDF
  • nx-server: add translations for asset group and unit quick creation
  • nx-invoicing: add assetId support to invoice lines
  • nx-invoicing: add XInvoice validation API and auto-generation
Fix
  • entities: rename entity files to follow .entity.ts convention
  • circular-deps: replace barrel imports with direct imports
  • organization: break circular dependency with licensing module
  • licensing: resolve circular dependency in TrialLimitGuard
  • licensing: restore NxUserApiModule import to fix entity loading order
  • access-control: replace barrel import with direct entity import in roles controller
  • licensing: fix circular dependency in NxLicenseValidationService and NxLicenseEnforcementGuard
  • licensing: fix circular dependency in NxLicenseValidationService
  • licensing: fix circular dependency in NxLicenseValidationService
  • licensing: resolve circular dependency in TypeORM entity loading
  • nx-organization: improve guard parameter detection for different entities
  • nx-task-manager: remove PostgreSQL table inheritance to fix deals appearing in task boards
  • nx-work-reports: fix CSV export duration calculation
  • nx-work-reports: fix time tracking calculation bugs with clamped date ranges
  • nx-shift-planner: add missing translation keys
  • nx-user: promote latest worktime after current one is deleted
  • nx-invoicing: fix PDF hideItemImages option and XInvoice unit price
  • nx-invoicing: atomic number cycle assignment with optimized transaction handling
  • nx-invoicing: add missing assetId/productImageUrl to repository methods + debug logs
  • nx-invoicing: save assetId and productImageUrl when creating invoice lines
  • misc: CRM and shared improvements
  • nx-project-manager: fix project duplication and enhance sorting/nextEvent loading
  • nx-calendar: fix backend event filtering and recurrence saving
  • nx-licensing: centralize tax/discount logic and fix calculation issues
Refactor
  • core: restructure auth and config into core folder
  • nx-time-tracking: consolidate controllers and fix query handler registration
  • nx-work-manager: consolidate legacy time-tracking into DDD structure
  • nx-invoicing: improve PDF and XInvoice generation
Notable
  • release: 1.1.7 [patch]
  • scripts: add circular dependency test script
  • release: implement automated changelog and release system
  • release: bump version to 1.1.6
  • release: implement automated changelog and release system
  • nx-server: update German and English translations
  • nx-server: add calendar holiday translations
  • translations: add missing German translation keys