1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-09-01 13:47:27 +02:00
Commit Graph

14270 Commits

Author SHA1 Message Date
Nuno Góis
0035f18370
chore: allows you to add a flag from the unknown flags list (#10569)
https://linear.app/unleash/issue/2-3826/allow-you-to-create-the-flag-from-the-unknown-flags-list

Allows you to add a flag from the unknown flags list.

<img width="1515" height="896" alt="image"
src="https://github.com/user-attachments/assets/4dc20639-9bdb-457d-aef3-9df74fb9566c"
/>

<img width="1391" height="662" alt="image"
src="https://github.com/user-attachments/assets/c6531b62-3379-4bf9-b6a8-4da3a3cc8340"
/>
2025-08-29 12:19:28 +01:00
Thomas Heartman
718a731d2f
fix: Show 100% instead of Infinity% if you've not created any flags (#10575)
JS gives you positive infinity if you divide a positive number by 0,
which isn't very helpful here. Instead, let's show 100%. If you divide 0
by 0, then you get NaN, which we also need to handle explicitly because
it doesn't work with math.min.

Before:
<img width="472" height="273" alt="image"
src="https://github.com/user-attachments/assets/006ba5c1-4783-4794-b876-f64085937258"
/>

<img width="1365" height="484" alt="image"
src="https://github.com/user-attachments/assets/beec7e18-758c-49eb-97c8-febe6cb63119"
/>


After:
<img width="388" height="252" alt="image"
src="https://github.com/user-attachments/assets/bc326c25-ee63-4055-a765-a6016b51e35a"
/>
<img width="1365" height="488" alt="image"
src="https://github.com/user-attachments/assets/eaafc5c3-79d6-49a3-b1f2-cd42c5d16dae"
/>


Fixes 1-4033.
2025-08-29 09:31:13 +00:00
Mateusz Kwasniewski
924325f623
feat: make impact metrics config save call (#10576) 2025-08-29 11:26:11 +02:00
Nuno Góis
e7b757d7e1
chore: unknown flags should not include flags that exist in Unleash (#10568)
https://linear.app/unleash/issue/2-3825/fetching-unknown-flags-should-not-include-flags-that-currently-exist

Fetching unknown flags should not include flags that currently exist in
Unleash.

This is especially noticeable if you create a flag with an unknown
flag's name, since it won't go away from the list right away.
2025-08-29 10:20:43 +01:00
David Leek
31a924dd4b
chore: rollback hashing of release-plans and templates (#10574)
Rolls back hashing of the newly added releasePlans and releaseTemplates
fields
2025-08-29 11:19:20 +02:00
Mateusz Kwasniewski
c36d1554c7
chore: orval with impact metrics (#10573) 2025-08-29 09:23:38 +02:00
unleash-bot[bot]
af28fb110d
chore(AI): filterFlagsToArchive flag cleanup (#10565)
---------

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-08-29 08:44:28 +02:00
Gastón Fournier
091aa2e8e9
chore: improve openapi diff output (#10570)
This will output the comment of openapi diffs in proper markdown format.
2025-08-28 18:15:18 -03:00
Melinda Fekete
8364498c22
docs: add feature and versioning info (#10547) 2025-08-28 17:51:52 +02:00
Nuno Góis
4c5b869140
chore: show release templates in license info in the UI (#10563)
https://linear.app/unleash/issue/2-3823/show-release-templates-in-license-info-in-ui

Shows release templates in license info in the UI.

<img width="1173" height="687" alt="image"
src="https://github.com/user-attachments/assets/b93cb510-282d-4027-bd39-2269ec138cc6"
/>
2025-08-28 15:23:48 +01:00
Thomas Heartman
709a890bd8
fix: incorrect current calculation of ratio (#10567)
Looks like the sinner was looking at the last entry of each data list,
when they are sorted by most recent first.
2025-08-28 15:53:25 +02:00
Thomas Heartman
016d269675
Chore: Use step size of 1 for created vs archived. (#10566)
You can't archive half a flag.

Closes 1-4034.
2025-08-28 15:53:04 +02:00
unleash-bot[bot]
3e4edfbfa9
chore(AI): etagByEnv flag cleanup (#10560)
This PR cleans up the etagByEnv flag. These changes were automatically
generated by AI and should be reviewed carefully.

Fixes #10556

## 🧹 AI Flag Cleanup Summary
This change removes the `etagByEnv` feature flag and makes its
functionality
permanent. This modifies the ETag generation for client API requests to
be
environment-specific, improving caching efficiency. The cleanup involved
removing the flag definition, updating the controller logic to
permanently use
the environment-specific ETag calculation, and refactoring the
corresponding E2E
tests to only cover the enabled behavior.
### 🚮 Removed
- **Flag Definition**
- The `etagByEnv` flag from `IFlagKey` in
`src/lib/types/experimental.ts`.
- **Conditional Logic**
- The check for the `etagByEnv` flag in `calculateMeta` method in

`src/lib/features/client-feature-toggles/client-feature-toggle.controller.ts`.
- **Tests**
- Test cases in `src/test/e2e/api/client/feature.optimal304.e2e.test.ts`
that
covered the disabled state of the `etagByEnv` flag.
### 🛠 Kept
- **Environment-Specific ETags**
- The behavior of generating environment-specific ETags is now the
default and
only behavior.
- **Tests**
- E2E tests verifying the functionality of environment-specific ETags
have
been retained and simplified.
### 📝 Why
The `etagByEnv` feature has been successfully rolled out and validated.
By
removing the feature flag and associated conditional logic, we simplify
the
codebase, reduce complexity, and make it easier to maintain. This change
makes
the improved ETag generation strategy a permanent part of the system.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2025-08-28 10:41:04 -03:00
Thomas Heartman
b071b17dd6
Fix: created vs archived rendering errors; memoize options (#10562)
Fixes the rendering / max update depth exceeded errors we were seeing in
the console for this chart by memoizing the options.

<img width="1710" height="1420" alt="image"
src="https://github.com/user-attachments/assets/9a24d4e5-b563-4a3c-9a76-915e0a5fda24"
/>

Now the chart doesn't throw any errors anymore.
2025-08-28 14:48:53 +02:00
David Leek
7fb523e348
chore: add release plans/templates count to instance stats (#10540) 2025-08-28 14:44:24 +02:00
Github Actions Bot
e355506bb9 7.1.2 2025-08-28 12:11:41 +00:00
Github Actions Bot
baa0859445 docs: Update CHANGELOG.md 2025-08-28 12:11:31 +00:00
Gastón Fournier
3b467238a5
fix: backend tokens mapped to client tokens (#10561)
Edge does not support backend token type, so until then, we need to keep
returning backend token type as if they're client token types.
2025-08-28 13:57:03 +02:00
unleash-bot[bot]
fa7857dff1
chore(AI): debugEtag flag cleanup (#10558)
This PR cleans up the debugEtag flag. These changes were automatically
generated by AI and should be reviewed carefully.

Fixes #10557

## 🧹 AI Flag Cleanup Summary
This removes the `debugEtag` feature flag from the codebase. This flag
was used
to enable additional logging for debugging ETag generation for the
client
features endpoint.
### 🚮 Removed
- **Flag Definition**
- The `debugEtag` flag from the `IFlagKey` type in
`src/lib/types/experimental.ts`.
- **Conditional Logging**
- Removed logging statements guarded by the `debugEtag` flag in
`client-feature-toggle.controller.ts` and
`configuration-revision-service.ts`.
### 🛠 Kept
- **Default Behavior**
- The existing code paths for when the flag was disabled, which is now
the
only behavior.
### 📝 Why
The `debugEtag` flag was marked as completed with the outcome
"discarded". The
debugging functionality it provided is no longer needed. This change
removes the
dead code associated with the flag, simplifying the codebase.

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
2025-08-28 07:54:38 -03:00
Jaanus Sellin
b8521121a1
fix: feature link should return same id as it sends to db (#10553)
During feature link creation, we should return same id as it sends to
db.
2025-08-28 11:43:46 +03:00
Thomas Heartman
9eb872de82
Show tooltip on group instead of single graph bar (#10546)
The tooltip should show you the ratio of the group and the numbers for
both archived and created.

The tooltip's position is averaged between all the bars in the group.

<img width="335" height="262" alt="image"
src="https://github.com/user-attachments/assets/d62a4bdc-ba07-4eea-8cbf-6e42793804b2"
/>


This still throws the same errors as before. Not sure exactly what's
going on with the custom tooltip, but I'll investigate it in a
follow-up.

Closes 1-4017.
2025-08-28 10:26:46 +02:00
Gastón Fournier
8ba36ee9a2
fix: consider both client and backend token types from the DB (#10552)
## About the changes
In the previous fix: https://github.com/Unleash/unleash/pull/10543, we
made sure client token types were displayed in the UI. Here, we're also
making sure that the Backend token types are displayed as well.

1. A test validates that if a backend token exists in the db it will be
returned in the API response.
2. The UI has been adapted to also consider backend token types
2025-08-28 04:02:56 -03:00
Fredrik Strand Oseberg
8da040b89a
Fix/website performance (#10489) 2025-08-27 15:54:32 +02:00
Mateusz Kwasniewski
64eaf21928
feat: add impact metrics flag modal (#10550) 2025-08-27 15:28:03 +02:00
Mateusz Kwasniewski
32392f201f
feat: add feature impact metrics initial area (#10548) 2025-08-27 13:24:41 +02:00
Mateusz Kwasniewski
a28f38e06a
feat: exposure metrics header (#10545) 2025-08-27 11:27:26 +02:00
Github Actions Bot
9c9f944380 7.1.1 2025-08-26 16:59:58 +00:00
Github Actions Bot
b07023ff2f docs: Update CHANGELOG.md 2025-08-26 16:59:48 +00:00
Nuno Góis
7c4bada7a7
chore: disable browser autocomplete on commandbar (#10544)
https://linear.app/unleash/issue/2-3819/disable-browser-autocomplete-on-our-command-bar

Disables browser autocomplete on our CommandBar:

### Before

<img width="424" height="352" alt="image"
src="https://github.com/user-attachments/assets/597bbb9f-6391-4bb9-9f80-4fa80cb5c00c"
/>

### After

<img width="421" height="351" alt="image"
src="https://github.com/user-attachments/assets/ef5409b2-5cfd-4780-b33c-63a8f740feda"
/>
2025-08-26 17:55:50 +01:00
Gastón Fournier
8cb11f69df
fix: permissions should allow to access client token types (#10543)
Internally token types are still identified as CLIENT, therefore when we
filter the ones we're allowed to see, we should still consider them as
CLIENT tokens not BACKEND tokens. This is internal until we can fully
remove CLIENT with the next major.
2025-08-26 13:33:21 -03:00
Gastón Fournier
750a32f0e9
chore: Etag log and code improvements (#10542)
This is a follow-up on the comments in
https://github.com/Unleash/unleash/pull/10512

Mostly using get and set when accessing the Map
2025-08-26 13:21:37 -03:00
Nuno Góis
d11e8b2c81
chore: UX adjustments in new unknown flag table headers (#10535)
https://linear.app/unleash/issue/2-3816/further-ux-adjustments-to-new-table-headers

Smaller UX adjustments to the new unknown flag table headers.
2025-08-26 16:21:43 +01:00
Mateusz Kwasniewski
b2d296138e
chore: bump node sdk with sse end event (#10541) 2025-08-26 16:08:28 +02:00
unleash-bot[bot]
0792125bb7
chore(AI): releasePlans flag cleanup (#10537)
This PR cleans up the releasePlans flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #10536

## 🧹 AI Flag Cleanup Summary
The `releasePlans` feature flag has been removed, making the feature
permanently
available for Enterprise customers. All conditional logic and checks
related to
this flag have been removed from the codebase.
This change ensures that Release Plans are an integral part of the
Unleash
Enterprise offering.
### 🚮 Removed
- **Flag Definitions**
- `releasePlans` flag from `experimental.ts` in the backend.
- `releasePlans` flag from `uiConfig.ts` in the frontend.
- `releasePlans` flag from `server-dev.ts` development config.
- **Conditional Logic**
- Removed checks for `releasePlansEnabled` in components and hooks,
including
`ReleaseManagement.tsx`, `FeatureStrategyMenu.tsx`, and
`NewInUnleash.tsx`.
- Removed `useUiFlag('releasePlans')` calls from all frontend files.
- Removed the `flag: 'releasePlans'` property from route definitions in
`routes.ts`.
### 🛠 Kept
- **Feature Functionality**
- All UI and logic related to Release Plans and Release Templates are
now
unconditionally enabled for Enterprise users.
### 📝 Why
The `releasePlans` feature has been successfully rolled out and is now a
stable
part of the product. This cleanup removes the artık feature flag to
simplify the
codebase and reduce complexity.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Nuno Góis <github@nunogois.com>
2025-08-26 14:48:19 +01:00
Mateusz Kwasniewski
f375ae4694
fix: pagination limit and placeholder (#10533) 2025-08-26 14:39:03 +02:00
Gastón Fournier
ac11af8c05
chore: add some debug statements controlled by a flag (#10532)
## About the changes
Add some **info** logs prefixed with `[etag]` so que can control them
and with this investigate the increase in traffic after the new etag
implementation.
2025-08-25 11:26:36 -03:00
Thomas Heartman
0cd64780fa
Simplify created numbers (don't show count by flag type) and update colors (#10531)
Simplifies the data we show for the archive vs creation chart by not
showing the created count by flag type. Instead, all we show is the
total.

Also, in doing this, updates the colors we use for the bars (to A1, and
A2). The contrast is a little low between A1 and A2, so we should look
at that before taking this into production.

The created tooltip colors are wrong, but we'll need to update the
tooltip in a later PR, so not tackling that now.

Before:
<img width="1115" height="456" alt="image"
src="https://github.com/user-attachments/assets/13626295-1aa5-42be-b8dd-cea9912effe0"
/>
<img width="564" height="311" alt="image"
src="https://github.com/user-attachments/assets/7a02eec0-e018-49fd-8b1f-92aa3376a6cc"
/>



After: 
<img width="1179" height="481" alt="image"
src="https://github.com/user-attachments/assets/1ba6584a-d7e2-4ae4-81ec-38260c1f0e07"
/>

<img width="420" height="159" alt="image"
src="https://github.com/user-attachments/assets/e4433c32-eaa4-41d2-a5ef-af84a9725c30"
/>

Closes 1-4018, 1-4013, 1-4014
2025-08-25 16:09:44 +02:00
Thomas Heartman
434ed4cf63
adjust chart color names so that they all have numbers (#10530)
This makes it easier to add more variation of each of the non-A colors
later too.
2025-08-25 14:31:24 +02:00
Thomas Heartman
0223437f49
Remove ratio graph & column to the right (#10529)
This PR removes the flags archived / flags created trend line as well as
the right-hand column.

Before:
<img width="1107" height="459" alt="image"
src="https://github.com/user-attachments/assets/f6bcbef0-7b71-44c1-b8a0-db5ebaff01ed"
/>


After:
<img width="1128" height="450" alt="image"
src="https://github.com/user-attachments/assets/e55bd335-cc8c-4b88-8e3c-dafecf134742"
/>

I'm not deleting the tooltip yet, because I think we'll want to re-use
that for the group tooltip.
2025-08-25 14:27:07 +02:00
Thomas Heartman
2ee92d8c78
Use new chart colors for current lifecycle stage. (#10528)
Takes the green from the current lifecycle charts and replaces it with
charts.A2. Also stabilizes the colors between the dark and light.
2025-08-25 11:44:21 +02:00
unleash-bot[bot]
8ddeed09fb
chore(AI): projectListViewToggle flag cleanup (#10527)
This PR cleans up the projectListViewToggle flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #10526

## 🧹 AI Flag Cleanup Summary
This change removes the `projectListViewToggle` feature flag and
hardcodes its
behavior. The feature, which allows toggling between card and list views
for
projects, is now permanently enabled.
### 🚮 Removed
- **Flag Definitions**
- Removed `projectListViewToggle` from `src/server-dev.ts`,
`src/lib/types/experimental.ts`, and
`frontend/src/interfaces/uiConfig.ts`.
- **Hooks & Conditionals**
- Removed `useUiFlag('projectListViewToggle')` calls from
`ProjectGroup.tsx`
and `ProjectList.tsx`.
- Removed conditional rendering logic based on the flag in
`ProjectGroup.tsx`
and `ProjectList.tsx`.
### 🛠 Kept
- **Project List View**
- The project list view functionality is now always available for
non-OSS
versions of Unleash.
- The `ProjectsListViewToggle` component is now always rendered when not
in an
OSS environment.
### 📝 Why
The `projectListViewToggle` feature flag was marked as completed and its
intended outcome was to be kept. The code has been updated to reflect
this by
removing the flag and making the feature a permanent part of the
application.
This simplifies the codebase by removing dead code paths and feature
flag
checks.

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
2025-08-25 09:01:59 +01:00
renovate[bot]
51b8f969a5
chore(deps): update dorny/test-reporter action to v2 (#9576) 2025-08-22 16:14:23 +00:00
renovate[bot]
2596d2ca19
chore(deps): update dependency @fast-check/vitest to v0.2.2 (#10524)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[@fast-check/vitest](https://redirect.github.com/dubzzz/fast-check/tree/main/packages/vitest#readme)
([source](https://redirect.github.com/dubzzz/fast-check/tree/HEAD/packages/vitest))
| [`0.2.1` ->
`0.2.2`](https://renovatebot.com/diffs/npm/@fast-check%2fvitest/0.2.1/0.2.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@fast-check%2fvitest/0.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@fast-check%2fvitest/0.2.1/0.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>dubzzz/fast-check (@&#8203;fast-check/vitest)</summary>

###
[`v0.2.2`](https://redirect.github.com/dubzzz/fast-check/blob/HEAD/packages/vitest/CHANGELOG.md#022)

*Better integration with Vitest when using fast-check v3*

\[[Code](https://redirect.github.com/dubzzz/fast-check/tree/vitest%2Fv0.2.2)]\[[Diff](https://redirect.github.com/dubzzz/fast-check/compare/vitest%2Fv0.2.1...vitest%2Fv0.2.2)]

#### Fixes

- ([PR#6048](https://redirect.github.com/dubzzz/fast-check/pull/6048))
Bug: No shallow diff in Vitest, full diff by default

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 16:06:58 +00:00
Gastón Fournier
9e76b2c40a
docs: some details spotted to align with new token types (#10523)
## About the changes
Few places where we can use Backend token instead of CLIENT.
2025-08-22 10:47:32 -03:00
Gastón Fournier
7ea0c9ca9b
feat: support different etags per environment (#10512)
## About the changes
This PR introduces environment-specific etags. This way clients will not
react by updating features when there are changes in environments the
SDK doesn't care about.

## Details
There's a bit of scouting work (please don't make me split this 🙏)
and other details are in comments, but the most relevant for the lazy
ones:
- Important **decision** on how we detect changes, unifying polling and
delta:
https://github.com/Unleash/unleash/pull/10512#discussion_r2285677129
- **Decision** on how we update revision id per environment:
https://github.com/Unleash/unleash/pull/10512#discussion_r2291888401
- and how we do initial fetch on the read path:
https://github.com/Unleash/unleash/pull/10512#discussion_r2291884777
- The singleton pattern that gave me **nightmares**:
https://github.com/Unleash/unleash/pull/10512#discussion_r2291848934
- **Do we still have ALL_ENVS tokens?**
https://github.com/Unleash/unleash/pull/10512#discussion_r2291913249

## Feature flag
To control the rollout introduced `etagByEnv` feature:
[0da567d](0da567dd9b)
2025-08-22 10:35:17 -03:00
Nuno Góis
885d3e1817
chore: implement unknown flags UX feedback (#10519)
https://linear.app/unleash/issue/2-3809/implement-the-latest-feedback-from-ux

Implements the latest feedback from UX regarding **unknown flags**.

Bit unsure about our column headers. E.g. instead of "Last seen" and
"Seen in Unleash" we could call them "Reported" and "Last event".

<img width="1490" height="838" alt="image"
src="https://github.com/user-attachments/assets/30ca2570-1395-429f-8d60-ccc6fe83ba92"
/>
2025-08-22 14:04:01 +01:00
Thomas Heartman
d76b676fb8
Add chart colors to colors definitions (#10521)
Adds new chart colors to the theme definitions: A1 through A5, and B
through E.
2025-08-22 14:56:41 +02:00
Thomas Heartman
9d18b0022b
Delete legacy insights charts components and remove unused colors (#10522)
Deletes the legacy insights charts component (which should have been
removed with the flag earlier this week), and also removes the colors
associated with charts that we no longer have.
2025-08-22 12:46:56 +02:00
Thomas Heartman
b321bfba99
Add .vite to biome's ignore lists (formatting and linting) (#10518)
Also fixes an auto-fixable issue reported by biome.
2025-08-22 07:36:56 +00:00
unleash-bot[bot]
18bea25383
chore(AI): paygInstanceStatsEvents flag cleanup (#10510)
This PR cleans up the paygInstanceStatsEvents flag. These changes were
automatically generated by AI and should be reviewed carefully.

Fixes #10507



🧹 AI Flag Cleanup Summary

This change removes the paygInstanceStatsEvents feature flag. The
changes
involve removing its definition from the codebase.

⚠️ No conditional logic for paygInstanceStatsEvents was found in the
provided
files. The logic may exist in another repository, and this change only
removes
the flag's definition.

🚮 Removed

• Configuration
• Removed paygInstanceStatsEvents flag definition from
src/lib/types/experimental.ts.
• Changelog
• Added an entry for the flag cleanup under a new [Unreleased] section
in
CHANGELOG.md.

📝 Why

The paygInstanceStatsEvents feature flag was marked as completed with
the
outcome "kept". This cleanup removes the flag's definition, following
our
standard process for retiring feature flags.

---------

Co-authored-by: unleash-bot <194219037+unleash-bot[bot]@users.noreply.github.com>
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2025-08-21 13:14:19 +00:00