Skip to content

v1.0.1 Hotfix - Invoice Processing & AppImageHub Compliance

Choose a tag to compare

@xnodeoncode xnodeoncode released this 29 Jan 17:00
· 61 commits to main since this release
Immutable release. Only release title and notes can be modified.
42282e5

Aquiis v1.0.1 Hotfix Release Notes

Release Date: January 29, 2026
Release Type: Hotfix
Previous Version: v1.0.0 (January 28, 2026)

Overview

Version 1.0.1 addresses critical business logic issues and UX improvements identified during initial v1.0.0 release testing. This hotfix resolves invoice processing race conditions, implements AppImageHub naming standards, and improves notification center accessibility.

Critical Fixes

1. Invoice Late Fee Processing (Critical - Business Logic)

Issue: Race condition in scheduled task execution caused inconsistent late fee application. If UpdateInvoiceStatuses ran before ApplyLateFees, invoices were marked overdue without late fees applied, and subsequent runs would not apply fees because status already changed.

Resolution:

  • Backend: Consolidated two separate tasks (ApplyLateFees and UpdateInvoiceStatuses) into single atomic ProcessOverdueInvoices operation
  • Payment Processing: Added auto-apply logic when partial payments made on past-due invoices (catches scenario where scheduled task hasn't run yet)
  • Status update and late fee application now occur in one transaction (both scheduled task and payment processing)
  • Prevents any invoice from being marked overdue without proper late fee evaluation
  • Administrator UI: Updated ServiceSettings and ApplicationSettings to show single "Update Invoice Statuses" task (subtitle: "Mark pending invoices as overdue and apply late fees")

Files Changed:

  • 2-Aquiis.Application/Services/ScheduledTaskService.cs - Consolidated scheduled task methods
  • 2-Aquiis.Application/Services/PaymentService.cs - Added ApplyLateFeeIfEligibleAsync() method
  • 5-Aquiis.Professional/Features/Administration/Settings/Pages/ServiceSettings.razor - Updated manual trigger UI
  • 4-Aquiis.SimpleStart/Features/Administration/Settings/Pages/ApplicationSettings.razor - Consolidated background task UI

Impact: Ensures all overdue invoices have late fees applied correctly regardless of how they become overdue (scheduled task OR payment processing).

2. AppImage Naming Convention (Critical - AppImageHub Compliance)

Issue: AppImage filename AquiisPropertyManagement-1.0.0.AppImage did not follow AppImageHub standard nomenclature, preventing automatic version detection and updates.

Resolution:

  • Changed productName from "AquiisPropertyManagement" to "Aquiis" (matches repository name)
  • Updated buildVersion to "1.0.1"
  • New filename: Aquiis-1.0.1-x86_64.AppImage (compliant with AppImageHub standards)
  • Enables automatic version detection: https://github.com/xnodeoncode/Aquiis/releases/whatever/Aquiis-1.0-x86_64.AppImage → auto-discovered

Files Changed:

  • 4-Aquiis.SimpleStart/electron.manifest.json

Impact: AppImageHub can now automatically detect new releases without manual PR updates. Users can discover application via AppImageHub once listing approved.

UI/UX Improvements

3. Notification Center Accessibility

Issue: Notification bell dropdown only appeared when unread notifications existed. Users couldn't access notification preferences or view history when inbox empty.

Resolution:

  • Dropdown now always accessible regardless of notification count
  • Shows "No new notifications" message when empty
  • "View all" link always available for notification history access
  • Badge displays "0" when no notifications (visual consistency)

Files Changed:

  • 3-Aquiis.UI.Shared/Components/Notifications/NotificationBell.razor

Impact: Users can access notification center and preferences at any time, improving discoverability.

4. Email/SMS/Digest Notifications Disabled with "Coming Soon" Badges

Issue: Email, SMS, and Digest notification settings were interactive but non-functional (services not yet integrated), causing user confusion.

Resolution:

  • Added "Coming Soon" warning badges to email, SMS, and digest sections
  • Badges styled consistently with clock icon and positioned on right side of card headers
  • Replaced toggles with disabled checkboxes (visual indication)
  • Added explanation alerts: "This feature requires [email/SMS/email] service integration and will be enabled in a future release"
  • Applied opacity styling (75%) to visually distinguish from active features

Files Changed:

  • 3-Aquiis.UI.Shared/Components/Notifications/NotificationPreferences.razor

Impact: Sets clear expectations for users about feature availability timeline and maintains consistent UI design.

5. NavMenu Cleanup - Removed Tenants Direct Navigation

Issue: Tenants link in navigation menu had no destination page - tenants should be accessed via lease context, not direct navigation.

Resolution:

  • Removed "Tenants" navigation link from all role-based menus
  • Tenants remain accessible through:
    • Lease details (primary access path)
    • Prospect conversion workflow
    • Search functionality

Files Changed:

  • 4-Aquiis.SimpleStart/Shared/Layout/NavMenu.razor - Removed from OrganizationAuthorizeView
  • 5-Aquiis.Professional/Shared/Layout/NavMenu.razor - Removed from both PropertyManager and User sections

Impact: Eliminates dead-end navigation path, encourages proper lease-centric workflow.

6. Owner Role Available in User Management (Reverted)

Consideration: Initially restricted Owner role from dropdowns to prevent improper assignments. However, this prevents legitimate account inheritance scenarios (business transitions, ownership transfers).

Final Decision:

  • Owner role REMAINS available in role change dropdowns
  • System allows role flexibility while enforcing role-based permissions on features
  • Enables account transitions without losing historical data/audit trail
  • Creating new accounts for ownership transfers would lose activity history

Files Changed:

  • 4-Aquiis.SimpleStart/Features/Administration/Organizations/Pages/ManageUsers.razor - Owner role available in dropdowns
  • 5-Aquiis.Professional/Features/Administration/Organizations/Pages/ManageUsers.razor - Owner role available in dropdowns

Impact: Supports real-world business transitions and ownership transfers while maintaining audit trails.

Testing Results

Build Status: All projects compiled successfully (20.4s build time)
Compilation Errors: 0
Test Projects: All 7 test projects built successfully

Database Impact

Schema Changes: None
Migration Required: No
Database Version: v0.0.0 (unchanged from v1.0.0)

Users can upgrade from v1.0.0 to v1.0.1 without any database migration. All existing data remains intact and compatible.

Deployment Notes

For End Users (Upgrade from v1.0.0)

  1. Download new AppImage:

    curl -L -o Aquiis-1.0.1-x86_64.AppImage \
      https://github.com/xnodeoncode/Aquiis/releases/download/v1.0.1/Aquiis-1.0.1-x86_64.AppImage
    chmod +x Aquiis-1.0.1-x86_64.AppImage
  2. Verify checksum (will be provided in release)

  3. Run desktop integration script (if needed):

    ./install-desktop-integration.sh ~/path/to/Aquiis-1.0.1-x86_64.AppImage
  4. No database backup required - no schema changes

Windows (Portable Executable)

  1. Download portable exe:

    Download Aquiis-1.0.1-x64.exe from the v1.0.1 release page

  2. Verify checksum:

    # PowerShell
    Get-FileHash -Algorithm SHA256 Aquiis-1.0.1-x64.exe
    # Compare with checksums.txt from release
    # Command Prompt (using certutil)
    certutil -hashfile Aquiis-1.0.1-x64.exe SHA256
  3. Run the application:

    • Double-click Aquiis-1.0.1-x64.exe to launch
    • No installation required (portable exe)
    • Windows Defender SmartScreen may show warning (code not yet signed)
    • Click "More info" → "Run anyway" to proceed
  4. No database backup required - no schema changes

For Developers (Build from Source)

git checkout v1.0.1
dotnet build Aquiis.sln -c Release
cd 4-Aquiis.SimpleStart
electronize build /target linux    # For Linux AppImage
electronize build /target win      # For Windows portable exe

For Administrators (Manual Task Testing)

Test Invoice Processing:

  1. Navigate to Administration → Settings → Services (or Application Settings in SimpleStart)
  2. Click "Run Now" on "Update Invoice Statuses"
  3. Verify both status updates AND late fees applied in single operation
  4. Check logs for consolidated message: "Processed X overdue invoice(s): Y status updated, Z late fees applied"

Test Payment Processing Late Fee Auto-Apply:

  1. Create invoice with due date in past (beyond grace period, e.g., 5 days ago)
  2. Ensure late fee settings enabled with auto-apply
  3. Make partial payment on the invoice (less than total due)
  4. Expected: Invoice marked Overdue WITH late fee applied immediately
  5. Check invoice notes for "Late fee of $X applied on [date]" message
  6. Verify late fee added to invoice amount

Test Notification Center:

  1. Click notification bell (even with 0 notifications)
  2. Dropdown should appear with "No new notifications" message
  3. Click "View all" → navigates to /notifications
  4. Check notification preferences → Email/SMS/Digest sections show "Coming Soon" badges with consistent styling

Known Issues (Carried Forward from v1.0.0)

  • None critical for hotfix release
  • See v1.1.0 roadmap for planned enhancements

GitHub Release Artifacts

  • Aquiis-1.0.1-x86_64.AppImage (Linux, ~230MB)
  • Aquiis-1.0.1-x64.exe (Windows portable, ~150MB)
  • checksums.txt (SHA256 hashes)
  • install-desktop-integration.sh (Linux helper script)

AppImageHub Update

AppImageHub PR will need update with new filename:

  • Old: AquiisPropertyManagement-1.0.0.AppImage
  • New: Aquiis-1.0.1-x86_64.AppImage

Update PR comment explaining filename change to comply with standard nomenclature.

Changelog Summary

Changed:

  • AppImage product name: "AquiisPropertyManagement" → "Aquiis"
  • Invoice processing: Two separate tasks → One atomic operation
  • Notification bell: Conditional display → Always accessible

Added:

  • "Coming Soon" indicators for email/SMS/digest notifications with consistent badge styling
  • Payment processing auto-apply late fees when invoice becomes overdue

Removed:

  • Tenants navigation links from all menus
  • Redundant ApplyLateFees and UpdateInvoiceStatuses scheduled tasks (consolidated into one)

Migration Path

  • v1.0.0 → v1.0.1: Drop-in replacement, no migration required
  • v1.0.1 → v1.1.0: Database migration wizard planned (see v1.1.0 roadmap)

Version Compatibility

Component v1.0.0 v1.0.1
Database Schema v1.0.0 v1.0.0
.NET Framework 10.0 10.0
ElectronNET 23.6.2 23.6.2
Bootstrap 5.3.3 5.3.3

Contributors

  • xnodeoncode - All fixes and testing

Related Issues

  • Invoice late fees not applied: v1.0.0-Release-Issues.md #Invoices
  • AppImage naming: v1.0.0-Release-Issues.md #AppImage
  • Notification Center: v1.0.0-Release-Issues.md #Notification Center
  • NavMenu cleanup: v1.0.0-Release-Issues.md #NavMenu
  • Owner role: v1.0.0-Release-Issues.md #Profile

Full Changelog: v1.0.0...v1.0.1