David Leek
a4885c45a3
chore(frontend): remove unused legacy featureoverview component ( #10921 )
2025-11-05 13:11:58 +01:00
unleash-bot[bot]
1030feee38
chore(AI): envAddStrategySuggestion flag cleanup ( #10916 )
2025-11-05 11:02:42 +01:00
Thomas Heartman
cd0eff35e2
Chore: remove aria-current; group buttons ( #10919 )
...
After some more consideration and reading, I don't think `aria-current`
is the right attribute here. Additionally, `aria-pressed` and
`aria-selected` are also not appropriate here. I can't find a suitable
alternative, so I'm falling back to the first rule of aria: if you don't
know what to do: don't do anything.
As such, I'm falling back to regular html data attributes.
2025-11-05 10:54:31 +01:00
Jaanus Sellin
79e439ea05
fix: hide usage when there is no limit ( #10918 )
2025-11-05 11:37:56 +02:00
Thomas Heartman
85fa04bc75
Chore: Vertically center change request quick filters ( #10917 )
...
Removes top padding that pushes the filters down.
Before:
<img width="683" height="260" alt="image"
src="https://github.com/user-attachments/assets/9eb43413-b988-435f-8ca0-8ee2e5e03a87 "
/>
After:
<img width="553" height="244" alt="image"
src="https://github.com/user-attachments/assets/b1ed623c-f154-43d8-ab31-cc0df374fb19 "
/>
2025-11-05 10:20:55 +01:00
unleash-bot[bot]
11a2860700
chore(AI): newStrategyModal flag cleanup ( #10912 )
...
This PR cleans up the newStrategyModal flag. These changes were
automatically generated by AI and should be reviewed carefully.
Fixes #10911
🧹 AI Flag Cleanup Summary
This change removes the newStrategyModal feature flag, making the new
"Add
strategy" modal the default and only experience for adding strategies to
a
feature.
I've removed the flag checks and the legacy code paths for the old
strategy
menu. The FeatureStrategyMenu component is now simplified to only render
the new
modal experience. I have also removed the flag from backend
configurations and
frontend interfaces.
🚮 Removed
• Feature Flag: newStrategyModal flag definition and configuration from
experimental.ts, server-dev.ts, and uiConfig.ts.
• Conditional Logic: All checks for the newStrategyModal flag in
FeatureStrategyMenu.tsx.
• Legacy Components: The old strategy menu
(LegacyFeatureStrategyMenuCards) and
related dialogs (LegacyReleasePlanReviewDialog) have been removed from
FeatureStrategyMenu.tsx.
• Unused Code: Unused state variables, functions
(openDefaultStrategyCreationModal, openReleasePlans), and imports
related to
the legacy strategy menu have been cleaned up.
🛠 Kept
• New "Add strategy" modal: The new modal for adding strategies is now
the only
implementation. Its user experience is preserved and made default.
📝 Why
The newStrategyModal feature has been completed, and the decision was to
keep
the new user experience. This cleanup removes the complexity of
maintaining two
different UI paths for adding strategies, making the code cleaner and
easier to
maintain.
---------
Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Nuno Góis <github@nunogois.com>
2025-11-05 08:59:18 +00:00
mohammedlaniyan-unleash
366827de6f
feat: prioritize first production environments in FeatureExposureMetrics ( #10891 )
2025-11-04 11:53:41 +00:00
David Leek
a1ebd0d114
chore: swap edit and copy strategy button order ( #10904 )
2025-11-04 07:50:17 +01:00
Nuno Góis
699f9e6ce2
fix: enterprise edge stats should take into account full month ( #10898 )
...
https://linear.app/unleash/issue/2-3993/fix-enterprise-edge-stats
Fixes Enterprise Edge stats to correctly reflect the average across the
whole month.
Now returns a rounded average with 3 decimal places.
Also includes the average of the last 12 months.
2025-11-03 13:45:38 +00:00
Mateusz Kwasniewski
d452e45f37
chore: safeguards flag ( #10906 )
2025-11-03 12:05:26 +01:00
Jaanus Sellin
a52ee10827
feat: align milestone time formatting ( #10903 )
2025-10-31 16:40:28 +02:00
Mateusz Kwasniewski
b21c101439
refactor: extract different milestone button types ( #10901 )
2025-10-31 15:02:36 +01:00
Jaanus Sellin
2458e5d5aa
feat: make milestone progression more clear ( #10899 )
2025-10-31 13:53:05 +00:00
Mateusz Kwasniewski
96f7f2f1bf
refactor: explicit scheduled milestone modelling ( #10900 )
2025-10-31 13:28:37 +01:00
Mateusz Kwasniewski
45fc547049
feat: start now button with background ( #10897 )
2025-10-31 12:24:56 +01:00
Mateusz Kwasniewski
d089e771da
Revert "feat: milestone without prior automation ( #10893 )" ( #10894 )
2025-10-30 14:58:04 +01:00
Mateusz Kwasniewski
a2c8e80345
feat: milestone without prior automation ( #10893 )
2025-10-30 13:13:06 +00:00
Mateusz Kwasniewski
eb87acd35a
feat: read milestone progressions from snapshot ( #10886 )
2025-10-29 11:57:47 +01:00
Mateusz Kwasniewski
b4208d2cf2
feat: milestone progression borders ( #10884 )
2025-10-29 11:02:53 +01:00
Mateusz Kwasniewski
c2ec77ba6e
feat: read only milestone progression in cr ( #10882 )
2025-10-29 09:54:39 +01:00
Mateusz Kwasniewski
0ddf35656c
refactor: Smart time range ( #10881 )
2025-10-28 17:26:12 +01:00
Mateusz Kwasniewski
dc87c125e0
feat: after to at ( #10880 )
2025-10-28 14:59:17 +01:00
Mateusz Kwasniewski
2823c94a38
feat: instant milestone progression prevention ( #10879 )
2025-10-28 13:13:23 +01:00
dependabot[bot]
351b5a4351
chore(deps): bump validator from 13.12.0 to 13.15.20 in /frontend ( #10877 )
2025-10-28 09:37:52 +01:00
Mateusz Kwasniewski
9142ebf82c
feat: track change progression ( #10874 )
2025-10-28 09:28:33 +01:00
Mateusz Kwasniewski
01c0d56277
chore: starting after time ( #10872 )
2025-10-27 16:05:32 +01:00
Jaanus Sellin
8db708369d
feat: warning when empty segment ( #10868 )
2025-10-27 14:46:51 +02:00
Christopher Kolstad
07758a4267
chore(build): Bump Yarn to 4.10.3 ( #10865 )
2025-10-27 12:58:24 +01:00
Alex Casalboni
131a741a35
Update unleash.github.io link (integrations) ( #10867 )
...
## About the changes
unleash.github.io doesn't exist anymore, so I'm updating the domain to
docs.getunleash.io
FYI @melindafekete
2025-10-27 11:14:04 +01:00
Thomas Heartman
0ba7954207
chore: Support border collapsing for an arbitrary number of filters ( #10862 )
...
Allows using an arbitrary number of styled chips with successful border
collapsing.
Before:
<img width="682" height="126" alt="image"
src="https://github.com/user-attachments/assets/80d66a5a-e0d7-461f-9be4-4a75579a7ff2 "
/>
<img width="634" height="134" alt="image"
src="https://github.com/user-attachments/assets/5d42be62-c4db-49a2-8c36-6f941f742f5f "
/>
After:
<img width="647" height="166" alt="image"
src="https://github.com/user-attachments/assets/43a2fcf8-2a56-41a3-ad84-381a6adfc947 "
/>
<img width="641" height="131" alt="image"
src="https://github.com/user-attachments/assets/cb38bae1-77e0-4c8b-b12f-4e4fa8250a34 "
/>
2025-10-24 15:18:39 +00:00
Thomas Heartman
1932d21336
chore: Add state filter to UI query; default to open ( #10858 )
...
Add an open/closed filter to the global change requests table.
To accomodate this, the PR:
- refactors the previous `ChangeRequestFilters` into its own directory
with additional files for each of the filter groups.
- updates the change request filters to work based on the table state
instead of its own external state (this was fine with only one param,
but would've gotten too complicated with two).
<img width="1108" height="442" alt="image"
src="https://github.com/user-attachments/assets/9cda0cbc-8524-45ce-b201-260e9581a346 "
/>
<img width="1101" height="381" alt="image"
src="https://github.com/user-attachments/assets/ab77b17f-5449-4987-9d08-341e856cb7ac "
/>
2025-10-24 12:30:23 +00:00
Jaanus Sellin
7a6c070324
feat: plausible metrics chart ( #10859 )
2025-10-24 13:44:35 +03:00
Thomas Heartman
47c2bb7376
Chore: update Orval with new state query param ( #10860 )
...
Preparing for the UI usage of this.
2025-10-24 12:38:03 +02:00
Thomas Heartman
4490fe785d
Update the design of change request filters to be one contiguous element ( #10857 )
...
Removes spacing between the filters, making them stick together.
This is in prep for adding a new set of filters, which will make each
group visually separated.
Also handles the bolding of text that happens when a filter is selected
by a little css `::before` trick.
Before:
<img width="367" height="199" alt="image"
src="https://github.com/user-attachments/assets/107e5f8d-a59b-46c9-ab86-18b240d3eb15 "
/>
After:
<img width="379" height="179" alt="image"
src="https://github.com/user-attachments/assets/a02f2810-33a6-40fe-837f-3a3b01243da9 "
/>
2025-10-24 10:56:46 +02:00
Fredrik Strand Oseberg
0e26f463e9
feat: show draft automation inline in release plans ( #10856 )
2025-10-24 09:34:01 +02:00
Fredrik Strand Oseberg
737c8648fb
refactor: polish progression edit form UI ( #10853 )
2025-10-23 15:04:29 +02:00
Jaanus Sellin
9b4a729944
chore: generate orval ( #10852 )
2025-10-23 15:46:02 +03:00
Thomas Heartman
e8dc64393e
chore: replace hand-crafted schemas with orval-generated schemas ( #10849 )
...
They're mostly the same content, however, so nothing much should change.
The `optional` title is already handled in the UI.
2025-10-23 14:29:44 +02:00
Fredrik Strand Oseberg
32a950763b
fix: show draft badges for milestone progression changes ( #10851 )
2025-10-23 13:19:48 +02:00
Fredrik Strand Oseberg
c5ac1ef81f
refactor: improve type safety in milestone progression components ( #10848 )
2025-10-23 10:53:32 +02:00
Thomas Heartman
5f51756fcc
chore: Fix global change requests table scaling ( #10842 )
...
Assigns more reasonable sizes and scaling to the change requests table.
Once the window gets too narrow, it'll result in a horizontal overflow.
<img width="1527" height="498" alt="image"
src="https://github.com/user-attachments/assets/a2697d51-fa6d-42c1-9b46-7e2d70a183d8 "
/>
<img width="1269" height="492" alt="image"
src="https://github.com/user-attachments/assets/f2d1c916-06dd-449e-8bb8-f3895457d975 "
/>
<img width="1070" height="510" alt="image"
src="https://github.com/user-attachments/assets/765f09f1-214f-46c9-a65b-3a7a2c71aeeb "
/>
<img width="967" height="503" alt="image"
src="https://github.com/user-attachments/assets/ca3bd439-12b1-4438-9028-96d473ef6b29 "
/>
<img width="896" height="507" alt="image"
src="https://github.com/user-attachments/assets/e2b07de9-8100-466f-ac62-b9078e0bb060 "
/>
2025-10-23 08:51:26 +00:00
Thomas Heartman
527d94d0fc
chore: never wrap other text fields in global change requests table ( #10841 )
...
Prevents text wraps in the wrapping columns of the table:
- Title
- environment
- status
Also prevents the change request badge cells (change request badges in
tables, such as the project CR table) from wrapping.
Before:
<img width="1054" height="302" alt="image"
src="https://github.com/user-attachments/assets/a4f30661-c680-47ef-82f0-49c01293712b "
/>
<details>
<summary>In extreme cases</summary>
<img width="3024" height="20820" alt="image"
src="https://github.com/user-attachments/assets/05a7c636-cabe-4e4e-9a9d-5e8a60d380ca "
/>
</details>
After:
<img width="1071" height="501" alt="image"
src="https://github.com/user-attachments/assets/64990be7-d338-4878-8fd2-678e1bf6c341 "
/>
and when it's wide enough to not horizontally scroll:
<img width="1136" height="493" alt="image"
src="https://github.com/user-attachments/assets/9757c019-0848-4abd-ae51-10679b0e58f4 "
/>
## Note: bug introduced (but fix is coming)
This does introduce a rendering bug in Chrome, however, where the
columns will take up all the width that they can without being
truncated:
<img width="1545" height="395" alt="image"
src="https://github.com/user-attachments/assets/b247c37a-277c-48f4-a64a-29c95b6d6dd4 "
/>
This does not happen in Firefox. However, it can be fixed by specifying
a max width for the columns. I'll fix this in the next PR.
2025-10-23 08:42:08 +00:00
Thomas Heartman
feed9ea3c9
chore: show avatars in cross-project change requests table. ( #10838 )
...
Updates the CR table cell to show the avatar (again). This applies both
to the project-based table and the global table.
Also adds a truncator to the created by cell, to avoid weird name
stacking.
Because the truncator already has a popup functionality on truncation,
we disable it for the avatars.
To make it compile, I've manually updated the types based on the
schemas. I'll regenerate them at a later date. The fields that were
marked as nullable are typically not nullable (although often they may
not be required) in our schemas, so I'll take it out for now. If we find
that we *are* returning null there, it still shouldn't cause any
problems for the UI, so it's a low risk fix that can be done later if
necessary.
Before:
<img width="1816" height="157" alt="image"
src="https://github.com/user-attachments/assets/37f0b742-4113-45ed-a867-f62913bcf99f "
/>
<img width="1255" height="126" alt="image"
src="https://github.com/user-attachments/assets/786ba01d-1e16-4b4f-b34a-d1157571b9be "
/>
After:
<img width="1789" height="146" alt="image"
src="https://github.com/user-attachments/assets/2a838804-89c5-42c8-a43c-64c1b93c4e01 "
/>
<img width="1320" height="72" alt="image"
src="https://github.com/user-attachments/assets/b04ca1d1-8334-40b4-bfba-46d803dd1cda "
/>
2025-10-23 07:44:11 +00:00
Mateusz Kwasniewski
e1d21adc9f
fix: long descriptions ( #10845 )
2025-10-23 08:50:49 +02:00
Nuno Góis
8ba35507cd
chore: add edge instances to instance stats ( #10839 )
...
https://linear.app/unleash/issue/2-3979/add-edge-instances-to-self-reported-instance-stats
Adds edge instances to instance stats.
2025-10-22 16:40:43 +01:00
Mateusz Kwasniewski
0919b7b925
refactor: update/create progression to change progression ( #10843 )
2025-10-22 15:40:30 +02:00
Fredrik Strand Oseberg
866441a1b6
feat: change request progression view ( #10835 )
2025-10-22 12:27:24 +02:00
Thomas Heartman
b9d81e5f59
chore: align text to cell top ( #10837 )
...
First part of UI refactoring for the change requests table: align
content to the top of the cell to facilitate scanning the table.
To facilitate this, I've mad the paginated table stylable by adding a
class name.
Before:
<img width="1810" height="1500" alt="image"
src="https://github.com/user-attachments/assets/febc9471-5d57-4afa-a9b0-0d22044fcd92 "
/>
After:
<img width="1809" height="1326" alt="image"
src="https://github.com/user-attachments/assets/e6aea2e9-0f1d-42f9-bd09-ad7317acbd4e "
/>
2025-10-21 14:08:03 +02:00
renovate[bot]
14b4809c8e
chore(deps): update dependency vite to v5.4.21 [security] ( #10834 )
...
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [vite](https://vite.dev )
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite ))
| [`5.4.20` ->
`5.4.21`](https://renovatebot.com/diffs/npm/vite/5.4.20/5.4.21 ) |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
### GitHub Vulnerability Alerts
####
[CVE-2025-62522](https://redirect.github.com/vitejs/vite/security/advisories/GHSA-93m4-6634-74q7 )
### Summary
Files denied by
[`server.fs.deny`](https://vitejs.dev/config/server-options.html#server-fs-deny )
were sent if the URL ended with `\` when the dev server is running on
Windows.
### Impact
Only apps that match the following conditions are affected:
- explicitly exposes the Vite dev server to the network (using --host or
[`server.host` config
option](https://vitejs.dev/config/server-options.html#server-host ))
- running the dev server on Windows
### Details
`server.fs.deny` can contain patterns matching against files (by default
it includes `.env`, `.env.*`, `*.{crt,pem}` as such patterns). These
patterns were able to bypass by using a back slash(`\`). The root cause
is that `fs.readFile('/foo.png/')` loads `/foo.png`.
### PoC
```shell
npm create vite@latest
cd vite-project/
cat "secret" > .env
npm install
npm run dev
curl --request-target /.env\ http://localhost:5173
```
<img width="1593" height="616" alt="image"
src="https://github.com/user-attachments/assets/36212f4e-1d3c-4686-b16f-16b35ca9e175 "
/>
---
### Release Notes
<details>
<summary>vitejs/vite (vite)</summary>
###
[`v5.4.21`](https://redirect.github.com/vitejs/vite/releases/tag/v5.4.21 )
[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v5.4.20...v5.4.21 )
Please refer to
[CHANGELOG.md](https://redirect.github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md )
for details.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" 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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 08:00:01 +00:00
Nuno Góis
1b60ed5df8
chore: show edge instances in license info ( #10810 )
...
https://linear.app/unleash/issue/2-3981/show-edge-instances-in-license-information-in-unleash
Show edge instances in license info.
Adapts to new logic, so resources are only shown if they are present.
2025-10-20 14:49:41 +01:00