Skip to content

Release/7.0.2 - #346

Merged
machacjozef merged 6 commits into
release/7.0.0from
release/7.0.2
Aug 4, 2026
Merged

Release/7.0.2#346
machacjozef merged 6 commits into
release/7.0.0from
release/7.0.2

Conversation

@machacjozef

@machacjozef machacjozef commented Aug 4, 2026

Copy link
Copy Markdown
Member

Release 7.0.2

Summary by CodeRabbit

  • Bug Fixes

    • Improved case search behavior for exact-match and substring filters applied to string and visual IDs.
    • Improved tab switching stability when users make rapid, consecutive selections.
    • Ensured the latest valid tab selection is applied reliably during quick navigation.
  • Chores

    • Updated package versions to 7.0.2 and aligned the related peer dependency version.

renczesstefan and others added 3 commits July 6, 2026 15:33
Updated `elasticKeywords` logic to include the `Equals` operator alongside `Substring` in the identifier search. This ensures better matching capabilities for both `case-string-id` and `case-visual-id` categories.
Introduce a mechanism to prevent race conditions during tab switching by adding a `_switching` flag and `_pendingIndex`. This ensures seamless handling of concurrent user actions and avoids inconsistencies in the selected tab state.
@machacjozef machacjozef self-assigned this Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@renczesstefan, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 52 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7405a1d9-0843-48d2-9a34-822d0a7e24a4

📥 Commits

Reviewing files that changed from the base of the PR and between 956e3d8 and 757d792.

📒 Files selected for processing (1)
  • projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts

Walkthrough

The PR updates case search index selection, queues tab-switch processing, and changes package versions from 7.0.0 to 7.0.2.

Changes

Core behavior and release alignment

Layer / File(s) Summary
Case search index routing
projects/netgrif-components-core/src/lib/search/models/category/case/case-string-id.ts, projects/netgrif-components-core/src/lib/search/models/category/case/case-visual-id.ts
The Equals operator now selects the core indexes for string IDs and visual IDs alongside Substring.
Queued tab switching
projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts
TabView stores pending tab unique IDs, prevents reentrant processing, updates selection state, and processes newer requests after a 150 ms delay.
Package release alignment
package.json, projects/netgrif-components-core/package.json, projects/netgrif-components/package.json
Package versions change to 7.0.2. The components package peer dependency also changes to 7.0.2.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  actor Caller
  participant TabView
  participant SelectionNotifications
  Caller->>TabView: tabChange(index)
  TabView->>TabView: _processSwitch(index)
  TabView->>SelectionNotifications: notify selection change
  TabView->>TabView: wait 150 ms
  TabView->>TabView: process newer pending index
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title identifies the 7.0.2 release, which matches the package version updates and the release objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts`:
- Around line 37-39: Replace the queued position state in TabView with the
pending tab’s uniqueId, update the queueing and _processSwitch flow to resolve
that ID against the current openedTabs immediately before selecting, and discard
the request when no matching tab remains. Ensure selectedIndex is only assigned
the resolved current index, including after closeTabIndex changes the array.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 87e49f96-cf4f-4741-afc5-228100f9e834

📥 Commits

Reviewing files that changed from the base of the PR and between 9affb70 and afd8481.

📒 Files selected for processing (6)
  • package.json
  • projects/netgrif-components-core/package.json
  • projects/netgrif-components-core/src/lib/search/models/category/case/case-string-id.ts
  • projects/netgrif-components-core/src/lib/search/models/category/case/case-visual-id.ts
  • projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts
  • projects/netgrif-components/package.json

Comment thread projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts Outdated
renczesstefan
renczesstefan previously approved these changes Aug 4, 2026
Replaced index-based tracking with unique ID-based tracking for tab switching logic. This ensures more reliable identification of tabs and avoids potential issues with index mismatches. Adjusted all relevant methods to accommodate the use of unique IDs.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts (1)

297-306: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Update selectedIndex before notifying the new tab.

TabView._processSwitch() emits true for the target tab before selectedIndex is updated, while setTabIndexWithNotification() updates it first. Keep the selection callback consistent by moving this.selectedIndex.setValue(index) before tab.tabSelected$.next(true).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts` around
lines 297 - 306, Update TabView._processSwitch() so
this.selectedIndex.setValue(index) executes before notifying the newly selected
tab via tab.tabSelected$.next(true), matching setTabIndexWithNotification()
callback ordering while preserving the deselection notification flow.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts`:
- Around line 282-285: The tabChange method unconditionally assigns to
this._pendingTabUniqueId before checking validity, which overwrites any
previously queued tab switch when an invalid event arrives. Extract the value
from this.openedTabs[event.index]?.uniqueId into a local variable first,
validate that the local variable is not undefined, and only assign it to
this._pendingTabUniqueId when valid. This preserves the pending tab ID if a
queued _processSwitch call is already scheduled, preventing a later invalid
event from canceling the earlier valid switch.

---

Outside diff comments:
In `@projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts`:
- Around line 297-306: Update TabView._processSwitch() so
this.selectedIndex.setValue(index) executes before notifying the newly selected
tab via tab.tabSelected$.next(true), matching setTabIndexWithNotification()
callback ordering while preserving the deselection notification flow.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: aadf0bd7-41f4-4027-9582-b80d70930a62

📥 Commits

Reviewing files that changed from the base of the PR and between afd8481 and 956e3d8.

📒 Files selected for processing (1)
  • projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts

Comment thread projects/netgrif-components-core/src/lib/tabs/classes/tab-view.ts Outdated
Replaced direct assignment to the class property with a local variable for better readability and maintainability. Ensured functionality remains unchanged while improving code clarity.
@sonarqubecloud

sonarqubecloud Bot commented Aug 4, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
13.3% Coverage on New Code (required ≥ 50%)

See analysis details on SonarQube Cloud

@machacjozef
machacjozef merged commit ee014da into release/7.0.0 Aug 4, 2026
10 of 11 checks passed
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