Skip to content

feat: upgrade Angular 19→21, extract inline templates, add charcoal/amber theme, restructure home page#85

Draft
Copilot wants to merge 58 commits into
mainfrom
copilot/migration-to-quarkus-again
Draft

feat: upgrade Angular 19→21, extract inline templates, add charcoal/amber theme, restructure home page#85
Copilot wants to merge 58 commits into
mainfrom
copilot/migration-to-quarkus-again

Conversation

Copy link
Copy Markdown

Copilot AI commented Apr 3, 2026

  • Previous native build fixes committed (WaveLink reflection, jnativehook, batik removal)
  • Windows native build CI triggered but action_required — exe size not yet available (noted in CONTEXT.md)
  • Update CONTEXT.md with native build status and Angular modernization details
  • app.config.ts: provideZoneChangeDetectionprovideZonelessChangeDetection (Angular 18+ stable)
  • angular.json: removed zone.js from app polyfills (kept zone.js/testing for tests)
  • Device visual components (3): @Input/@Outputinput()/output() signals; removed NgFor/NgIf imports
  • Templates (3 device visual + home): *ngIf@if, *ngFor@for ... track
  • AudioPickerComponent: model() for two-way value binding, input() for other inputs, signal() for async state
  • HomeComponent: fully signal-based state (signal(), computed(), inject()); *ngIf/*ngFor@if/@for
  • SettingsComponent, LightingComponent, DeviceComponent: use inject() + ChangeDetectorRef.markForCheck() for zoneless compatibility with [(ngModel)] form patterns
  • Angular build verified successful

Copilot AI and others added 22 commits April 3, 2026 13:24
- Replace Spring Boot parent POM with Quarkus BOM 3.19.1
- Add Quarkus extensions: arc, rest, rest-jackson, scheduler, cache,
  websockets-next, smallrye-health, vertx, quinoa 2.3.10
- Remove Spring Boot, JavaFX, Jetty WebSocket, OBS client dependencies
- Rewrite application.properties with Quarkus configuration
- Replace Main.java: remove @SpringBootApplication, implement
  QuarkusApplication with @QuarkusMain
- Delete MainFX.java (JavaFX entry point no longer needed)
- Add AppEvents.java: static CDI event accessor for non-CDI contexts
- Add ShowMainEvent.java: record replacing HomePage.ShowMainEvent
- Update FileChecker.java: replace MainFX/Spring event publishing
  with AppEvents.fire(new ShowMainEvent())

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
- Delete JavaFX UI files (ui/, wavelink/ui/, PCPanelMiniUI, PCPanelProUI, PCPanelRGBUI)
- Replace Spring @conditional annotations with CDI @qualifier annotations
- Create PlatformProducer for CDI-based OS-conditional bean selection
- Create ITrayService interface; TrayServiceAwt/Wayland implement it
- Replace @Service/@component with @ApplicationScoped
- Replace @Autowired with @Inject; fix @requiredargsconstructor for CDI
- Replace ApplicationEventPublisher with CDI Event<Object>
- Replace @eventlistener with @observes parameter pattern
- Replace @value with @ConfigProperty
- Replace @scheduled with Quarkus @scheduled
- Replace @Cacheable/@CacheEvict with Quarkus cache annotations
- Rewrite VersionChecker to use java.net.http.HttpClient
- Stub OBS integration (javax/jakarta conflict)
- Create stub device implementations (PCPanelRGBDevice, Mini, Pro)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…layPosition, accessor changes

Agent-Logs-Url: https://github.com/nvdweem/PCPanel/sessions/4547ee3a-bdc7-4f95-b883-542b1b369516

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…x IconService, Log4j2 dep

Agent-Logs-Url: https://github.com/nvdweem/PCPanel/sessions/6541f8c6-f13c-4843-aba4-7b7384af8e2b

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…hods, Java 17 compat

Agent-Logs-Url: https://github.com/nvdweem/PCPanel/sessions/745c8bc7-c721-4d3a-b19d-d1a9ff8708f5

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…rn, getBrightness→brightness()

Agent-Logs-Url: https://github.com/nvdweem/PCPanel/sessions/17386653-b863-4b2b-ab17-6ed9cfd944a7

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…SRF vulnerabilities

Agent-Logs-Url: https://github.com/nvdweem/PCPanel/sessions/24f2933c-4ef4-4652-8001-2ebad82b8b6f

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…d Quinoa to make them compile on Windows (still not running)
…EditorComponent, ProcessService

Agent-Logs-Url: https://github.com/nvdweem/PCPanel/sessions/563402e3-eb30-4191-905c-9433a15b2d70

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…ainted-cast issues

Agent-Logs-Url: https://github.com/nvdweem/PCPanel/sessions/6bfd189a-c4a3-4f11-82fd-3f8165ebb011

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
…mber theme, restructure home page

- Upgrade all Angular packages from 19 to 21 (core/router/etc to 21.2.7, material/cli/build to 21.2.5/6, TypeScript to 5.9.2, zone.js to 0.15)
- Move inline templates to separate .html files for all components (app, device, lighting, settings, home, audio-picker, command-config, dial-params-editor)
- Convert *ngIf/*ngFor structural directives to new Angular control flow (@if/@for)
- Remove CommonModule from all standalone components (not needed with new control flow)
- Update color scheme from blue (#e94560/#0f3460) to charcoal/amber (#ffc940/#25262a)
- Restructure home page with JavaFX-inspired sidebar + main layout
- Add device visual representation (knobs, sliders) on home page
- Add command config editing directly from home page
- Extract inline styles to .scss files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: nvdweem <830783+nvdweem@users.noreply.github.com>
@nvdweem nvdweem force-pushed the copilot/migration-to-quarkus-again branch from 4e48444 to 04662f8 Compare April 25, 2026 12:23
@nvdweem nvdweem force-pushed the copilot/migration-to-quarkus-again branch from 89b23fa to 5e5063c Compare May 8, 2026 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants