Skip to content

Phase 0 Baseline#4

Merged
xnodeoncode merged 9 commits intomainfrom
development
Apr 4, 2026
Merged

Phase 0 Baseline#4
xnodeoncode merged 9 commits intomainfrom
development

Conversation

@xnodeoncode
Copy link
Copy Markdown
Owner

Baseline release for Nine with database migration and import functionality to support previous versions of the application.

CIS Guru added 9 commits March 11, 2026 06:44
- electron-builder.json: restore entry wrapper with full desktop fields
  (Comment, Name, Icon, Type, Categories, Keywords, etc.) required by
  electron-builder 26.0.x schema; add co.nineapp paths for extraFiles
- Rename com.nineapp.nine.appdata.xml -> co.nineapp.nine.appdata.xml;
  update internal <id> and <launchable> from com.nineapp to co.nineapp
- nine.desktop: mark as reference template (electron-builder generates its own)
- LinuxKeychainService: rename Schema constant from org.aquiis.database
  to co.nineapp.database
- Remove desktop-config.bk scratch file
- UserContextService: catch InvalidOperationException outside Blazor circuit
- BaseWorkflowService: optional organizationId param in LogTransitionAsync
- LeaseWorkflowService: pass organizationId to LogTransitionAsync in ExpireOverdueLeaseAsync
- ApplicationWorkflowService: bypass user-context when organizationId provided in ExpireLeaseOfferAsync
- ScheduledTaskService: pass offer.OrganizationId to ExpireLeaseOfferAsync
- DatabaseService: add OrderBy to fix EF non-deterministic FirstOrDefault warning
- NotificationService: explicit senderUserId param; require auth or SystemUser.Id; set CreatedBy/LastModifiedBy
- BaseService: explicit opt-in system user guard in CreateAsync/UpdateAsync; no silent auth escalation
- LinuxKeychainService: remove plaintext password from console output (security fix)
- WindowsKeychainService: remove plaintext credential from console output (security fix)
- NavMenu: switch logo based on brand theme + light/dark mode (Obsidian=always inverted; Bootstrap/Teal=inverted in dark only)
- ThemeService/theme.js: related theme handling consistency fixes
…ility matrix

- Add DatabasePreviewService with full import pipeline (table mapping, GUID normalization, FK ordering)
- Add DatabasePreview.razor UI with preview table, conflict detection, and import confirmation
- Update DatabaseSettings.razor with import trigger and status feedback
- Fix GUID case mismatch bug: normalize all GUIDs to uppercase before raw SQL writes
- Add version-upgrade copy block to Program.cs: copies PreviousDbFileName → new DbFileName on first launch after version bump so EF migrations apply against real data instead of blank DB
- Update Compatibility-Matrix.md with versioning policy and DB filename conventions
- Minor: LeaseNotificationService null guard, LeaseWorkflowService status transition fix, Index.razor property count tweak
- Add DatabasePreviewService.DeleteDatabaseFileAsync with active-DB
  safety guard; refactor DeleteBackup to use it
- Add Delete button and handler for Previous Database Versions Found
  files in Database Settings
- Expand import to cover 7 additional tables: CalendarEvents,
  Inspections, Checklists, ChecklistItems, SecurityDeposits, Notes,
  Notifications - with required-cols sets and ImportResult DTO properties
- Add preview DTOs, count cards, tabs, and data panels for all 7 tables
  in DatabasePreview.razor
- ImportNotificationsAsync: fan out each notification to all real users
  (excluding system user) with fresh IDs
- Fix SignalR ObjectDisposedException in NotificationCenter on dispose
- Bump application and database version to 1.1.0
@xnodeoncode xnodeoncode added enhancement New feature or request phase-0-baseline labels Apr 4, 2026
@xnodeoncode xnodeoncode merged commit 1817651 into main Apr 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request phase-0-baseline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants