Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ddd503952b 
							
						 
					 
					
						
						
							
							feat: add lifecycle stage filter to project feature toggles ( #10448 )  
						
						... 
						
						
						
						Backend API is already implemented and ready to be used.
[issue/CTO-244](https://linear.app/unleash/issue/CTO-244/filter-by-lifecycle-on-project-page ) 
						
					 
					
						2025-08-01 10:22:32 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3338ea4300 
							
						 
					 
					
						
						
							
							chore: clear unknown flags every 24h instead of every 7d ( #10446 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3738/clear-unknown-flags-every-24h-instead-of-every-7d 
Clears unknown flags every 24h instead of every 7d.
This ensures the list stays more relevant by removing stale entries
sooner, allowing users to focus on actively reported unknown flags.
Also includes small improvements, including a new paragraph on the
unknown flags page that better explains the concept of unknown flag
reports. 
					
						2025-07-31 11:22:40 +01:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							02d4edbf40 
							
						 
					 
					
						
						
							
							feat: Display example date for date formatting reasons ( #10444 )  
						
						... 
						
						
						
						Adds an example date as a detail of the locale picker, so that the user
can see what effect their chosen locale would have on date formatting:
<img width="436" height="157" alt="image"
src="https://github.com/user-attachments/assets/d5757380-3cda-4857-99d7-bac8866d31f5 "
/>
The example wraps on smaller screens: 
<img width="291" height="207" alt="image"
src="https://github.com/user-attachments/assets/e3ef1678-6846-4027-b563-253195e2de99 "
/>
The example date is the **date and time of the very first commit in the
Unleash repo**. By some stroke of luck, it happens to have everything
we're looking for:
- A date that is more than the 12th (to clearly differentiate between
days and months)
- A month that is less than 10 (to show whether leading zeroes are shown
or not)
- An hour that is more than 11 to show whether it's a 24-hour clock or
an AM/PM system
The date string is without a time zone offset because that means it'll
always be interpreted as local time for the user. MDN's [docs on Date
and what happens when you call it with a time
string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format )
state that:
> When the time zone offset is absent, date-only forms are interpreted
as a UTC time and **date-time forms are interpreted as a local time**.
I've checked this by changing my locale. With the timezone offset, the
time changes based on my timezone, but without it, it always shows as
the expected value. 
						
					 
					
						2025-07-31 11:07:32 +02:00 
						 
				 
			
				
					
						
							
							
								Jaanus Sellin 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1d3aea47dc 
							
						 
					 
					
						
						
							
							feat: create flags created vs archived chart ( #10429 )  
						
						
						
					 
					
						2025-07-31 10:54:37 +03:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0d0257bbdc 
							
						 
					 
					
						
						
							
							chore: link to events for that flag name ( #10442 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3737/link-to-events-for-that-flag-name 
Adds a link to events for that flag name, in the unknown flags table.
This should help us understand if the flag ever existed in Unleash in
the first place.
<img width="1304" height="803" alt="image"
src="https://github.com/user-attachments/assets/b80c7912-f342-4fd1-b514-6fcafe9f5baf "
/> 
					
						2025-07-30 16:19:52 +01:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							58bd646db0 
							
						 
					 
					
						
						
							
							add placeholder to flag link ( #10435 )  
						
						
						
					 
					
						2025-07-30 12:14:13 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c73b5c7dc3 
							
						 
					 
					
						
						
							
							Generate orval ( #10440 )  
						
						... 
						
						
						
						Generates new orval schemas after recent changes to Change Requests 
						
					 
					
						2025-07-30 12:13:37 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c7fe43db71 
							
						 
					 
					
						
						
							
							Update stateTransitions property in UI to match new API prop ( #10438 )  
						
						... 
						
						
						
						We renamed the property returned from the API, so we also need to update
the UI. 
						
					 
					
						2025-07-30 12:13:19 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							a2d179e1f3 
							
						 
					 
					
						
						
							
							Fix: Horizontal hyperscroll on project flag list ( #10436 )  
						
						
						
					 
					
						2025-07-30 11:53:25 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							32996460df 
							
						 
					 
					
						
						
							
							chore: adapt configuration modal to standard and advanced strategies ( #10434 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3730/adapt-modal-to-new-standard-and-advanced-strategies-split 
Adapts our "add configuration" modal to the new concept of standard and
advanced strategies.
Follow-up to: https://github.com/Unleash/unleash/pull/10433 
<img width="984" height="482" alt="image"
src="https://github.com/user-attachments/assets/5af7a087-0bb6-46c3-93d0-f9968ea1928f "
/> 
					
						2025-07-30 10:17:03 +01:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3bfed7fb0c 
							
						 
					 
					
						
						
							
							fix: segment row id for modals ( #10437 )  
						
						... 
						
						
						
						Fixing the issue where modal with an active segment (for deletion) can
change which segment it's listing if a new segment that is
alphabetically earlier than the original segment 
						
					 
					
						2025-07-30 11:09:07 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c5b37fc7c2 
							
						 
					 
					
						
						
							
							chore: split standard and advanced strategy types ( #10433 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3733/update-strategy-types-to-match-the-new-designs 
This updates our strategy types page to match the new designs.
Part of this means visually separating what we are considering
"standard" strategies from "advanced" strategies.
<img width="1520" height="981" alt="image"
src="https://github.com/user-attachments/assets/2682013b-d9df-453d-9427-62871e74d46a "
/> 
					
						2025-07-30 09:55:51 +01:00 
						 
				 
			
				
					
						
							
							
								Gastón Fournier 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0f565c50e9 
							
						 
					 
					
						
						
							
							feat: rebrand sdk tokens and sdk types ( #10430 )  
						
						... 
						
						
						
						## About the changes
Rebrand SDK tokens and SDK types to make it easier to onboard and use:
**Backend SDK Token**: Intended for server-side SDKs. It can be used to
access:
- The Client Features API (/api/client/features) for fetching all flag
configurations for local evaluation.
- The Frontend API (/api/frontend) for remote evaluation.
**Frontend SDK Token**: Intended for client-side/frontend SDKs. It is
restricted and can only be used to access:
- The Frontend API (/api/frontend) for remote evaluation.
---------
Co-authored-by: Nuno Góis <github@nunogois.com> 
						
					 
					
						2025-07-30 10:24:40 +02:00 
						 
				 
			
				
					
						
							
							
								unleash-bot[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							7830fbb75f 
							
						 
					 
					
						
						
							
							chore(AI): eventGrouping flag cleanup ( #10428 )  
						
						
						
					 
					
						2025-07-29 15:20:10 +03:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d48d1df095 
							
						 
					 
					
						
						
							
							test: Ensure that timestamps in future states aren't shown ( #10426 )  
						
						
						
					 
					
						2025-07-29 12:36:57 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							663f30c8db 
							
						 
					 
					
						
						
							
							feat: Timeline for cancelled CRs ( #10421 )  
						
						... 
						
						
						
						Shows the cancelled state in the timeline for cancelled CRs. Extracts
steps into a separate file.
Also, if timestamps are present, it will dynamically show the steps we
have times for for rejected and cancelled CRs.
If we do not have timestamps, it'll use the old behavior for displaying
rejected steps, but does add a new one for cancelled steps, which
includes 'Draft', 'In review', 'Approved', 'Cancelled'.
CRs can be cancelled after:
- In review
- Approved
CRs can be rejected after:
- In review
- Schedule
For other states, use the existing steps. Cancelled and Rejected are
both terminal states, so there's no future steps to show.
Regardless of what we have timestamps for, always show 'Draft', 'In
review' and the final state (Rejected | Cancelled).
## Gallery
Cancellations
<img width="381" height="241" alt="image"
src="https://github.com/user-attachments/assets/a6af70c5-ef09-4aeb-ae53-0e3ff4b25446 "
/>
<img width="396" height="320" alt="image"
src="https://github.com/user-attachments/assets/699c2594-8c0c-44d9-bf50-22a8bdda3d00 "
/>
Rejections 
<img width="397" height="244" alt="image"
src="https://github.com/user-attachments/assets/20887a23-e453-49ce-bc5c-738ba4180868 "
/>
<img width="388" height="384" alt="image"
src="https://github.com/user-attachments/assets/e3c5842b-254d-47b8-a8f6-3721643c4223 "
/>
New cancelled steps without timestamps:
<img width="387" height="309" alt="image"
src="https://github.com/user-attachments/assets/5fba979d-cb5b-4aba-b652-7c5ac89a3e37 "
/> 
						
					 
					
						2025-07-29 12:21:30 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8554eee37a 
							
						 
					 
					
						
						
							
							feat: series query warning ( #10413 )  
						
						... 
						
						
						
						Co-authored-by: Thomas Heartman <thomas@getunleash.io> 
						
					 
					
						2025-07-29 10:03:43 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							15449e83d3 
							
						 
					 
					
						
						
							
							chore: add feature configuration based on addConfiguration flag ( #10420 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3729/single-add-configuration-button-based-on-flag 
Shows a single "Add configuration" button based on whether the new
`addConfiguration` flag is enabled.
This button then shows our "Add configuration" modal which allows you to
choose how to proceed in terms of your feature flag configuration. Also
updates this modal to better match the latest sketches.
Includes scouting.
### Single "Add configuration" button
<img width="738" height="121" alt="image"
src="https://github.com/user-attachments/assets/9cce7fba-5e0c-42e0-a3d1-8ccc34f730bb "
/>
### Modal
<img width="983" height="663" alt="image"
src="https://github.com/user-attachments/assets/b59abad2-f1cd-4b62-bf2e-9c3b24cbb60e "
/> 
					
						2025-07-29 08:27:13 +01:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0a9d6437c5 
							
						 
					 
					
						
						
							
							Place schedule information first and change color of schedule info ( #10419 )  
						
						... 
						
						
						
						As per UX's requests, this updates the placement and styling of the
schedule information for scheduled change requests. Instead of being
below the "stage entered time" and in "secondary" color, we place it
above that timestamp and in the same color as the stage name.
This change is not behind a flag, so the color change will go out
immediately upon release.
Before:
<img width="244" height="376" alt="image"
src="https://github.com/user-attachments/assets/2c5f380d-8d05-4078-93cc-d451eb9fdabe "
/>
After:
<img width="201" height="333" alt="image"
src="https://github.com/user-attachments/assets/d26c2c6f-5fc9-4db2-b52e-ff26e6f03a61 "
/>
Same for failed/suspended. Before:
<img width="280" height="378" alt="image"
src="https://github.com/user-attachments/assets/71c7a201-dfd7-47f3-a45b-c33a47be1e3c "
/>
After:
<img width="258" height="369" alt="image"
src="https://github.com/user-attachments/assets/9a3ab53f-bda1-4ce5-a127-bceaa3436fef "
/> 
						
					 
					
						2025-07-28 14:45:06 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8258ffcabe 
							
						 
					 
					
						
						
							
							chore: improve project card design ( #10418 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3728/remove-the-project-card-icon 
Removes the project icon from our project cards. This gives us more
space for our project titles.
Also took the chance to better align the "activity" visual component,
since previously it was floating not-quite-in-the-middle of the card.
This is already aligned with UX and ready to go from that standpoint.
<img width="918" height="442" alt="image"
src="https://github.com/user-attachments/assets/1538511e-e70d-4632-9f67-7d6cd146aeca "
/> 
					
						2025-07-28 12:57:33 +01:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d278185228 
							
						 
					 
					
						
						
							
							feat: GitHub auth ( #10406 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3713/show-sign-in-with-github-auth-option-in-unleash 
Adds support for a "Sign-in with GitHub" auth option.
Also took this opportunity to slightly improve the design of these
options on our log in screen.
<img width="485" height="429" alt="image"
src="https://github.com/user-attachments/assets/540cb4d5-f5bc-44a0-a7d7-d895d0f22393 "
/> 
					
						2025-07-24 15:25:25 +01:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d2e2378481 
							
						 
					 
					
						
						
							
							Show change request stage timestamps in UI ( #10388 )  
						
						... 
						
						
						
						Adds a timestamp for each state we have time (and that isn't a state
downstream from the current state) in the CR timeline.
<img width="437" height="318" alt="image"
src="https://github.com/user-attachments/assets/a499e73f-c506-46a0-8d1a-7e4eb5ec4f7d "
/>
The timestamp respects the user's preferred locale and uses the `time`
element.
I've used the current name of the API payload's timestamps as it stands
on the enterprise main branch for now. This name is not set in any
schemas yet, so it is likely to change. Because it's not currently
exposed to any users, that will not cause any issues. Name suggestions
are welcome if you have them.
We only show timestamps for states up to and including the current
state. Timestamps for downstream states (such as "approved" if you're in
the "in review" state), will not be shown, even if they exist in the
payload. (There are some decisions to make on whether to include these
in the payload at all or not.)
There's no flags in this PR. They're not necessary If the API payload
doesn't contain the timestamp, we just don't render the timestamp, and
the timeline looks the way it always did:
<img width="447" height="399" alt="image"
src="https://github.com/user-attachments/assets/0062393a-190c-4099-bc16-29f9da82e7ea "
/>
## Bonus work
In the `ChangeRequestTimeline.tsx` file, I've made a few extra changes:
- `createTimelineItem` and `createScheduledTimelineItem` have become
normal React components (`TimelineItem` and `ScheduledTimelineItem`) and
are being called as such (in accordance with [React
recommendations](https://react.dev/reference/rules/react-calls-components-and-hooks#never-call-component-functions-directly )).
- I've updated the subtitles for schedules to also use the time element,
to improve HTML structure.
## Outstanding work
There's a few things that still need to be sorted out (primarily with
UX). Mainly about how we handle scheduled items, which already have time
information. For now, it looks like this:
<img width="426" height="394" alt="image"
src="https://github.com/user-attachments/assets/4bfc4ca2-c738-4954-9251-8d063143371e "
/>
<img width="700" height="246" alt="image"
src="https://github.com/user-attachments/assets/fe688b08-c5c8-40f8-a9d0-fe455e44665f "
/> 
						
					 
					
						2025-07-24 12:42:29 +00:00 
						 
				 
			
				
					
						
							
							
								Jaanus Sellin 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8943cc0a3d 
							
						 
					 
					
						
						
							
							feat: basic flag creation chart ( #10411 )  
						
						... 
						
						
						
						This is partial implementation of flag creation chart. This only shows
the created flags line part, but I need to style it and also add bar
charts in next PRs.
<img width="1498" height="523" alt="image"
src="https://github.com/user-attachments/assets/6d7a3145-95ff-4d31-85dd-47d687527d47 "
/> 
						
					 
					
						2025-07-24 14:45:16 +03:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							9a768f7bdc 
							
						 
					 
					
						
						
							
							chore: orval update creation trends ( #10409 )  
						
						... 
						
						
						
						Co-authored-by: sjaanus <sellinjaanus@gmail.com> 
						
					 
					
						2025-07-24 13:38:11 +03:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							049e1ba271 
							
						 
					 
					
						
						
							
							feat: new flags in production explanation ( #10407 )  
						
						
						
					 
					
						2025-07-24 11:53:25 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							45e5b217aa 
							
						 
					 
					
						
						
							
							fix: add strategy release templates visibility for non Enterprise ( #10401 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3711/add-strategy-modal-shows-release-templates-section-for-non-enterprise 
Fixes a bug for non-Enterprise where release templates were mentioned
(and even linked to) even though they were not available for these
plans. When following the link the result was a page that did not
render.
Also slightly refactors and improves this component.
<img width="870" height="496" alt="image"
src="https://github.com/user-attachments/assets/47499e21-73fc-4ddf-8eed-6146be31b074 "
/> 
					
						2025-07-23 20:17:22 +01:00 
						 
				 
			
				
					
						
							
							
								dependabot[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e89fa7ec6e 
							
						 
					 
					
						
						
							
							chore(deps): bump form-data from 4.0.0 to 4.0.4 in /frontend ( #10403 )  
						
						
						
					 
					
						2025-07-23 18:37:42 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							64050121db 
							
						 
					 
					
						
						
							
							Add timestampsInChangeRequestTimeline flag ( #10399 )  
						
						... 
						
						
						
						Adds flag to OSS for the new timestamps in CR timeline capability.
We might not need them in the UI, but might as well add it in case. 
						
					 
					
						2025-07-23 15:33:40 +02:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							299ed65ef7 
							
						 
					 
					
						
						
							
							feat: New production flags chart ( #10400 )  
						
						
						
					 
					
						2025-07-23 15:29:47 +02:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0457f5e035 
							
						 
					 
					
						
						
							
							chore: orval generation ( #10398 )  
						
						
						
					 
					
						2025-07-23 13:11:26 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e87c51948f 
							
						 
					 
					
						
						
							
							fix: banner form state ( #10397 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3710/fix-banner-form-state-inconsistencies 
Noticed a few inconsistencies with the way the banner form handles
state. This should fix that by ensuring the form's state correctly
reflects prop changes. 
					
						2025-07-23 08:36:48 +01:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							bfd82015d1 
							
						 
					 
					
						
						
							
							Fix each child in a list should have a key error. ( #10393 )  
						
						... 
						
						
						
						The console was complaining. I suspect it was because of the wrapping
fragment. So instead of doing everything within react, I switched to
using a standard case statement.
Also: because name is optional and not guaranteed to be unique, let's
use id for the key instead. 
						
					 
					
						2025-07-22 13:03:33 +00:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f54305c8b7 
							
						 
					 
					
						
						
							
							refactor: impact metrics modal - label filtering and UX ( #10377 )  
						
						... 
						
						
						
						Modal for editing a chart now follows design of other parts of the app
more closely. 
						
					 
					
						2025-07-22 10:08:29 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c1df04548d 
							
						 
					 
					
						
						
							
							feat: add impact metrics wildcard label ( #10373 )  
						
						
						
					 
					
						2025-07-21 10:50:14 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2ff1aa78a0 
							
						 
					 
					
						
						
							
							refactor: color assignment in useChartData ( #10372 )  
						
						
						
					 
					
						2025-07-18 14:28:56 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b581b2393d 
							
						 
					 
					
						
						
							
							fix: improve impact metrics preview chart ( #10368 )  
						
						
						
					 
					
						2025-07-18 09:46:32 +02:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							89f5f79836 
							
						 
					 
					
						
						
							
							feat: aggregation mode selection ( #10367 )  
						
						
						
					 
					
						2025-07-17 18:36:25 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2d96becb28 
							
						 
					 
					
						
						
							
							fix: update legend display logic ( #10365 )  
						
						... 
						
						
						
						When grouping by multiple labels, chart label should always be visible.
Even if returned data only has 1 series 
						
					 
					
						2025-07-17 16:26:24 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3fb71bca75 
							
						 
					 
					
						
						
							
							fix: update text wrapping style in ImpactMetricsChart ( #10363 )  
						
						
						
					 
					
						2025-07-17 10:52:53 +02:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8455134688 
							
						 
					 
					
						
						
							
							feat: show rps only for counters ( #10361 )  
						
						
						
					 
					
						2025-07-16 13:43:29 +02:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c3f1454df7 
							
						 
					 
					
						
						
							
							feat: use metric display name in impact charts ( #10359 )  
						
						
						
					 
					
						2025-07-16 11:58:42 +02:00 
						 
				 
			
				
					
						
							
							
								unleash-bot[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							96f59bccfa 
							
						 
					 
					
						
						
							
							chore(AI): healthToTechDebt flag cleanup ( #10346 )  
						
						... 
						
						
						
						Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com> 
						
					 
					
						2025-07-11 14:15:55 +02:00 
						 
				 
			
				
					
						
							
							
								Melinda Fekete 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							cae5be4ad0 
							
						 
					 
					
						
						
							
							docs: update docs navigation ( #9942 )  
						
						
						
					 
					
						2025-07-11 13:33:11 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1948861a46 
							
						 
					 
					
						
						
							
							Update impact metrics state ( #10342 )  
						
						
						
					 
					
						2025-07-11 10:46:20 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							69905185c5 
							
						 
					 
					
						
						
							
							Impact metrics errors with rate per second option ( #10337 )  
						
						... 
						
						
						
						- checkbox to select 'rate' vs 'increase' - always available for now,
but does nothing for gauge. I can improve it later on
- better preview - it will show resolved query underneath
- cleaner error handling that doesn't overflow widgets 
						
					 
					
						2025-07-10 16:43:55 +02:00 
						 
				 
			
				
					
						
							
							
								Mateusz Kwasniewski 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							eb80f00206 
							
						 
					 
					
						
						
							
							feat: user friendly impact metric name ( #10338 )  
						
						
						
					 
					
						2025-07-10 11:27:37 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3b6613360c 
							
						 
					 
					
						
						
							
							chore: unknown flags UI ( #10332 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3682/add-unknown-flags-page-with-table-and-description 
Adds a `/unknown-flags` page with a table of unknown flag reports and a
short description of what this is.
It’s only accessible via direct URL for now (if the flag is enabled),
but it allows us to share the list with some customers.
<img width="1026" alt="image"
src="https://github.com/user-attachments/assets/feee88bb-bbce-4871-98d7-f76f95076ee2 "
/>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> 
					
						2025-07-08 17:51:03 +01:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1eefede62e 
							
						 
					 
					
						
						
							
							Improve impact metrics layout ( #10326 )  
						
						... 
						
						
						
						- narrow screen no longer breaks
- fixed size of series indicators in tooltips
- simplified grid layout props
- updated X axis ticks 
						
					 
					
						2025-07-08 12:28:04 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e2853acf15 
							
						 
					 
					
						
						
							
							Remove uses of one of / use operator checks instead ( #10328 )  
						
						... 
						
						
						
						Updates a few remaining places where we check constraint operators with
the new constraint operator checks. Additionally, because there was only
one remaining place where we used the `oneOf` function, I replaced it
with a normal `includes` check and deleted the `oneOf` util. From what I
can tell, there's no need to have that utility function; it doesn't
provide much benefit over using the language built-ins 🤷🏼  
						
					 
					
						2025-07-08 11:10:45 +02:00 
						 
				 
			
				
					
						
							
							
								David Leek 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							068ef585be 
							
						 
					 
					
						
						
							
							feat: move apply button to a separate section ( #10324 )  
						
						
						
					 
					
						2025-07-08 09:23:48 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0247561f9d 
							
						 
					 
					
						
						
							
							update 'config' icon ( #10319 )  
						
						
						
					 
					
						2025-07-07 10:41:43 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							cb4beb71ac 
							
						 
					 
					
						
						
							
							Chore(1 3895)/small input tweaks ( #10316 )  
						
						... 
						
						
						
						Doesn't clear the value from the constraint input value popover if you
close it and then re-open. In other words, if you accidentally click
out, you don't lose your progress. Instead, the popover will open again,
with the value you had when you closed it highlighted (so that it's easy
to type over if you want to):
<img width="452" alt="image"
src="https://github.com/user-attachments/assets/d86aa00e-4956-40a8-8fea-e75be5d5425b "
/>
The reason I'm changing this now is because I noticed that the error
wasn't cleared correctly when the popover was closed. If we do it this
way instead, then that makes sense, because you can still see the value.
This is also how the single-value popover has worked forever.
From some quick testing, the single value popover still works as
expected:
<img width="562" alt="image"
src="https://github.com/user-attachments/assets/9041a922-b055-4310-ab60-93ad219981a4 "
/>
As a side note: I'm adding a comment to anyone coming after as to why
focus handling on escape doesn't work correctly on the single value
button. I was about to go down a rabbit hole on that before I read my
own comment on the previous PR. So I thought I'd put that here too. 
						
					 
					
						2025-07-04 14:57:52 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							37aaf60aa5 
							
						 
					 
					
						
						
							
							feat(1-3873)/warn you when adding existing values ( #10310 )  
						
						... 
						
						
						
						Makes it so that the constraint value input gives you an error if you
try to add one or more values that **all** exist in the set of values
already. E.g. if you have `a` and `b`, and try to add `a`, it'll tell
you that "`a` has already been added". Likewise, if you try to add
`a,b`, it'll tell you that all these values already exist. However, if
at least one of the values does not exist, then it will allow you to
submit the values (we already do deduplication before storing anyway).
The background for this is that a user was confused thinking that just
one specific value didn't get added to their constraints. As it turns
out, they'd already added the value previously, so when it didn't show
up at the end of the list, they thought it didn't work at all.
<img width="863" alt="image"
src="https://github.com/user-attachments/assets/12195e0a-04bc-4b41-bd44-432120c768a6 "
/>
<img width="816" alt="image"
src="https://github.com/user-attachments/assets/433a64d7-aec0-482d-8544-574656c266ce "
/>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> 
						
					 
					
						2025-07-04 12:18:02 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8e0e9c834e 
							
						 
					 
					
						
						
							
							chore: Use fixed-width sidebar instead of dynamic modal. ( #10315 )  
						
						... 
						
						
						
						Uses a fixed-width sidebar component instead of the dynamic sidebar
component for the change request sidebar. This fixes a case where the
modal would suddenly grow narrower when a change was sent to review
(introduced in https://github.com/Unleash/unleash/pull/10307 ):
Before submitting (in main)

After submission (in main)

Before submitting (on this branch)

After submission (on this branch)

I don't see any reason why the CR sidebar should be dynamic, so making
it fixed width with the solution we already have seems pretty sensible
to me. Keeps things consistent and prevents us from solving the same
problem multiple times in multiple ways.
Yes this change makes the sidebar a little wider, but I think that's
fine. It's also closer to what it was previously, I think. Again, we can
rethink this if necessary. And of course, the modal still smooshes
together when it needs to:
<img width="431" alt="image"
src="https://github.com/user-attachments/assets/54f31284-75a4-4038-9943-c3b42363ecb4 "
/> 
						
					 
					
						2025-07-04 13:44:17 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e516bbf14c 
							
						 
					 
					
						
						
							
							chore: renames "Change" tab to "View change" to align with "View diff". ( #10314 )  
						
						... 
						
						
						
						There was some confusion whether the options were related or not. This
is a quick and easy solution that may solve the problem. If it doesn't,
we can make further changes later.
<img width="1045" alt="image"
src="https://github.com/user-attachments/assets/6b186b24-c4a7-491b-acbf-0e022a94493c "
/> 
						
					 
					
						2025-07-04 13:32:46 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							51a895b660 
							
						 
					 
					
						
						
							
							Chore(1-3894): update old/new name display + remove strategy type names ( #10305 )  
						
						... 
						
						
						
						This PR updates how we show old/new strategy/segment names in change
requests, and also removes the name of the strategy type from the
change.
For the old/new names: instead of showing them stacked vertically, we
show them side by side (old name first, then new name).
Compare before:
<img width="967" alt="image"
src="https://github.com/user-attachments/assets/d3e36f49-4abc-4cd4-8ba9-752515740185 "
/>
with after:
<img width="974" alt="image"
src="https://github.com/user-attachments/assets/d0f85264-b055-4c44-b985-f992f09d8dab "
/>
Only affects the new components (legacy CR view is untouched). If we get
negative feedback while rolling it out because the strat type name is
missing, we can always add it back. 
						
					 
					
						2025-07-03 12:58:13 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2b780e0120 
							
						 
					 
					
						
						
							
							Set a max width on the CR sidebar instead of a min width. ( #10307 )  
						
						... 
						
						
						
						The max width is set to `max(40vw, 1000px)`, so that if you're on a very
wide window, then it'll take up at most 40% of the horizontal space.
Once your window is smaller than 2500px, however, the sidebar will stop
shrinking and stay at 1000px (or as close to that as the window allows).
It'll keep shrinking with the window size.
This came up because in certain cases, such as if you have a release
template with a long description, the modal would just keep growing
until it took up 98% of the window width.
I have not set a min width for now. I don't think there is any need for
it, but if we find there is, we can add it back later.
Before:

After: 
 
						
					 
					
						2025-07-03 12:49:36 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							dcce90ccb1 
							
						 
					 
					
						
						
							
							fix segment changed name not showing ( #10304 )  
						
						... 
						
						
						
						Fixes a bug where we wouldn't show the changed segment name in segment
changes. This bug appears to have been around for a while, but this fix
does not touch the legacy version. Reintroduces the ChangeSegmentName
component to make the names stack correctly (vertically instead of
horizontally)
Before: 
<img width="993" alt="image"
src="https://github.com/user-attachments/assets/4bc24ad4-f754-4015-ba7b-4793c570fae8 "
/>
After:
<img width="1010" alt="image"
src="https://github.com/user-attachments/assets/0e4d5956-3553-4ef2-979c-bdbb89b3c376 "
/> 
						
					 
					
						2025-07-03 13:58:56 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							44d778f7a5 
							
						 
					 
					
						
						
							
							Add "feature status will change" ( #10302 )  
						
						... 
						
						
						
						Updates handling of default changes by letting the change components
themselves handle adding necessary text instead of passing it down as
"actions" (when text isn't really an action ...).
There's two cases where we add default changes to a CR:
1. If you enable an environment that has no strategies, then we add the
default strategy.
2. If you disable or remove the last strategy on an active environment
(such that the environment would now have 0 active strategies), then we
disable the environment too and add that to the change request.
Here's what they look like in the new design:
<img width="985" alt="image"
src="https://github.com/user-attachments/assets/e986e79f-041a-43d2-bfae-e5ecff11012d "
/>
<img width="981" alt="image"
src="https://github.com/user-attachments/assets/6a0dfe69-899f-4bc9-ae36-9553673dba06 "
/>
And because it seemed the easiest way to do it, I've also updated the
old design to do the same thing. It looks the same as it used to:
<img width="998" alt="image"
src="https://github.com/user-attachments/assets/b41612ab-22f3-4225-be24-092ca8584d9c "
/>
<img width="995" alt="image"
src="https://github.com/user-attachments/assets/3d00be93-1347-491f-a689-328178d9a8c3 "
/> 
						
					 
					
						2025-07-03 13:35:03 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2dc7cbaa31 
							
						 
					 
					
						
						
							
							chore: prepend changes with "change:"  ( #10276 )  
						
						... 
						
						
						
						Adds "change:" to the beginning of all changes and does some work to
align the use of compononents and structure across them (supersedes
https://github.com/Unleash/unleash/pull/10260 ).
In doing so, I have also added new and legacy variants for all different
change components, because this has required some hierarchy
restructuring every now and then. A reason for doing that was adding the
correct wrapping behavior for components, such that on smaller screens,
we wouldn't entirely blow out and make the kebab menu invisible and
inaccessible.
It also makes it so that we switch to full-width change view earlier (at
breakpoint md instead of sm), because at sm, a lot of stuff got hidden
before we switched to full-width.
Most changes are trivial updates; I've called out bits of the code that
are not in comments.
Rendered, it looks like this:
<img width="1203" alt="image"
src="https://github.com/user-attachments/assets/36bed974-99da-4d8d-a881-ea9df7797210 "
/>
One interesting and potentially quite useful side-effect, is that all
change types now use the exact same set of components in the same
fashion, as evidenced by this screenie where I've added outlines to the
hierarchy:
<img width="1020" alt="image"
src="https://github.com/user-attachments/assets/685fefcc-af7e-4697-b8f3-8260af1e2a84 "
/>
The one difference is that components without a diff place the "more"
kebab menu one layer further inside to facilitate prettier wrapping (the
kebab menu can stay on the same line as the other text when wrapping):
<img width="238" alt="image"
src="https://github.com/user-attachments/assets/2b8d3174-06a8-4ad4-b366-cea97720deda "
/> 
						
					 
					
						2025-07-03 11:14:04 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							082a6fdb16 
							
						 
					 
					
						
						
							
							Feat: impact metrics grid layout ( #10253 )  
						
						
						
					 
					
						2025-07-03 09:09:03 +00:00 
						 
				 
			
				
					
						
							
							
								unleash-bot[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f7fcd1c4df 
							
						 
					 
					
						
						
							
							chore(AI): registerFrontendClient flag cleanup ( #10297 )  
						
						
						
					 
					
						2025-07-03 10:52:48 +02:00 
						 
				 
			
				
					
						
							
							
								David Leek 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							bed467520d 
							
						 
					 
					
						
						
							
							chore: limit requested approver count to 10 ( #10279 )  
						
						
						
					 
					
						2025-07-03 09:25:58 +02:00 
						 
				 
			
				
					
						
							
							
								Jaanus Sellin 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							abe943951a 
							
						 
					 
					
						
						
							
							feat: add id as removable param for event list ( #10289 )  
						
						... 
						
						
						
						Also added ID as removable param, which can not be added from badge, but
can be added as query param.
 
						
					 
					
						2025-07-03 09:27:01 +03:00 
						 
				 
			
				
					
						
							
							
								Jaanus Sellin 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							30fbc62f9b 
							
						 
					 
					
						
						
							
							feat: group id clickable in event search ( #10277 )  
						
						... 
						
						
						
						Now when pressing the group id, the query params get updated.
Also the FilterItem appears and it is possible to discard the group id
selection through it.
 
						
					 
					
						2025-07-02 14:16:40 +03:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							bb473001c0 
							
						 
					 
					
						
						
							
							chore: remove view diff links in new components + remove colons ( #10262 )  
						
						... 
						
						
						
						Removes the view diff hover links (and strategy icons) in the new views
and removes trailing colons.
In removing the hover links, I have split up the content of their files
(`StrategyTooltipLink` and `SegmentTooltipLink`) into
`Change{Segment|Strategy}Name` and `{Segment|Strategy}Diff`. I have
reverted the existing tooltip files to their state before I began
changing this and added deprecation notices. These old tooltips are only
used by the old components, so we don't need to work on them after all.
In doing this work, I've also updated the strategy change diff to handle
the new functionality (tabs instead of hover)
The removal of the trailing colons (so that it's `adding strategy
gradual rollout` instead of `adding strategy: gradual rollout` is in
preparation for the remaining changes to the header that we're
introducing with this change. The removal of these is not behind a flag,
so I've also done it in the legacy components. This feels like a very
low risk change, so it felt like more work to have to check a flag for
each of the different instances where we use it.
<img width="839" alt="image"
src="https://github.com/user-attachments/assets/b29b8073-c282-4b4b-948f-9a545082ac31 "
/> 
						
					 
					
						2025-07-02 09:42:59 +02:00 
						 
				 
			
				
					
						
							
							
								Jaanus Sellin 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							7e85de8f65 
							
						 
					 
					
						
						
							
							feat: now it is possible to search events by group id ( #10275 )  
						
						... 
						
						
						
						Now when you put group ID as query param, it will filter based on
transaction id.
I am not sure if its best naming, whether it should be groupId or
transactionId, I will leave as group for now, but its simple change
later.
 
						
					 
					
						2025-07-02 10:16:13 +03:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3f073ad457 
							
						 
					 
					
						
						
							
							feat: impact metrics page with multiple charts ( #10252 )  
						
						
						
					 
					
						2025-07-01 14:54:25 +02:00 
						 
				 
			
				
					
						
							
							
								Jaanus Sellin 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							0e5080fac5 
							
						 
					 
					
						
						
							
							feat: start showing CR id in UI and make it clickable ( #10259 )  
						
						... 
						
						
						
						 
						
					 
					
						2025-07-01 12:50:49 +03:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f6ab7460c6 
							
						 
					 
					
						
						
							
							Remove the red coloration of deleted strategy change boxes ( #10246 )  
						
						... 
						
						
						
						We don't want deleted strategies to have the red background color
anymore with the new change/diff view. As such, we can remove it in the
new component and add a todo to delete the css for it after it's gone.
<img width="1050" alt="image"
src="https://github.com/user-attachments/assets/083cbcac-5df9-47cd-bd78-2501c3bbf64e "
/> 
						
					 
					
						2025-06-30 14:56:15 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d7c465fd20 
							
						 
					 
					
						
						
							
							chore: use pre-wrap for whitespace to break when necessary. ( #10245 )  
						
						... 
						
						
						
						Use `white-space: pre-wrap` on event diff lines instead of just `pre`.
This prevents us from getting a horizontal overflow and will instead
wrap the lines if it needs to, but preserve indentation and other spaces
(as explained in [MDN's white-space
docs](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space )).
Means that instead of getting a horizontal overflow and a scroll bar, we
get something like this instead:
 
						
					 
					
						2025-06-30 12:44:51 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							88514077f5 
							
						 
					 
					
						
						
							
							Chore(1-3882)/add diff border ( #10244 )  
						
						... 
						
						
						
						Adds a border around all the JSON diffs panels to align better with the
sketches and to mesh better with the existing change cards in CRs.
<img width="1051" alt="image"
src="https://github.com/user-attachments/assets/b4e81c34-630b-436b-8de2-9e6e6893b3fb "
/> 
						
					 
					
						2025-06-30 14:17:49 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f18509665d 
							
						 
					 
					
						
						
							
							add tabs to strategy sort order ( #10243 )  
						
						... 
						
						
						
						Adds the same tab interface to env execution order changes as to other
diffable changes. Instead of creating a new file, this one just
duplicates and changes the component that we wanna touch.
Change 
<img width="799" alt="image"
src="https://github.com/user-attachments/assets/2cd54f50-c4e6-43ef-a413-ed61973cf889 "
/>
Diff
<img width="997" alt="image"
src="https://github.com/user-attachments/assets/ef0379f5-0084-4c38-a713-373ccfacee0e "
/> 
						
					 
					
						2025-06-30 11:40:28 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							7c0bd12a24 
							
						 
					 
					
						
						
							
							add tabs to milestone start ( #10237 )  
						
						... 
						
						
						
						Adds changes/view diff tabs to release plan changes that show diffs. The
only instances I found where we show JSON diffs today was starting
milestones and adding a new release plan if you already have one.
I've moved the old file into a legacy file because we're touching two
out of three internal components, so it seemed like leaving it all in
one file would be a bit of a hassle. plus, this way it's consistent with
segments and strategies.
Start milestone:
<img width="1035" alt="image"
src="https://github.com/user-attachments/assets/2b4616f6-8452-4976-8101-11a94d6d5828 "
/>
<img width="1054" alt="image"
src="https://github.com/user-attachments/assets/0ba58c72-b3dc-48fa-95bf-a3980dc620fe "
/>
Plan replacement:
<img width="1006" alt="image"
src="https://github.com/user-attachments/assets/9381a48f-e23e-435e-8fa5-02fcb5050bfd "
/>
<img width="818" alt="image"
src="https://github.com/user-attachments/assets/c5ceb9db-b095-4d05-88e8-fd8a70776479 "
/> 
						
					 
					
						2025-06-30 13:18:18 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e2bb894f68 
							
						 
					 
					
						
						
							
							feat(1-3878)/diffable segment changes ( #10234 )  
						
						... 
						
						
						
						Adds change / view diff tab buttons to segment changes too. Extracts the
tab definitions and stylings into its own file so that it's easier to
share across CR change components. Moves the old segment change details
into the legacy segment change file.
Change views:
<img width="999" alt="image"
src="https://github.com/user-attachments/assets/26e2a987-f582-449d-b61c-bf2ec5c1edd4 "
/>
Diff views:
<img width="1011" alt="image"
src="https://github.com/user-attachments/assets/95621234-1352-4164-8f74-775bdb0e61dd "
/> 
						
					 
					
						2025-06-30 09:53:21 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8ade5b5dbb 
							
						 
					 
					
						
						
							
							feat: add tab switcher for change to json diff view in CR ( #10179 )  
						
						... 
						
						
						
						Updates the strategy change component used in change requests to have a
"tab"-like functionality, where you can switch between "Change" (the
rendered strategy) and "View diff" (the JSON diff). This is a tab
switcher, so you navigate it with arrow keys if on a keyboard, and I've
set selection to follow focus for now. This is my preference as it saves
you extra space/enter taps, but we can remove it later if we want.
Most of the changes in this PR is wrapping the existing strategy change
components/sections in tab panels and tab context providers.
Later changes in this project will remove the existing "view diff" hover
link in favor of this view.
There is some work to do on the design front (in terms of spacing,
borders, etc), but this covers the core functionality.
The pre-existing strategy change component has been moved into the
"LegacyStrategyChange" file with no changes beyond a deprecation
comment. The existing tests now test the new component instead with no
breakage. (I anticipate breaking when we remove the view diff link,
though)
Change with strategy variants:
<img width="991" alt="image"
src="https://github.com/user-attachments/assets/ac28912f-5b08-4a9c-96da-81bfd0b2e68e "
/>
<img width="1005" alt="image"
src="https://github.com/user-attachments/assets/4addaacc-101c-46cb-888f-95dc3b1cac25 "
/>
## Edge case: deleted strat with no reference strategy
There is a case in the code where "reference strategy" can be undefined
for a deleted strategy. It is defined as follows:
```ts
    const referenceStrategy =
        changeRequestState === 'Applied'
            ? change.payload.snapshot
            : currentStrategy;
```
I've decided to still show the "(no changes)" json diff in that setting,
so that the tabs actually affect something. I don't know how often this
happens, though: probably not anymore unless your CR is _ancient_, as we
introduced the snapshot quite a while ago, and `currentStrategy`
shouldn't really be undefined here, I should think.
Deleted strategy with no reference strategy:
Change:
<img width="1013" alt="image"
src="https://github.com/user-attachments/assets/352eaec9-c0ef-4d5a-b765-11304daf4474 "
/>
Diff:
<img width="1029" alt="image"
src="https://github.com/user-attachments/assets/e69c81a6-1ef7-47ff-853a-9fb900b26303 "
/> 
						
					 
					
						2025-06-30 11:04:44 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							39cdc170f2 
							
						 
					 
					
						
						
							
							Feat: impact metrics fronted ( #10182 )  
						
						
						
					 
					
						2025-06-30 09:48:00 +02:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c5ddcdbc3c 
							
						 
					 
					
						
						
							
							chore: allow backdrop click through on AddValuesPopover ( #10214 )  
						
						... 
						
						
						
						Follow-up to: https://github.com/Unleash/unleash/pull/10213 
This makes our `AddValuesPopover` backdrop click-through. This means you
can interact with any element in the "background" right away and it will
work, while closing the popover at the same time.
If this works well it may be worth extracting to a reusable
ClickThroughPopover or similar. 
						
					 
					
						2025-06-30 08:14:23 +01:00 
						 
				 
			
				
					
						
							
							
								David Leek 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							28caa82ad1 
							
						 
					 
					
						
						
							
							feat(changerequests): add requested approvers to overview ( #10232 )  
						
						
						
					 
					
						2025-06-30 08:51:51 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f2766b6b3b 
							
						 
					 
					
						
						
							
							Add various fixes to the CR view ( #10231 )  
						
						... 
						
						
						
						Adds a number of small corrections and fixes to (mainly) CR-related
component. Discovered as part of adding the new JSON diff view. Refer to
the various inline comments for explanations.
---------
Co-authored-by: Tymoteusz Czech <2625371+Tymek@users.noreply.github.com> 
						
					 
					
						2025-06-27 12:16:11 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4eedf88627 
							
						 
					 
					
						
						
							
							add crDiffView to Unleash ( #10228 )  
						
						... 
						
						
						
						This change adds the `crDiffView` flag to Unleash, potentially enabling
the new JSON diff tab in change request changes instead of the "view
json diff" hover functionality. 
						
					 
					
						2025-06-27 11:24:44 +02:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							75d2217ac6 
							
						 
					 
					
						
						
							
							chore(deps): update dependency @types/node to v22.15.33 ( #10223 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node )
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ))
| [`22.15.32` ->
`22.15.33`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.32/22.15.33 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-27 07:58:41 +00:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							49b712eeb7 
							
						 
					 
					
						
						
							
							chore(deps): update react monorepo ( #10221 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react )
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ))
| [`18.3.18` ->
`18.3.23`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.18/18.3.23 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
|
[@types/react-dom](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom )
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom ))
| [`18.3.5` ->
`18.3.7`](https://renovatebot.com/diffs/npm/@types%2freact-dom/18.3.5/18.3.7 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻  **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-27 02:51:07 +00:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							8be2ba8583 
							
						 
					 
					
						
						
							
							chore(deps): update dependency ws to v8.18.2 ( #10220 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ws](https://redirect.github.com/websockets/ws ) | [`8.18.1` ->
`8.18.2`](https://renovatebot.com/diffs/npm/ws/8.18.1/8.18.2 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>websockets/ws (ws)</summary>
###
[`v8.18.2`](https://redirect.github.com/websockets/ws/releases/tag/8.18.2 )
[Compare
Source](https://redirect.github.com/websockets/ws/compare/8.18.1...8.18.2 )
### Bug fixes
Fixed an issue that, during message decompression when the maximum size
was
exceeded, led to the emission of an inaccurate error and closure of the
connection with an improper close code
([#​2285](https://redirect.github.com/websockets/ws/issues/2285 )).
</details>
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-26 23:56:27 +00:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							abc7b68045 
							
						 
					 
					
						
						
							
							chore(deps): update dependency @codemirror/lang-json to v6.0.2 ( #10219 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@codemirror/lang-json](https://redirect.github.com/codemirror/lang-json )
| [`6.0.1` ->
`6.0.2`](https://renovatebot.com/diffs/npm/@codemirror%2flang-json/6.0.1/6.0.2 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>codemirror/lang-json (@​codemirror/lang-json)</summary>
###
[`v6.0.2`](https://redirect.github.com/codemirror/lang-json/blob/HEAD/CHANGELOG.md#602-2025-06-19 )
[Compare
Source](https://redirect.github.com/codemirror/lang-json/compare/6.0.1...6.0.2 )
##### Bug fixes
Add a .d.cts file to make TypeScript happy.
</details>
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-26 20:14:18 +00:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							85cba75fab 
							
						 
					 
					
						
						
							
							chore(deps): update dependency unleash-proxy-client to v3.7.6 ( #10215 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[unleash-proxy-client](https://redirect.github.com/unleash/unleash-proxy-client-js )
| [`3.7.3` ->
`3.7.6`](https://renovatebot.com/diffs/npm/unleash-proxy-client/3.7.3/3.7.6 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>unleash/unleash-proxy-client-js
(unleash-proxy-client)</summary>
###
[`v3.7.6`](https://redirect.github.com/Unleash/unleash-proxy-client-js/releases/tag/v3.7.6 )
[Compare
Source](https://redirect.github.com/unleash/unleash-proxy-client-js/compare/v3.7.5...v3.7.6 )
#### What's Changed
- Handle already aborted controllers before re-aborting by
[@​ActuallyConnor](https://redirect.github.com/ActuallyConnor ) in
[https://github.com/Unleash/unleash-proxy-client-js/pull/250 ](https://redirect.github.com/Unleash/unleash-proxy-client-js/pull/250 )
#### New Contributors
- [@​ActuallyConnor](https://redirect.github.com/ActuallyConnor )
made their first contribution in
[https://github.com/Unleash/unleash-proxy-client-js/pull/250 ](https://redirect.github.com/Unleash/unleash-proxy-client-js/pull/250 )
**Full Changelog**:
https://github.com/Unleash/unleash-proxy-client-js/compare/v3.7.5...v3.7.6 
###
[`v3.7.5`](https://redirect.github.com/Unleash/unleash-proxy-client-js/releases/tag/v3.7.5 )
[Compare
Source](https://redirect.github.com/unleash/unleash-proxy-client-js/compare/v3.7.4...v3.7.5 )
#### What's Changed
- fix(metrics): use clearInterval instead of clearTimeout in stop() by
[@​isawalhi](https://redirect.github.com/isawalhi ) in
[https://github.com/Unleash/unleash-proxy-client-js/pull/246 ](https://redirect.github.com/Unleash/unleash-proxy-client-js/pull/246 )
#### New Contributors
- [@​isawalhi](https://redirect.github.com/isawalhi ) made their
first contribution in
[https://github.com/Unleash/unleash-proxy-client-js/pull/246 ](https://redirect.github.com/Unleash/unleash-proxy-client-js/pull/246 )
**Full Changelog**:
https://github.com/Unleash/unleash-proxy-client-js/compare/v3.7.4...v3.7.5 
###
[`v3.7.4`](https://redirect.github.com/Unleash/unleash-proxy-client-js/releases/tag/v3.7.4 )
[Compare
Source](https://redirect.github.com/unleash/unleash-proxy-client-js/compare/v3.7.3...v3.7.4 )
#### What's Changed
- fix: unstable async bootstrap initialization by
[@​Tymek](https://redirect.github.com/Tymek ) in
[https://github.com/Unleash/unleash-proxy-client-js/pull/244 ](https://redirect.github.com/Unleash/unleash-proxy-client-js/pull/244 )
**Full Changelog**:
https://github.com/Unleash/unleash-proxy-client-js/compare/v3.7.3...v3.7.4 
</details>
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-26 00:18:36 +00:00 
						 
				 
			
				
					
						
							
							
								Nuno Góis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ce55d60804 
							
						 
					 
					
						
						
							
							chore: fix demo by adapting to new constraints flow ( #10213 )  
						
						... 
						
						
						
						https://linear.app/unleash/issue/2-3641/fix-demo-by-adapting-to-the-new-constraints-flow 
This fixes our demo by adapting to the new constraints flow and
components.
The new `onStep` handler should allow us to hack our way around most
scenarios. 
					
						2025-06-25 17:26:03 +01:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4471b3ff00 
							
						 
					 
					
						
						
							
							chore(deps): update dependency tss-react to v4.9.18 ( #10208 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [tss-react](https://www.tss-react.dev )
([source](https://redirect.github.com/garronej/tss-react )) | [`4.9.15`
-> `4.9.18`](https://renovatebot.com/diffs/npm/tss-react/4.9.15/4.9.18 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>garronej/tss-react (tss-react)</summary>
###
[`v4.9.18`](https://redirect.github.com/garronej/tss-react/releases/tag/v4.9.18 )
[Compare
Source](https://redirect.github.com/garronej/tss-react/compare/v4.9.17...v4.9.18 )
<!-- Release notes generated using configuration in .github/release.yaml
at refs/heads/main -->
#### What's Changed
##### Other Changes
- React 19 full compat by
[@​garronej](https://redirect.github.com/garronej ) in
[https://github.com/garronej/tss-react/pull/229 ](https://redirect.github.com/garronej/tss-react/pull/229 )
**Full Changelog**:
https://github.com/garronej/tss-react/compare/v4.9.17...v4.9.18 
###
[`v4.9.17`](https://redirect.github.com/garronej/tss-react/releases/tag/v4.9.17 )
[Compare
Source](https://redirect.github.com/garronej/tss-react/compare/v4.9.16...v4.9.17 )
<!-- Release notes generated using configuration in .github/release.yaml
at refs/heads/main -->
**Full Changelog**:
https://github.com/garronej/tss-react/compare/v4.9.16...v4.9.17 
###
[`v4.9.16`](https://redirect.github.com/garronej/tss-react/releases/tag/v4.9.16 )
[Compare
Source](https://redirect.github.com/garronej/tss-react/compare/v4.9.15...v4.9.16 )
<!-- Release notes generated using configuration in .github/release.yaml
at refs/heads/main -->
#### What's Changed
##### Other Changes
- Add Material UI 7 to peer dependencies by
[@​ghostd](https://redirect.github.com/ghostd ) in
[https://github.com/garronej/tss-react/pull/225 ](https://redirect.github.com/garronej/tss-react/pull/225 )
#### New Contributors
- [@​ghostd](https://redirect.github.com/ghostd ) made their first
contribution in
[https://github.com/garronej/tss-react/pull/225 ](https://redirect.github.com/garronej/tss-react/pull/225 )
**Full Changelog**:
https://github.com/garronej/tss-react/compare/v4.9.15...v4.9.16 
</details>
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-25 02:36:43 +00:00 
						 
				 
			
				
					
						
							
							
								David Leek 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3054b65f6a 
							
						 
					 
					
						
						
							
							feat(change-requests): requesting reviews when submitting change requests ( #10202 )  
						
						
						
					 
					
						2025-06-24 13:24:33 +02:00 
						 
				 
			
				
					
						
							
							
								Tymoteusz Czech 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							34973967d0 
							
						 
					 
					
						
						
							
							docs: update technical debt info ( #10132 )  
						
						... 
						
						
						
						Co-authored-by: Melinda Fekete <melinda.fekete@getunleash.io> 
						
					 
					
						2025-06-23 14:12:34 +02:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b48be7b29c 
							
						 
					 
					
						
						
							
							chore(deps): update dependency semver to v7.7.2 ( #10188 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [semver](https://redirect.github.com/npm/node-semver ) | [`7.7.1` ->
`7.7.2`](https://renovatebot.com/diffs/npm/semver/7.7.1/7.7.2 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
|
[@types/semver](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/semver )
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver ))
| [`7.5.8` ->
`7.7.0`](https://renovatebot.com/diffs/npm/@types%2fsemver/7.5.8/7.7.0 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>npm/node-semver (semver)</summary>
###
[`v7.7.2`](https://redirect.github.com/npm/node-semver/blob/HEAD/CHANGELOG.md#772-2025-05-12 )
[Compare
Source](https://redirect.github.com/npm/node-semver/compare/v7.7.1...v7.7.2 )
##### Bug Fixes
-
[`fcafb61`](fcafb61ed5https://redirect.github.com/npm/node-semver/pull/780 ) add
missing `'use strict'` directives
([#​780](https://redirect.github.com/npm/node-semver/issues/780 ))
([@​Fdawgs](https://redirect.github.com/Fdawgs ))
-
[`c99f336`](c99f336fa3https://redirect.github.com/npm/node-semver/pull/781 )
prerelease identifier starting with digits
([#​781](https://redirect.github.com/npm/node-semver/issues/781 ))
([@​mbtools](https://redirect.github.com/mbtools ))
##### Chores
-
[`c760403`](c760403b93https://redirect.github.com/npm/node-semver/pull/784 )
template-oss-apply for workflow permissions
([#​784](https://redirect.github.com/npm/node-semver/issues/784 ))
([@​wraithgar](https://redirect.github.com/wraithgar ))
-
[`2677f2a`](2677f2a883https://redirect.github.com/npm/node-semver/pull/778 ) bump
[@​npmcli/template-oss](https://redirect.github.com/npmcli/template-oss )
from 4.23.6 to 4.24.3
([#​778](https://redirect.github.com/npm/node-semver/issues/778 ))
([@​dependabot](https://redirect.github.com/dependabot )\[bot],
[@​npm-cli-bot](https://redirect.github.com/npm-cli-bot ))
</details>
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-20 18:11:05 +00:00 
						 
				 
			
				
					
						
							
							
								Ivar Conradi Østhus 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2ecb4b0a4f 
							
						 
					 
					
						
						
							
							Chore/remove flag disable bulk toggle ( #10183 )  
						
						... 
						
						
						
						Prompt used:

LLM: Gemini 2.5 Pro (preview)
@kwasniew do we still need this kill-switch? 
						
					 
					
						2025-06-20 13:18:50 +02:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f9ca769179 
							
						 
					 
					
						
						
							
							chore(deps): update dependency react-github-calendar to v4.5.7 ( #10186 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-github-calendar](https://grubersjoe.github.io/react-github-calendar/ )
([source](https://redirect.github.com/grubersjoe/react-github-calendar ))
| [`4.5.6` ->
`4.5.7`](https://renovatebot.com/diffs/npm/react-github-calendar/4.5.6/4.5.7 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>grubersjoe/react-github-calendar
(react-github-calendar)</summary>
###
[`v4.5.7`](5a4339780b...cbc9989b035a4339780b...cbc9989b03📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-20 01:21:18 +00:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3fe2fab47d 
							
						 
					 
					
						
						
							
							chore(deps): update dependency @uiw/react-codemirror to v4.23.13 ( #10185 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@uiw/react-codemirror](https://uiwjs.github.io/react-codemirror )
([source](https://redirect.github.com/uiwjs/react-codemirror )) |
[`4.23.10` ->
`4.23.13`](https://renovatebot.com/diffs/npm/@uiw%2freact-codemirror/4.23.10/4.23.13 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>uiwjs/react-codemirror (@​uiw/react-codemirror)</summary>
###
[`v4.23.13`](https://redirect.github.com/uiwjs/react-codemirror/releases/tag/v4.23.13 )
[Compare
Source](https://redirect.github.com/uiwjs/react-codemirror/compare/v4.23.12...v4.23.13 )
[](https://jaywcjlove.github.io/#/sponsor )
[](https://uiwjs.github.io/npm-unpkg/#/pkg/@​uiw/react-codemirror@4.23.13/file/README.md )
Documentation v4.23.13:
https://raw.githack.com/uiwjs/react-codemirror/40401ed/index.html \
Comparing Changes:
https://github.com/uiwjs/react-codemirror/compare/v4.23.12...v4.23.13 
```shell
npm i @​uiw/react-codemirror@4.23.13
```
- 🐞  fix(merge): Update react codemirror merge to work in shadow dom
([#​735](https://redirect.github.com/uiwjs/react-codemirror/issues/735 ))
[`154727c`](https://redirect.github.com/uiwjs/react-codemirror/commit/154727c )
[@​boopeshmahendran227](https://redirect.github.com/boopeshmahendran227 )
- 🆎  type(merge): fix type error.
[#​735](https://redirect.github.com/uiwjs/react-codemirror/issues/735 )
[`9e9776b`](https://redirect.github.com/uiwjs/react-codemirror/commit/9e9776b )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
###
[`v4.23.12`](https://redirect.github.com/uiwjs/react-codemirror/releases/tag/v4.23.12 )
[Compare
Source](https://redirect.github.com/uiwjs/react-codemirror/compare/v4.23.11...v4.23.12 )
[](https://jaywcjlove.github.io/#/sponsor )
[](https://uiwjs.github.io/npm-unpkg/#/pkg/@​uiw/react-codemirror@4.23.12/file/README.md )
Documentation v4.23.12:
https://raw.githack.com/uiwjs/react-codemirror/e780cd8/index.html \
Comparing Changes:
https://github.com/uiwjs/react-codemirror/compare/v4.23.11...v4.23.12 
```shell
npm i @​uiw/react-codemirror@4.23.12
```
- 🐞  fix: Fix ESM import in core package by adding .babelrc and
babel-plugin-add-import-extension
([#​732](https://redirect.github.com/uiwjs/react-codemirror/issues/732 ))
[`9a5ce28`](https://redirect.github.com/uiwjs/react-codemirror/commit/9a5ce28 )
[@​Shellishack](https://redirect.github.com/Shellishack )
- 🐞  fix: resolve ESM import issue in the package.
[#​732](https://redirect.github.com/uiwjs/react-codemirror/issues/732 )
[`8ce4ceb`](https://redirect.github.com/uiwjs/react-codemirror/commit/8ce4ceb )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
###
[`v4.23.11`](https://redirect.github.com/uiwjs/react-codemirror/releases/tag/v4.23.11 )
[Compare
Source](https://redirect.github.com/uiwjs/react-codemirror/compare/v4.23.10...v4.23.11 )
[](https://jaywcjlove.github.io/#/sponsor )
[](https://uiwjs.github.io/npm-unpkg/#/pkg/@​uiw/react-codemirror@4.23.11/file/README.md )
Documentation v4.23.11:
https://raw.githack.com/uiwjs/react-codemirror/4f9af7b/index.html \
Comparing Changes:
https://github.com/uiwjs/react-codemirror/compare/v4.23.10...v4.23.11 
```shell
npm i @​uiw/react-codemirror@4.23.11
```
- 🌍  website: fix example issue.
[#​717](https://redirect.github.com/uiwjs/react-codemirror/issues/717 )
[`d589c09`](https://redirect.github.com/uiwjs/react-codemirror/commit/d589c09 )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
- 📄  example: update nextjs example.
[`3bf96a6`](https://redirect.github.com/uiwjs/react-codemirror/commit/3bf96a6 )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
- 🐞  fix: Set correct module type in basic package
([#​729](https://redirect.github.com/uiwjs/react-codemirror/issues/729 ))
[`d6ee7f8`](https://redirect.github.com/uiwjs/react-codemirror/commit/d6ee7f8 )
[@​danez](https://redirect.github.com/danez )
- 🐞  fix(react-codemirror): Set correct module type in basic package
([#​729](https://redirect.github.com/uiwjs/react-codemirror/issues/729 ))
[`d1271a6`](https://redirect.github.com/uiwjs/react-codemirror/commit/d1271a6 )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
</details>
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-19 21:58:13 +00:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							a3d253ce52 
							
						 
					 
					
						
						
							
							chore(deps): update dependency @uiw/codemirror-theme-duotone to v4.23.13 ( #10184 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@uiw/codemirror-theme-duotone](https://uiwjs.github.io/react-codemirror/#/theme/data/duotone/light )
([source](https://redirect.github.com/uiwjs/react-codemirror )) |
[`4.23.10` ->
`4.23.13`](https://renovatebot.com/diffs/npm/@uiw%2fcodemirror-theme-duotone/4.23.10/4.23.13 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>uiwjs/react-codemirror
(@​uiw/codemirror-theme-duotone)</summary>
###
[`v4.23.13`](https://redirect.github.com/uiwjs/react-codemirror/releases/tag/v4.23.13 )
[Compare
Source](https://redirect.github.com/uiwjs/react-codemirror/compare/v4.23.12...v4.23.13 )
[](https://jaywcjlove.github.io/#/sponsor )
[](https://uiwjs.github.io/npm-unpkg/#/pkg/@​uiw/react-codemirror@4.23.13/file/README.md )
Documentation v4.23.13:
https://raw.githack.com/uiwjs/react-codemirror/40401ed/index.html \
Comparing Changes:
https://github.com/uiwjs/react-codemirror/compare/v4.23.12...v4.23.13 
```shell
npm i @​uiw/react-codemirror@4.23.13
```
- 🐞  fix(merge): Update react codemirror merge to work in shadow dom
([#​735](https://redirect.github.com/uiwjs/react-codemirror/issues/735 ))
[`154727c`](https://redirect.github.com/uiwjs/react-codemirror/commit/154727c )
[@​boopeshmahendran227](https://redirect.github.com/boopeshmahendran227 )
- 🆎  type(merge): fix type error.
[#​735](https://redirect.github.com/uiwjs/react-codemirror/issues/735 )
[`9e9776b`](https://redirect.github.com/uiwjs/react-codemirror/commit/9e9776b )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
###
[`v4.23.12`](https://redirect.github.com/uiwjs/react-codemirror/releases/tag/v4.23.12 )
[Compare
Source](https://redirect.github.com/uiwjs/react-codemirror/compare/v4.23.11...v4.23.12 )
[](https://jaywcjlove.github.io/#/sponsor )
[](https://uiwjs.github.io/npm-unpkg/#/pkg/@​uiw/react-codemirror@4.23.12/file/README.md )
Documentation v4.23.12:
https://raw.githack.com/uiwjs/react-codemirror/e780cd8/index.html \
Comparing Changes:
https://github.com/uiwjs/react-codemirror/compare/v4.23.11...v4.23.12 
```shell
npm i @​uiw/react-codemirror@4.23.12
```
- 🐞  fix: Fix ESM import in core package by adding .babelrc and
babel-plugin-add-import-extension
([#​732](https://redirect.github.com/uiwjs/react-codemirror/issues/732 ))
[`9a5ce28`](https://redirect.github.com/uiwjs/react-codemirror/commit/9a5ce28 )
[@​Shellishack](https://redirect.github.com/Shellishack )
- 🐞  fix: resolve ESM import issue in the package.
[#​732](https://redirect.github.com/uiwjs/react-codemirror/issues/732 )
[`8ce4ceb`](https://redirect.github.com/uiwjs/react-codemirror/commit/8ce4ceb )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
###
[`v4.23.11`](https://redirect.github.com/uiwjs/react-codemirror/releases/tag/v4.23.11 )
[Compare
Source](https://redirect.github.com/uiwjs/react-codemirror/compare/v4.23.10...v4.23.11 )
[](https://jaywcjlove.github.io/#/sponsor )
[](https://uiwjs.github.io/npm-unpkg/#/pkg/@​uiw/react-codemirror@4.23.11/file/README.md )
Documentation v4.23.11:
https://raw.githack.com/uiwjs/react-codemirror/4f9af7b/index.html \
Comparing Changes:
https://github.com/uiwjs/react-codemirror/compare/v4.23.10...v4.23.11 
```shell
npm i @​uiw/react-codemirror@4.23.11
```
- 🌍  website: fix example issue.
[#​717](https://redirect.github.com/uiwjs/react-codemirror/issues/717 )
[`d589c09`](https://redirect.github.com/uiwjs/react-codemirror/commit/d589c09 )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
- 📄  example: update nextjs example.
[`3bf96a6`](https://redirect.github.com/uiwjs/react-codemirror/commit/3bf96a6 )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
- 🐞  fix: Set correct module type in basic package
([#​729](https://redirect.github.com/uiwjs/react-codemirror/issues/729 ))
[`d6ee7f8`](https://redirect.github.com/uiwjs/react-codemirror/commit/d6ee7f8 )
[@​danez](https://redirect.github.com/danez )
- 🐞  fix(react-codemirror): Set correct module type in basic package
([#​729](https://redirect.github.com/uiwjs/react-codemirror/issues/729 ))
[`d1271a6`](https://redirect.github.com/uiwjs/react-codemirror/commit/d1271a6 )
[@​jaywcjlove](https://redirect.github.com/jaywcjlove )
</details>
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-19 19:37:50 +00:00 
						 
				 
			
				
					
						
							
							
								Jaanus Sellin 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							406b985e5d 
							
						 
					 
					
						
						
							
							feat: support id in search event ( #10180 )  
						
						... 
						
						
						
						Now id will be parsed from query, it will be StringParam, as it is not
coming from UI filters, its coming directly from query params. 
						
					 
					
						2025-06-19 19:09:49 +03:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e466e72e0d 
							
						 
					 
					
						
						
							
							chore(1-3842): don't reorder constraint properties / make id's non-optional ( #10160 )  
						
						... 
						
						
						
						This PR takes two steps towards better constraint handling:
## New type: `IConstraintWithId`
Introduces a new type, `IConstraintWithId`. This is the same as an
`IConstraint`, except the constraint id property is required. The idea
is that the list of editable constraints should move towards using this
instead of just `IConstraint`. That should prevent us (on a type-level)
from seeing more of the same kind of errors we saw with the segment
constraints yesterday.
I don't want to go ahead and update all the upstream uses of this to
IConstraintWithId in this PR, so I'll look at that separately.
## API payload constraint replacer
Introduces an api payload constraint "replacer", which we can use for
[JSON.stringify's `replacer`
parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#the_replacer_parameter ).
The current implementation works both for strategies and for segments
and has been added to edit + create forms for both of these resources.
This has a couple benefits:
1. We can clearly state exactly how we want them to be rendered,
including property order. I've decided to go with context -> operator ->
value(s) as the main one (check the screenie), as I believe this is the
most logical reading order.
2. We can exclude value/values (whichever one doesn't work with the
operator)
3. It doesn't matter how we treat constraints internally, we can still
present the payload how we want
4. Importantly: this only affects the stringification for the
user-facing API payload, so it's very low risk. It does not affect
anything that we actually send to the api.
Here's what it can look like with ordered properties:
<img width="392" alt="image"
src="https://github.com/user-attachments/assets/f46f77c8-0b5a-4ded-b13a-bb567df60bd3 "
/> 
						
					 
					
						2025-06-19 10:09:38 +02:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2e460b16fd 
							
						 
					 
					
						
						
							
							Chore(1 3836)/no changes in json diff ( #10175 )  
						
						... 
						
						
						
						Contains several improvements for the new json diff render:
1. Removes extra left-inset of the +/- icons for changed lines. This
means that the +/- icons will now show up in the change request popover,
whereas they were hidden (pushed outside the frame) previously).
2. Change styling based on whether it's an edit or a full replacement.
If it's an edit, keep the +/- icons per changed line. If it's a full
replacement (e.g. the object has been created or deleted), don't show
the +/- icons, and make the whole object the right color (specifically:
this also colors the surrounding braces that weren't colored before).
Not showing +/- for new/deleted objects is in line with how the previous
system worked.
3. If there are no changes, show `(no changes)`, as we did before.
Unfortunately, I don't think the component has any fallback for this
case, so we can't render arbitrary code. However, when it does happen,
the .diff container doesn't have any children, so we can render it with
CSS. It's not ideal for accessibility reasons etc, but it's better than
nothing, I think.
4. Adds a +/- to the button to open and close the full diff to indicate
better what it does. Also, only shows the button if it's an edit. When
it's a replacement, we show the full diff anyway, so the button has no
effect.
5. Does not exclude any keys by default anymore, but makes it a
parameter
## Left inset change + no excluded keys:
Before:
<img width="277" alt="image"
src="https://github.com/user-attachments/assets/65d4c972-ccbd-4202-b162-1c94a49920cc "
/>
After:
<img width="462" alt="image"
src="https://github.com/user-attachments/assets/14408bf2-cc00-4710-869b-83479d72f2f3 "
/>
## Edit vs full replacement
Before:
<img width="324" alt="image"
src="https://github.com/user-attachments/assets/5a7f6727-f4a6-40f1-becf-184f2f390e9b "
/>
(notice the surrounding braces (`{}`) aren't the right color)
<img width="339" alt="image"
src="https://github.com/user-attachments/assets/65247bde-469d-4408-90da-3867c1b4d650 "
/>
After:
<img width="364" alt="image"
src="https://github.com/user-attachments/assets/972fe602-fe2a-46b3-ba52-d13e4427db5b "
/>
<img width="374" alt="image"
src="https://github.com/user-attachments/assets/0d2f194b-3194-469b-9096-9a946c362178 "
/>
## No changes
Before:
<img width="276" alt="image"
src="https://github.com/user-attachments/assets/dac79332-1739-4ee8-91ca-c0e5950424fa "
/>
After:
<img width="271" alt="image"
src="https://github.com/user-attachments/assets/23f70e8e-c9ef-42e0-9862-303c5a7df0b9 "
/>
(The show all props button will show the whole object regardless):
<img width="352" alt="image"
src="https://github.com/user-attachments/assets/c2f7cba0-3afa-4c54-aa5a-6e01120a5eee "
/>
## Button
Before:
<img width="240" alt="image"
src="https://github.com/user-attachments/assets/45201048-5946-41fe-999c-b95c6617b384 "
/>
After:
<img width="274" alt="image"
src="https://github.com/user-attachments/assets/68cf96cf-4536-47db-903e-2e7884fa045f "
/> 
						
					 
					
						2025-06-19 10:08:28 +02:00 
						 
				 
			
				
					
						
							
							
								renovate[bot] 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							d49ca50816 
							
						 
					 
					
						
						
							
							chore(deps): update dependency @types/node to v22.15.31 ( #10172 )  
						
						... 
						
						
						
						This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node )
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ))
| [`22.15.18` ->
`22.15.31`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.18/22.15.31 )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Configuration
📅  **Schedule**: Branch creation - "after 7pm every weekday,before 5am
every weekday" in timezone Europe/Madrid, Automerge - At any time (no
schedule defined).
🚦  **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕  **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/Unleash/unleash ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> 
						
					 
					
						2025-06-18 19:11:26 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Heartman 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ef3ffc4d94 
							
						 
					 
					
						
						
							
							fix: Order properties correctly when mapping from Editable Constraint to IConstraint ( #10163 )  
						
						... 
						
						
						
						Prevents the property order from changing when constraints are set from
the editable constraint component. When we render out the API command,
we don't specify the order of properties in the objects, which means
that it can change dramatically, which can be a little jarring.
As it is right now, it first renders in one order when you open the
strategy form:
<img width="299" alt="image"
src="https://github.com/user-attachments/assets/52cf2445-d9eb-402c-b5bc-0fece5fbe822 "
/>
And when you navigate to the targeting section of the strategy form, it
changes to:
<img width="299" alt="image"
src="https://github.com/user-attachments/assets/e4cb7006-dcf4-4e88-befb-ccba5b647ddd "
/>
This also applies to constraints in segments.
With this change, the order will remain the same before and after.
Additionally, there's some extra tests around constraint ids being kept
the same and being set if it doesn't exist.
## Further work
This came about as part of the issue we had with constraint editing in
segments being broken as of now. As part of that, I would like to make
some further improvements (such as making the ID required when you use a
list of editable constraints), but that will be in a follow-up. There
are some complications that might not make it a viable option, sadly.
We could also try to stabilize the property order in the API rendering
methods (which I think might be a good idea), but because there's
multiple different ones, this seems to be a faster solution. 
						
					 
					
						2025-06-18 11:47:37 +00:00