Skip to content

Stage#9422

Merged
evereq merged 15 commits intostagefrom
develop
Feb 4, 2026
Merged

Stage#9422
evereq merged 15 commits intostagefrom
develop

Conversation

@evereq
Copy link
Member

@evereq evereq commented Feb 4, 2026

PR

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.



Summary by cubic

Fixes macOS signing/notarization and stabilizes desktop builds, while modernizing UI components. Adds pagination with “Load more” for pending plugin installations.

  • New Features

    • Added pagination and “Load more” for pending plugin installations (store/query/effects updates).
    • Subscribed plugins service now returns paginated results.
  • Bug Fixes

    • CI/macOS: decode Apple API key to a temp .p8 file in all workflows; notarize.js now accepts a file path or base64, improving signing/notarization reliability.
    • Desktop apps: load translations correctly and fix missing styles; corrected routing to AuthModule/RecapModule in desktop and desktop-timer; removed unused styles and fixed style include paths.
    • Swiper: upgraded to v12 and switched to swiper/element Web Components; updated templates/styles and navigation handling; removed deprecated Angular Swiper module usage.
    • Angular cleanups: adopted standalone InfiniteScrollDirective; improved task merge logic and null checks; minor UI/template refinements across vendors, expenses, and reports; small type/cspell updates.

Written for commit 4d72505. Summary will update on new commits.

evereq and others added 15 commits February 2, 2026 22:45
Bumps [locutus](https://github.com/locutusjs/locutus) from 2.0.38 to 2.0.39.
- [Release notes](https://github.com/locutusjs/locutus/releases)
- [Changelog](https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md)
- [Commits](locutusjs/locutus@v2.0.38...v2.0.39)

---
updated-dependencies:
- dependency-name: locutus
  dependency-version: 2.0.39
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…-2.0.39

chore(deps): bump locutus from 2.0.38 to 2.0.39
…tionality-lo

[Feat] Implement load more functionality
* fix(settings): revert add plugin component UI

Revert the add plugin component with a grid-based layout for
installation options. Enhance accessibility by adding ARIA attributes
and keyboard event handlers. Update the template to utilize Angular
Signals and improve the overall form structure and error reporting.

* fix(plugin): update auth token handling method and adjust imports

* feat(ui): add visible label for cdn url input

Add a visible label element linked to the CDN URL input field and
remove the redundant aria-label attribute. This improves accessibility
and ensures the input is properly identified by screen readers.

* fix(add-plugin): prevent default space key behavior and add aria-disabled attribute during installation

* fix(add-plugin): improve error handling display and add comments for clarity
* fix: desktop timer serve mode

* fix: desktop timer ui

* fix: desktop timer ui

* fix: desktop timer ui

* fix: desktop timer style not loaded

* fix: task component path
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 4, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@evereq evereq merged commit ebc8f7d into stage Feb 4, 2026
30 of 32 checks passed
@cla-assistant
Copy link

cla-assistant bot commented Feb 4, 2026

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
4 out of 5 committers have signed the CLA.

✅ evereq
✅ syns2191
✅ rahul-rocket
✅ adkif
❌ dependabot[bot]
You have signed the CLA already but the status is still pending? Let us recheck it.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 4, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
3.8% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 issues found across 63 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="packages/desktop-ui-lib/src/lib/time-tracker/task-table/table/task-table.component.ts">

<violation number="1" location="packages/desktop-ui-lib/src/lib/time-tracker/task-table/table/task-table.component.ts:30">
P2: OnPush is enabled, but async updates to `smartTableSettings`/`smartTableSource` happen in subscriptions/callbacks without `markForCheck()`. With OnPush, the view may not refresh on language changes or selector updates. Add `ChangeDetectorRef.markForCheck()` after these updates or wire them through async bindings.</violation>
</file>

<file name="apps/desktop-timer/src/app/app-routing.module.ts">

<violation number="1" location="apps/desktop-timer/src/app/app-routing.module.ts:28">
P2: AuthModule is already eagerly imported in AppModule, so lazy-loading it here will create duplicate module instances and router config. Prefer using the route array (authRoutes) or remove AuthModule from AppModule to keep a single load path.</violation>

<violation number="2" location="apps/desktop-timer/src/app/app-routing.module.ts:35">
P2: RecapModule is already imported in AppModule, so lazy-loading it here duplicates module instances and routes. Use the route array (recapRoutes) or remove RecapModule from AppModule to keep a single loading strategy.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

selector: 'ngx-task-table',
templateUrl: './task-table.component.html',
styleUrls: ['./task-table.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: OnPush is enabled, but async updates to smartTableSettings/smartTableSource happen in subscriptions/callbacks without markForCheck(). With OnPush, the view may not refresh on language changes or selector updates. Add ChangeDetectorRef.markForCheck() after these updates or wire them through async bindings.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/desktop-ui-lib/src/lib/time-tracker/task-table/table/task-table.component.ts, line 30:

<comment>OnPush is enabled, but async updates to `smartTableSettings`/`smartTableSource` happen in subscriptions/callbacks without `markForCheck()`. With OnPush, the view may not refresh on language changes or selector updates. Add `ChangeDetectorRef.markForCheck()` after these updates or wire them through async bindings.</comment>

<file context>
@@ -27,6 +27,7 @@ import { SearchTermStore } from '../search/+state/search-term.store';
 	selector: 'ngx-task-table',
 	templateUrl: './task-table.component.html',
 	styleUrls: ['./task-table.component.scss'],
+	changeDetection: ChangeDetectionStrategy.OnPush,
 	standalone: false
 })
</file context>
Fix with Cubic

component: TimeTrackerComponent,
canActivate: [AppModuleGuard, AuthGuard, AuthConnectionGuard],
loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.recapRoutes)
loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.RecapModule)
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: RecapModule is already imported in AppModule, so lazy-loading it here duplicates module instances and routes. Use the route array (recapRoutes) or remove RecapModule from AppModule to keep a single loading strategy.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/desktop-timer/src/app/app-routing.module.ts, line 35:

<comment>RecapModule is already imported in AppModule, so lazy-loading it here duplicates module instances and routes. Use the route array (recapRoutes) or remove RecapModule from AppModule to keep a single loading strategy.</comment>

<file context>
@@ -25,14 +25,14 @@ const routes: Routes = [
 		component: TimeTrackerComponent,
 		canActivate: [AppModuleGuard, AuthGuard, AuthConnectionGuard],
-		loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.recapRoutes)
+		loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.RecapModule)
 	},
 	{
</file context>
Fix with Cubic

{
path: 'auth',
loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.authRoutes),
loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.AuthModule),
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: AuthModule is already eagerly imported in AppModule, so lazy-loading it here will create duplicate module instances and router config. Prefer using the route array (authRoutes) or remove AuthModule from AppModule to keep a single load path.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/desktop-timer/src/app/app-routing.module.ts, line 28:

<comment>AuthModule is already eagerly imported in AppModule, so lazy-loading it here will create duplicate module instances and router config. Prefer using the route array (authRoutes) or remove AuthModule from AppModule to keep a single load path.</comment>

<file context>
@@ -25,14 +25,14 @@ const routes: Routes = [
 	{
 		path: 'auth',
-		loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.authRoutes),
+		loadChildren: () => import('@gauzy/desktop-ui-lib').then((m) => m.AuthModule),
 		canActivate: [AppModuleGuard, AuthConnectionGuard]
 	},
</file context>
Fix with Cubic

@nx-cloud
Copy link

nx-cloud bot commented Feb 4, 2026

View your CI Pipeline Execution ↗ for commit 4d72505

Command Status Duration Result
nx build desktop --base-href ./ ✅ Succeeded 2s View ↗
nx build desktop-api --output-path=dist/apps/de... ✅ Succeeded <1s View ↗
nx run api:desktop-api ✅ Succeeded 9s View ↗
nx run gauzy:desktop-ui --base-href ./ ✅ Succeeded 3m 38s View ↗
nx build gauzy -c=production --prod --verbose ✅ Succeeded 1m 1s View ↗
nx run-many -t build -c production -p constants... ✅ Succeeded 10s View ↗
nx run-many -t build -c development -p constant... ✅ Succeeded 10s View ↗
nx build api -c=production --prod ✅ Succeeded 5s View ↗

☁️ Nx Cloud last updated this comment at 2026-02-04 21:06:28 UTC

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.

4 participants