1
0
mirror of https://github.com/Unleash/unleash.git synced 2026-01-05 20:06:22 +01:00
Commit Graph

6579 Commits

Author SHA1 Message Date
kwasniew
61f927729d Revert recent context field changes
This reverts the following commits:
- 62314aa66: fix: don't attempt to get fetch strategies for new context fields on every key stroke (#11152)
- 7369977b2: chore: update the UI to use project-based context endpoints when on a project endpoint (#11153)
- 4ef205066: make context field fetch differentiate based on project ID (#11151)

These changes are being reverted to address issues with the context field implementation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-17 06:55:35 +01:00
Thomas Heartman
62314aa66c
fix: don't attempt to get fetch strategies for new context fields on every key stroke (#11152)
Only renders the "ContextFieldUsage" component in the context form when
the form is in edit mode. It doesn't make sense to render it for context
fields that don't exist yet.

Rendering this in the create form caused the Unleash to send a request
to `/api/admin/context/:contextName/strategies` every time the name of
the context field changes (i.e. every key stroke).
2025-12-16 17:34:51 +01:00
Thomas Heartman
7369977b23
chore: update the UI to use project-based context endpoints when on a project endpoint (#11153)
Update the context field hooks to accept a project ID and to change
their API endpoints and cache keys based on the project ID.

Updating the URL in this many places (API example, multiple hooks, form
actions) feels kinda brittle and I wish there was a better way to do
this, but I don't have any bright ideas right at this moment. We could,
of course, extract a function that creates it, but that's also brittle
because they're all a little different 🤔
2025-12-16 16:21:35 +01:00
Fredrik Strand Oseberg
ed6f728e7e
feat: add splash overlay (#11147)
Adds a splash overlay that we can to App.tsx, it will look for active
splash ids defined in splash.tsx and append a query parameter that will
trigger the modal content. Once a splash is triggered it will be marked
as seen in the backend. This PR only adds the functionality, it does not
add it to the application just yet.
2025-12-16 08:40:53 +01:00
Fredrik Strand Oseberg
820820d79f
feat: initial splash setup (#11146)
Setup the intial splash screen in the current framework. For now we are
only adding the component on a path you can navigate to, there are
currently no triggers set up.
2025-12-15 13:29:18 +01:00
renovate[bot]
f52fb943ea
chore(deps): update dependency @tanstack/react-virtual to v3.13.12 (#11142)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@tanstack/react-virtual](https://tanstack.com/virtual)
([source](https://redirect.github.com/TanStack/virtual/tree/HEAD/packages/react-virtual))
| [`3.13.10` ->
`3.13.12`](https://renovatebot.com/diffs/npm/@tanstack%2freact-virtual/3.13.10/3.13.12)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@tanstack%2freact-virtual/3.13.12?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tanstack%2freact-virtual/3.13.10/3.13.12?slim=true)
|

---

### Release Notes

<details>
<summary>TanStack/virtual (@&#8203;tanstack/react-virtual)</summary>

###
[`v3.13.12`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31312)

[Compare
Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.11...@tanstack/react-virtual@3.13.12)

##### Patch Changes

- chore(react-virtual): fix vite e2e build
([#&#8203;1030](https://redirect.github.com/TanStack/virtual/pull/1030))

- Updated dependencies
\[[`d21ed98`](d21ed98da3)]:
-
[@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.12

###
[`v3.13.11`](https://redirect.github.com/TanStack/virtual/blob/HEAD/packages/react-virtual/CHANGELOG.md#31311)

[Compare
Source](https://redirect.github.com/TanStack/virtual/compare/@tanstack/react-virtual@3.13.10...@tanstack/react-virtual@3.13.11)

##### Patch Changes

- Updated dependencies
\[[`73fa867`](73fa867525)]:
-
[@&#8203;tanstack/virtual-core](https://redirect.github.com/tanstack/virtual-core)@&#8203;3.13.11

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDIuNDIuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-12 18:42:24 +00:00
Mateusz Kwasniewski
01090075d5
feat: plausible impact metrics add chart (#11140) 2025-12-12 13:26:16 +01:00
Mateusz Kwasniewski
5332b583b6
chore: adjust help icon size (#11138) 2025-12-12 12:49:43 +01:00
Jaanus Sellin
3c82c1b79b
fix: cap progression input (#11136)
We are capping the value to 10000 of any unit. I do not see a clear
reason why customer would need to enter anything larger.
2025-12-12 13:15:20 +02:00
Thomas Heartman
80fbaf1baf
feat: add project-specific edit and create modal forms (#11127)
Allows you to create, edit, and delete project context fields from the
project context field page.

Follows the same way of doing dynamic routing on the buttons as we did
for segments (checking if projectId exists, and if so, route there).

The current impl blindly inserts project if the edit/create form is open
under a project path, but we probably want to parameterize this later
(or before merging), so as to make it easier to control.
2025-12-12 10:24:23 +00:00
Fredrik Strand Oseberg
1d71ddc17b
Feat/impact metrics banner (#11133)
This PR adds a banner on the personal dashboard pointing you to release
templates.
2025-12-12 11:07:26 +01:00
dependabot[bot]
891080b9a5
chore(deps): bump js-yaml from 4.1.0 to 4.1.1 in /frontend (#10985)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md">js-yaml's
changelog</a>.</em></p>
<blockquote>
<h2>[4.1.1] - 2025-11-12</h2>
<h3>Security</h3>
<ul>
<li>Fix prototype pollution issue in yaml merge (&lt;&lt;)
operator.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="cc482e7759"><code>cc482e7</code></a>
4.1.1 released</li>
<li><a
href="50968b862e"><code>50968b8</code></a>
dist rebuild</li>
<li><a
href="d092d86603"><code>d092d86</code></a>
lint fix</li>
<li><a
href="383665ff42"><code>383665f</code></a>
fix prototype pollution in merge (&lt;&lt;)</li>
<li><a
href="0d3ca7a27b"><code>0d3ca7a</code></a>
README.md: HTTP =&gt; HTTPS (<a
href="https://redirect.github.com/nodeca/js-yaml/issues/678">#678</a>)</li>
<li><a
href="49baadd52a"><code>49baadd</code></a>
doc: 'empty' style option for !!null</li>
<li><a
href="ba3460eb9d"><code>ba3460e</code></a>
Fix demo link (<a
href="https://redirect.github.com/nodeca/js-yaml/issues/618">#618</a>)</li>
<li>See full diff in <a
href="https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=js-yaml&package-manager=npm_and_yarn&previous-version=4.1.0&new-version=4.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/Unleash/unleash/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 17:26:28 +01:00
dependabot[bot]
30af3a92a8
chore(deps): bump glob from 10.4.2 to 10.5.0 in /frontend (#10996)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.2 to 10.5.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="56774ef73b"><code>56774ef</code></a>
10.5.0</li>
<li><a
href="1e4e297342"><code>1e4e297</code></a>
bin: Do not expose filenames to shell expansion</li>
<li><a
href="1f0c1ca01a"><code>1f0c1ca</code></a>
10.4.5</li>
<li><a
href="eaf31dcb14"><code>eaf31dc</code></a>
whatever, just allow any engines</li>
<li><a
href="78275168e1"><code>7827516</code></a>
10.4.4</li>
<li><a
href="d06c8f8c82"><code>d06c8f8</code></a>
restore support for node 14.latest and 16.latest</li>
<li><a
href="c14b787771"><code>c14b787</code></a>
10.4.3</li>
<li><a
href="8a69def3ca"><code>8a69def</code></a>
node 14 no longer supported</li>
<li>See full diff in <a
href="https://github.com/isaacs/node-glob/compare/v10.4.2...v10.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=glob&package-manager=npm_and_yarn&previous-version=10.4.2&new-version=10.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/Unleash/unleash/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 17:25:32 +01:00
Christopher Kolstad
063efd43e2
task: security upgrades server (#11125) 2025-12-11 17:23:18 +01:00
Mateusz Kwasniewski
3596748866
feat: shield icon impact metrics for safeguards (#11130) 2025-12-11 16:10:45 +01:00
Mateusz Kwasniewski
36e40e6520
feat: dynamic text field length milestone time (#11129) 2025-12-11 15:59:27 +01:00
Nuno Góis
4aba7d24a2
refactor: clean up legacy edge components (#11126)
https://linear.app/unleash/issue/2-4057/remove-legacy-components

Cleans up legacy Edge components after removing the flag in
https://github.com/Unleash/unleash/pull/11124
2025-12-11 13:07:58 +00:00
unleash-bot[bot]
e29eae1e9e
chore(AI): enterpriseEdgeUI flag cleanup (#11124)
This PR cleans up the enterpriseEdgeUI flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #11123

## 🧹 AI Flag Cleanup Summary
This change removes the `enterpriseEdgeUI` feature flag and makes the
Enterprise
Edge UI permanently available. All conditional logic related to the flag
has
been removed, simplifying the codebase.
### 🚮 Removed
- **Flag Definition**
- Removed `enterpriseEdgeUI` flag from `experimental.ts` and
`uiConfig.ts`.
- Removed the flag from the development server configuration
(`server-dev.ts`).
- **Conditional Logic**
- Removed `useUiFlag('enterpriseEdgeUI')` hook calls and conditional
rendering
in `EnterpriseEdgeDismissibleAlert.tsx` and `Network.tsx`.
- Removed menu items from `adminRoutes.ts` that were conditional on the
`enterpriseEdgeUI` flag. The "Connected edges" link was removed as it
was only
shown when the flag was disabled.
### 🛠 Kept
- **Enterprise Edge UI**
- The Enterprise Edge page and related UI components are now always
enabled.
- The "Enterprise Edge" link in the admin navigation is now permanently
visible.
- The redirect from `/admin/network/connected-edges` to
`/admin/enterprise-edge` is now permanent.
### 📝 Why
The `enterpriseEdgeUI` feature flag was marked as completed with its
feature
kept. This cleanup removes the obsolete flag and hardcodes its behavior,
which
is a standard part of our development lifecycle to reduce code
complexity.

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
2025-12-11 12:48:30 +00:00
Thomas Heartman
5db61d65b6
add project context field flag to Unleash (#11115)
In prep for the project context fields feature.
2025-12-11 13:19:01 +01:00
Mateusz Kwasniewski
891e022cdd
fix: translate alert observation window to metric range (#11121) 2025-12-11 09:54:56 +01:00
Jaanus Sellin
0756250ddf
feat: safeguard threshold input ux (#11117)
Fixed threshold input UX by storing the input value as a string during
editing, allowing users to clear the field completely with backspace.

Threshold value converts to a number only on blur/Enter, matching the
pattern used in `RolloutSlider` and preserving the number input type for
proper numeric keyboard and spinner controls.

<img width="905" height="403" alt="image"
src="https://github.com/user-attachments/assets/e07881d0-2fc3-4ed1-9c5d-108d72e7126d"
/>
2025-12-11 08:37:37 +02:00
Mateusz Kwasniewski
225062dae4
feat: improve styling of safeguards (#11120) 2025-12-10 15:48:47 +01:00
Thomas Heartman
01572abe0b
chore: update colors for new in Unleah toast / add palette.inverse (#11109)
Adds a new `palette.inverse` property to the theme and uses it for the
New in Unleash toast.

Toast with new colors in light mode:
<img width="626" height="222" alt="image"
src="https://github.com/user-attachments/assets/2264dd00-117b-493f-8ce7-ff1a173d622d"
/>

Dark mode:
<img width="710" height="264" alt="image"
src="https://github.com/user-attachments/assets/14b27bc3-f516-46fc-9422-db08a7112f4f"
/>
2025-12-10 13:32:45 +01:00
Nuno Góis
a15ac35f10
chore: update read docs links in edge explanation (#11110)
https://linear.app/unleash/issue/2-4058/update-enterprise-edge-explanation-read-docs-links

Update "read docs" links in Edge explanation.
2025-12-10 11:11:08 +00:00
Jaanus Sellin
887665c3b6
chore: generate orval (#11111)
<img width="1488" height="628" alt="image"
src="https://github.com/user-attachments/assets/0c7af2dd-adc2-44a3-8b15-eef8e9724137"
/>
2025-12-10 12:43:12 +02:00
Nuno Góis
dd799235fc
chore: fix edge dismissible alert text color (#11112)
https://linear.app/unleash/issue/2-4076/fix-dismissible-alert-text-color

Fixes Edge dismissible alert text color, so it better matches our
sketches.
2025-12-10 09:32:16 +00:00
dependabot[bot]
476612f576
chore(deps): bump validator from 13.15.20 to 13.15.23 in /frontend (#11080) 2025-12-09 16:54:06 +01:00
Mateusz Kwasniewski
abc1eadf66
feat: add tooltip for remove safeguard and automation (#11107) 2025-12-09 16:32:08 +01:00
Nuno Góis
c0fc2032ae
chore: small UX adjustments in Enterprise Edge UI (#11104)
https://linear.app/unleash/issue/2-4074/slight-ux-adjustments

Implements a few UX adjustments in Enterprise Edge UI.

### Semi-transparent groups
<img width="1347" height="809" alt="image"
src="https://github.com/user-attachments/assets/2e366d2d-40ce-40ce-9ee4-ad80b2922072"
/>

### Consistent spacing around page sections
<img width="1354" height="936" alt="image"
src="https://github.com/user-attachments/assets/111fcbcc-7823-4926-8f31-6931391f43df"
/>
2025-12-09 14:12:49 +00:00
Jaanus Sellin
918a76368d
fix: safeguard minichart correct width (#11105) 2025-12-09 15:23:03 +02:00
Thomas Heartman
a96e41a3ef
fix: make sidebar fixed width again (#11102)
This PR reverts https://github.com/Unleash/unleash/pull/11037 and then
increases the set sidebar width by 16px when it's expanded.

The reason is that if the width is set to auto, then selecting the
various sub-items of the "configure" route results in the sidebar width
changing. I had a look, but couldn't figure out why. The strange thing
is that shorter page names appear to cause wider sidebars.

For instance, here's release templates:
<img width="289" height="647" alt="image"
src="https://github.com/user-attachments/assets/581e381e-4db4-47a3-b21a-f56220aea64c"
/>


Here's applications (look at the new in Unleash component):
<img width="330" height="652" alt="image"
src="https://github.com/user-attachments/assets/fc812d40-bf40-4860-9a4e-0fa0275ed76e"
/>


I've increased the sidebar width a little bit, such that the submenu
doesn't jump out of the main menu as described in #11037. It now looks
like this for release plans with the new badge:

<img width="305" height="395" alt="image"
src="https://github.com/user-attachments/assets/39f882e2-0489-44a4-be8a-74934202ccfc"
/>

Ideally, I'd like to find a better solution to this (by finding out
what's causing the jumping), but there's more important issues to look
at at the moment, and this will work fine.
2025-12-09 11:11:00 +01:00
Thomas Heartman
46575a86a4
mount new in unleash in the main layout (#11094)
When the flag is active.
2025-12-08 17:04:50 +01:00
Thomas Heartman
bd776d5e7f
chore: add gtmReleaseManagement flag to Unleash (#11093)
In prep for switching the new in unleash impl
2025-12-08 17:04:38 +01:00
Thomas Heartman
fba42d99b9
chore: Add new NewInUnleash component. (#11092)
This is primarily a wrapper component that finds which item to show for
"new in unleash" and then passes that wrapper to the toast.

Also adds tests for the check whether an item should be displayed or
not.
2025-12-08 15:49:50 +00:00
Thomas Heartman
f9b9a544e7
chore: move old NewInUnleash to legacy file (#11100)
Moves the existing NewInUnleash impl to a legacy file in preparation for
updating it with a new implementation.
2025-12-08 15:18:04 +01:00
Thomas Heartman
21acef88df
chore: add a delayed evaluation of UI flags (#11091)
Adds a new hook for UI flag evaluation that returns an evaluation
function.

This solves a frequent pain point where we can't check if a flag is
enabled conditionally (e.g. if we don't know if we have a flag yet)
because it's implemented as a hook.

The new implementation uses the same evaluation as the old one, but
returns the eval function after calling the hook, thereby circumventing
the issue and allowing you to eval a flag anywhere in the function body.
2025-12-08 15:17:49 +01:00
Mateusz Kwasniewski
3e840b8e22
fix: hide change request items that are already consolidated (#11101) 2025-12-08 14:51:40 +01:00
Thomas Heartman
4210b2b1f4
chore: remove global change request list flag (#11097)
Removes the global change request list flag and stabilizes the feature.
2025-12-08 14:01:24 +01:00
Jaanus Sellin
f99a95a0f1
feat: mini metrics chart with no data (#11099) 2025-12-08 14:06:44 +02:00
Jaanus Sellin
1549729340
feat: for adding safeguards, add modified in draft (#11095) 2025-12-08 12:19:15 +02:00
Thomas Heartman
c55e8eaad6
add new new in unleash toast (#11066)
Adds a "new in unleash" toast (*snackbar* in MUI parlance) to the app.
The component is not hooked up to anything, so it will not show anywhere
in the app just yet.

Because we want this to show regardless of whether the sidebar is open
or not and whether the user is on mobile or not, the new components need
to be mounted outside of the sidebar hierarchy. Because they're on top
of everything, I've used the main layout in dev, but that can be
adjusted if necessary. Nothing is mounted there at the moment, though.

The toast acts like a "card" in many ways, where the entire thing is
clickable and will open up the modal. There is no implementation for
modal-less items for now because the current thing we're highlighting
(release plans) uses a modal. We can add support for modal-less items
later.

On component mount, there is a 500 ms timeout before the toast slides
in.

Stacked on top of https://github.com/Unleash/unleash/pull/11087

---

Close-up of toast + with focus styles:

<img width="330" height="119" alt="image"
src="https://github.com/user-attachments/assets/0997d772-3174-48dc-b0c0-affedd2c1815"
/>

<img width="315" height="118" alt="image"
src="https://github.com/user-attachments/assets/ae643d30-1434-4879-a294-24b5375c5c37"
/>

The toast goes behind the overlay when the modal shows (snackbars have a
higher z-index than modals do in MUI by default):

<img width="1490" height="1253" alt="image"
src="https://github.com/user-attachments/assets/97ee2216-8991-47f6-bf32-764bbe230e74"
/>

## Up next

Add a wrapper component that checks which news item (if any) to show and
that will be mounted in the main layout.

+ Add a flag to control which version of the new in Unleash we're
showing.


## Dark mode

The colors aren't correct in dark mode. Or rather, the `common.black`
theme color isn't very black. Because it's not wired up anywhere, I'm
happy to leave it like this for now while we wait for UX to get back to
us with what they wanna do.

<img width="322" height="125" alt="image"
src="https://github.com/user-attachments/assets/461b1c1e-3886-41ac-abb0-806a06f9b554"
/>

## Hover colors

There's also no hover indicator at the moment. I'm waiting for input
from UX for that too, but that's a small thing to add.
2025-12-05 12:17:39 +01:00
Thomas Heartman
a437ff9255
Update NewInUnleashDialog to accept app links as well as onCheckItOut (#11087)
Updates the `NewInUnleashDialog` to accept elements that have an
`appLink` prop as well as elements with an `onCheckItOut` prop, allowing
for the changes in #11086 to be displayed the same as the old items. For
items with an `appLink` prop, the "check it out" button will be rendered
as a link instead of a button.

The dialog otherwise looks and acts exactly the same.

Builds on https://github.com/Unleash/unleash/pull/11086
2025-12-05 11:09:36 +00:00
Thomas Heartman
0502104a06
chore: add new NewInUnleashItems file (#11086)
Adds a NewInUnleashItems file. This file will supplant the list of items
coded into the existing `NewInUnleash.tsx`. Because we can use links
instead of onClick navigation handlers for app navigation, we also don't
need it to be stateful. If there is a need for this later, we can add it
in then.

The file also exports a type for the items.

Also, removes the previous items (lifecycle 2.0, and signals and
actions) from the list (or rather: doesn't port them over) because
they're out of date now anyway.
2025-12-05 11:56:21 +01:00
Jaanus Sellin
2597f34e7e
feat: now impact metrics charts are limited to 20 (#11090) 2025-12-05 12:18:43 +02:00
Nuno Góis
a521255f16
chore: add dismissible alert about Edge (#11085)
https://linear.app/unleash/issue/2-4053/add-enterprise-edge-dismissible-alert-to-admin-page

Adds a dismissible alert about Enterprise Edge to the admin home page.

Includes some slight scouting.

<img width="1468" height="703" alt="image"
src="https://github.com/user-attachments/assets/b926bf38-44ba-4d53-a054-55f9686b44c3"
/>
2025-12-04 16:27:53 +00:00
Nuno Góis
a046317b93
chore: add Enterprise Edge group hosting badges (#11089)
https://linear.app/unleash/issue/2-4059/add-enterprise-edge-instance-markers-for-hosted-and-self-hosted

Adds Enterprise Edge group hosting badges.

These are calculated based on the hosting value of their instances and
can be one of:

 - **Cloud**: Every instance in this group is a cloud instance;
- **Self-hosted**: Every instance in this group is a self-hosted
instance;
- **Hybrid**: Every instance in this group is either a cloud or
self-hosted instance;
 - **Unknown**: None of the above;

<img width="1250" height="479" alt="image"
src="https://github.com/user-attachments/assets/dfa69fec-e8f4-4f15-a036-157500f1dabc"
/>
2025-12-04 16:15:21 +00:00
Mateusz Kwasniewski
0cf2bd8b97
refactor: pass feature to safeguard form (#11088) 2025-12-04 15:12:22 +01:00
Mateusz Kwasniewski
8491d34f2d
feat: mini charts for safeguards (#11082) 2025-12-04 12:21:00 +01:00
Melinda Fekete
54bdb218e7
docs: URL and image cleanup (#10840) 2025-12-04 11:48:21 +01:00
unleash-bot[bot]
dc4e7e23a3
chore(AI): edgeObservability flag cleanup (#11079)
This PR cleans up the edgeObservability flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #11078

## 🧹 AI Flag Cleanup Summary
This pull request removes the `edgeObservability` feature flag and
integrates
its functionality into the codebase permanently. The feature has been
kept, so
all related components and logic are now always enabled.
### 🚮 Removed
- **Flag definitions**:
- `edgeObservability` flag from `UiFlags` interface
(`frontend/src/interfaces/uiConfig.ts`).
- `edgeObservability` flag from `IFlagKey` and the `flags` object
(`src/lib/types/experimental.ts`).
- **Conditional logic**:
- `useUiFlag('edgeObservability')` calls and related conditional
rendering
logic in
`frontend/src/hooks/api/getters/useConnectedEdges/useConnectedEdges.ts`
and `frontend/src/component/admin/network/Network.tsx`.
- The `flag: 'edgeObservability'` property from the route definition in
`frontend/src/component/admin/adminRoutes.ts`.
### 🛠 Kept
- **Feature functionality**:
- The "Connected edges" page and its corresponding navigation tab are
now
permanently available in the admin network section, controlled only by
other
flags like `enterpriseEdgeUI`.
- The `useConnectedEdges` hook now unconditionally fetches data.
### 📝 Why
The `edgeObservability` feature flag has been marked as completed with
its
feature kept. This cleanup removes the flag and its associated
conditional
logic, simplifying the code and making the feature a permanent part of
the
application, as per the desired outcome.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Nuno Góis <github@nunogois.com>
2025-12-04 10:00:19 +00:00