Skip to content

Upstream 14.03.26#75

Merged
Bruh-24 merged 159 commits into
Alliance-codeBase:masterfrom
Artemchik542:upstream-4
Mar 14, 2026
Merged

Upstream 14.03.26#75
Bruh-24 merged 159 commits into
Alliance-codeBase:masterfrom
Artemchik542:upstream-4

Conversation

@Artemchik542

Copy link
Copy Markdown
Contributor

Попутно починил вампов, а именно фразы клана Малкавианов и подтянул последние фиксы с Фульпов
изображение

dependabot Bot and others added 30 commits February 27, 2026 18:15
Bumps
[actions/download-artifact](https://github.com/actions/download-artifact)
from 7 to 8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.0</h2>
<h2>v8 - What's new</h2>
<h3>Direct downloads</h3>
<p>To support direct uploads in <code>actions/upload-artifact</code>,
the action will no longer attempt to unzip all downloaded files.
Instead, the action checks the <code>Content-Type</code> header ahead of
unzipping and skips non-zipped files. Callers wishing to download a
zipped file as-is can also set the new <code>skip-decompress</code>
parameter to <code>false</code>.</p>
<h3>Enforced checks (breaking)</h3>
<p>A previous release introduced digest checks on the download. If a
download hash didn't match the expected hash from the server, the action
would log a warning. Callers can now configure the behavior on mismatch
with the <code>digest-mismatch</code> parameter. To be secure by
default, we are now defaulting the behavior to <code>error</code> which
will fail the workflow run.</p>
<h3>ESM</h3>
<p>To support new versions of the @actions/* packages, we've upgraded
the package to ESM.</p>
<h2>What's Changed</h2>
<ul>
<li>Don't attempt to un-zip non-zipped downloads by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/460">actions/download-artifact#460</a></li>
<li>Add a setting to specify what to do on hash mismatch and default it
to <code>error</code> by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/download-artifact/pull/461">actions/download-artifact#461</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v7...v8.0.0">https://github.com/actions/download-artifact/compare/v7...v8.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3"><code>70fc10c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/461">#461</a>
from actions/danwkennedy/digest-mismatch-behavior</li>
<li><a
href="https://github.com/actions/download-artifact/commit/f258da9a506b755b84a09a531814700b86ccfc62"><code>f258da9</code></a>
Add change docs</li>
<li><a
href="https://github.com/actions/download-artifact/commit/ccc058e5fbb0bb2352213eaec3491e117cbc4a5c"><code>ccc058e</code></a>
Fix linting issues</li>
<li><a
href="https://github.com/actions/download-artifact/commit/bd7976ba57ecea96e6f3df575eb922d11a12a9fd"><code>bd7976b</code></a>
Add a setting to specify what to do on hash mismatch and default it to
<code>error</code></li>
<li><a
href="https://github.com/actions/download-artifact/commit/ac21fcf45e0aaee541c0f7030558bdad38d77d6c"><code>ac21fcf</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/460">#460</a>
from actions/danwkennedy/download-no-unzip</li>
<li><a
href="https://github.com/actions/download-artifact/commit/15999bff51058bc7c19b50ebbba518eaef7c26c0"><code>15999bf</code></a>
Add note about package bumps</li>
<li><a
href="https://github.com/actions/download-artifact/commit/974686ed5098c7f9c9289ec946b9058e496a2561"><code>974686e</code></a>
Bump the version to <code>v8</code> and add release notes</li>
<li><a
href="https://github.com/actions/download-artifact/commit/fbe48b1d2756394be4cd4358ed3bc1343b330e75"><code>fbe48b1</code></a>
Update test names to make it clearer what they do</li>
<li><a
href="https://github.com/actions/download-artifact/commit/96bf374a614d4360e225874c3efd6893a3f285e7"><code>96bf374</code></a>
One more test fix</li>
<li><a
href="https://github.com/actions/download-artifact/commit/b8c4819ef592cbe04fd93534534b38f853864332"><code>b8c4819</code></a>
Fix skip decompress test</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/download-artifact/compare/v7...v8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=7&new-version=8)](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 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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[actions/upload-artifact](https://github.com/actions/upload-artifact)
from 6 to 7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>v7 What's new</h2>
<h3>Direct Uploads</h3>
<p>Adds support for uploading single files directly (unzipped). Callers
can set the new <code>archive</code> parameter to <code>false</code> to
skip zipping the file during upload. Right now, we only support single
files. The action will fail if the glob passed resolves to multiple
files. The <code>name</code> parameter is also ignored with this
setting. Instead, the name of the artifact will be the name of the
uploaded file.</p>
<h3>ESM</h3>
<p>To support new versions of the <code>@actions/*</code> packages,
we've upgraded the package to ESM.</p>
<h2>What's Changed</h2>
<ul>
<li>Add proxy integration test by <a
href="https://github.com/Link"><code>@​Link</code></a>- in <a
href="https://redirect.github.com/actions/upload-artifact/pull/754">actions/upload-artifact#754</a></li>
<li>Upgrade the module to ESM and bump dependencies by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/upload-artifact/pull/762">actions/upload-artifact#762</a></li>
<li>Support direct file uploads by <a
href="https://github.com/danwkennedy"><code>@​danwkennedy</code></a> in
<a
href="https://redirect.github.com/actions/upload-artifact/pull/764">actions/upload-artifact#764</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Link"><code>@​Link</code></a>- made
their first contribution in <a
href="https://redirect.github.com/actions/upload-artifact/pull/754">actions/upload-artifact#754</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v6...v7.0.0">https://github.com/actions/upload-artifact/compare/v6...v7.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/upload-artifact/commit/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f"><code>bbbca2d</code></a>
Support direct file uploads (<a
href="https://redirect.github.com/actions/upload-artifact/issues/764">#764</a>)</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/589182c5a4cec8920b8c1bce3e2fab1c97a02296"><code>589182c</code></a>
Upgrade the module to ESM and bump dependencies (<a
href="https://redirect.github.com/actions/upload-artifact/issues/762">#762</a>)</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/47309c993abb98030a35d55ef7ff34b7fa1074b5"><code>47309c9</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/754">#754</a>
from actions/Link-/add-proxy-integration-tests</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/02a8460834e70dab0ce194c64360c59dc1475ef0"><code>02a8460</code></a>
Add proxy integration test</li>
<li>See full diff in <a
href="https://github.com/actions/upload-artifact/compare/v6...v7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/upload-artifact&package-manager=github_actions&previous-version=6&new-version=7)](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 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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## About The Pull Request
adds a quit button to ESC menu
## Why It's Good For The Game
~~you can now ragequit instead of ragealtf4~~
you cannot quit the game in fullscreen without alt+tab or alt+F4
## Changelog
:cl:
qol: you can now quit the game
/:cl:
…ough sheets (#95264)

## About The Pull Request
This will fix #95009. split_stack() calls qdel when the amount reaches
zero, and mats_per_unit is unset, so we shouldn't be accessing src for
materials logic here.

## Why It's Good For The Game
This will fix #95009.

## Changelog

:cl:
fix: Fixed materials not being applied when crafting with stacks if said
stack is zero'd in the process.
/:cl:
…269)

## About The Pull Request

I found out that the labeled event isn't triggered when an action does
the labeling. So I moved the behavior for announcing auto-staled PRs
into a new job in the staling workflow.

## Why It's Good For The Game

At least maintainers should be able to see that a PR has auto-staled if
the author themselves can't be bothered to ping them.

## Changelog

No player-facing changes.
## About The Pull Request

Implements what I wanted done in
tgstation/tgstation#95260 (comment)

Unfortunately I have no free time on weekdays to do anything

## Why It's Good For The Game

I don't like TGUI usage in the escape menu



https://github.com/user-attachments/assets/2e4d5e44-f68c-4689-9e7b-65df6a0c0001


## Changelog

:cl:
qol: Escape menu's quit button now brings you to a second page instead
of a TGUI panel.
/:cl:
…249)

## About The Pull Request

I haven't really seen anyone craft soul cores. I suspect this is in
large part due to the fact that learning the recipe requires an obscure
interaction. So I removed the need to learn the recipe and the
interaction through which it is learned. I also added the slapcrafting
element so people can get the idea that the crafting recipe exists in
the first place.

## Why It's Good For The Game

Looking back, I found the interaction to learn the soul core recipe to
be awful snowflakey. Sure, anyone can learn it with minimal effort, but
if nobody knows how to learn it, nobody's going to learn it, and if
nobody learns it, nobody's gonna craft it.

## Changelog

:cl:
qol: You no longer need to learn the recipe for the MOD soul core.
qol: You can slapcraft MOD soul cores using soul shards.
/:cl:
## About The Pull Request

Add an emissive overlay for the lights on emitters

## Why It's Good For The Game

<img width="285" height="218" alt="image"
src="https://github.com/user-attachments/assets/372f5b1b-61ed-4627-a189-577ec3aac264"
/>
<img width="275" height="234" alt="image"
src="https://github.com/user-attachments/assets/5959ac90-4856-427b-ab29-f1cbeb68422a"
/>


cool

## Changelog
:cl:
image: emitters glow in the dark now
/:cl:
## About The Pull Request

I was using the wrong context in the expressions for the announcement
job

## Why It's Good For The Game

While the real meat and potatoes of the autostale workflow still works,
we don't want the workflow showing up as failed.

## Changelog

No player-facing changes
## About The Pull Request

Port of Monkestation/Monkestation2.0#10142

self-explanatory, makes it so healium crystals actually update the turfs
atmos after "resetting" the air.

## Why It's Good For The Game

bugfix good

## Changelog
:cl:
fix: Healium crystals now properly update turf atmos.
/:cl:
## About The Pull Request

Splits the active icons for the HFR into overlays and makes them
emissive, cleans up the icon state code a little

## Why It's Good For The Game


![dreamseeker_XtbYgtzqQA](https://github.com/user-attachments/assets/cf649fc1-a548-463d-9202-4efe851434f8)
look at it go

## Changelog
:cl:
image: the HFR glows in the dark now
/:cl:
…t appearance at all (#95273)

## About The Pull Request

Port of Monkestation/Monkestation2.0#10634

simply makes it so updating a character preference that is unrelated to
character appearance won't regenerate/update the character preview, by
adding a `should_update_preview` var to `/datum/preference`.

## Why It's Good For The Game

Avoids wasting precious tick time on regenerating a whole-ass human and
equipping them when you're just changing your PDA ringtone or whatever.

## Changelog

No player-facing changes, as well, none of these affect appearance
anyways.
## About The Pull Request

just some micro-opts for `/obj/machinery/power/apc/proc/late_process`,
ported from Monkestation/Monkestation2.0#10529

firstly, i converted `if(!area || !area.requires_power)` to
`if(!area?.requires_power)`

secondly, when checking cell percentages, it called `cell.percent()`
repeatedly... instead of, y'know, just calling it once and setting it as
a var. i fixed that.

## Why It's Good For The Game

less proc overhead and less duplicate calls should be better

## Changelog
:cl:
code: Minor code optimizations for APC processing.
/:cl:
Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
…#94954)

## About The Pull Request

Converts species and antagonist icon generation to the batched
spritesheet system using IconForge, thanks to the new
`get_flat_uni_icon` implementation. Unfortunately the cost of *building*
the sprite is still expensive (GFI is always expensive, even a fancy
list-based one), but the generation is SIGNIFICANTLY faster. We will see
evidence of parity in the screenshot tests. but here:

<img width="892" height="634" alt="image"
src="https://github.com/user-attachments/assets/2a17f2e3-c024-41f6-9d1e-c2cb70642a81"
/>

The main advantage is that species and antag icons can now take
advantage of the development-time smart cache which invalidates
automatically. On the server this PR does very little except make antag
icon generation a little bit more likely to find and announce errors
(BYOND has a habit of silently eating weird icon proc calls).

Also optimizes the greyscale preview generator from #90940 (~2x speedup)
using `rustg_iconforge_generate_headless` instead of `Insert()` to build
the resulting sheets. This can be further optimized in the future by
implementing a smart cache, like batched spritesheets, and storing it in
the repo, but for now it's not important/slow enough to be worth the
effort. Also fixes a silent compilation error that would always happen
outside unit tests, but for some reason doesn't appear on local? Notice
how `map_icon_key` is not a defined variable anywhere. That's because
`USE_RUSTG_ICONFORGE_GAGS` is *never* defined at this point, so it was
always using the 'slow' generation.

I also took the liberty of cleaning up the cultist and heretic icon
generation randomly initializing a blade object when it could just use a
static access.

## Why It's Good For The Game

The subsystem timing may not be much faster, but the interactivity
benefits during spritesheet realization are undeniable. Opening the
preferences menu during init on local is orders of magnitude faster.

**Old**
Early Assets: 5.02 seconds
Greyscale Previews: 1.38 seconds

**Fresh (No Cache)**
Early Assets: 4.21 seconds
Greyscale Previews: 0.5 seconds

**Cache Invalidated**
Early Assets: 4.27 seconds

**Cache Hit**
Early Assets: 4.05~4.2 seconds

**Preferences lag:**
~6 sec to open to ~2 sec to open due to caching in dev

## Changelog

:cl:
code: Optimized species and antagonist icon loading in the preferences
menu on local, speeding up time to open in development.
fix: GAGS map preview generation no longer silently errors outside of
unit tests due to a compilation error.
/:cl:
Absolucy and others added 22 commits March 12, 2026 15:42
## About The Pull Request

There's a 1/500 chance that 1 pizza in a pizza crate will have 6u
Romerol (1u per slice). It otherwise looks like a normal pizza and comes
in a normal box.

## Why It's Good For The Game

Ok to start this probably isn't a good idea. This will only cause
problems.

But between the Nanomachine Pizza, the Bomb Pizza, the Anomalous Pizza,
and the Arnold pizza I have this funny idea in my head of pizza orders
just constantly go wrong in universe.

And the thought is, right, if you eat Romerol... nothing happens.......
immediately.
So the crew orders pizza for a pizza party and goes off on their day,
then 30 minutes later it turns out the entire cargo team has risen from
the dead after being killed in a welder bomb accident.

In the post-mortem they're looking through the leftover slices and they
find trace Romerol.

Maybe that's kinda funny? 

## Changelog

:cl: Melbert
add: Adds a 1/500 chance that the grain used to create a pizza in a
pizza crate was cursed by an evil lich.
/:cl:
## About The Pull Request

Adds some intercom templates based on some commonly mapped in var-edited
intercoms
- Interrogation
- AI private (AI upload)
- AI private (AI antechamber)
- AI private (AI chamber)
- Free range
- Free range (AI chamber)

Also adds some templates for the recently added
encryption-key-in-intercom mechanic
- Departmental intercoms

Doesn't map in any of these templates (yet) 

Also allows for radios to have locked keyslots in addition to locked
frequencies

## Why it's good for the game

Makes it a bit easier to map intercoms, particularly for event maps

## Changelog

:cl: Melbert
code: Radios can now have their keyslot locked, though no radios
currently have a keyslot lock. However, report any bugs with being
unable to emag, install, or remove radio keys.
/:cl:
## About The Pull Request

Since I'm trying to move away from the stat panel as part of my project
here - https://hackmd.io/443_dE5lRWeEAp9bjGcKYw?view - I thought the
reboot timer should be moved out before the stat panel could be made
optional, due to its importance to post-round players (especially to
know if the round is rebooted).

Once the round is over the whole screen kinda becomes pointless, so we
can take as much screen space as we can.

I put this under the tooltips, using similar behavior to it, like the
layer & outline.

This is inspired by the Goon roundend, which does pretty much 1:1 what
this is.

#### Goon's, for reference:

<img width="1397" height="787" alt="image"
src="https://github.com/user-attachments/assets/309b5d6e-c4dd-4f6f-8b83-2256eecd4569"
/>

#### Ours:



https://github.com/user-attachments/assets/b14efae2-e280-47e9-b3db-f57b2060cce7


It's also non-widescreen friendly


## Why It's Good For The Game

Moving things away from the stat panel and to being more player visible
is a positive IMO.
It's also a necessary step to taking away from reliance away from said
stat panel.

## Changelog

:cl:
add: The endround timer telling you when a reboot is happening has been
taken out of the stat panel and is instead text over your screen
(similar to Goon)
/:cl:
## About The Pull Request
- Fixes #95297

## Changelog
:cl:
fix: plumbing pill press won't store reagents & products if the total
capacity for both is reached thus stopping faulty product creation
(imbalanced reagent ratios) and power consumption
/:cl:
## About The Pull Request

An easy point for https://hackmd.io/443_dE5lRWeEAp9bjGcKYw?view

Status bar is now a preference instead of a verb in OOC.

I thought I would have to make a migration for this but then I found out
this is straight up just a client verb and doesn't persist through
rounds, so I'm adding that too ig.

## Why It's Good For The Game

This is literally just a pref but as a verb for some reason.

## Changelog

:cl:
qol: The Status bar is now a preference instead of a verb in the OOC
tab, which means you can permanently turn it off if you're not a fan (or
use tooltips instead)
/:cl:
…CROBE MAINTPILLS!!) (#95320)

## About The Pull Request
Refactors random reagent spawning to be divided into bitflags. This mean
you can now decide from which random sources a reagent is allowed to
spawn. Rejoice, now maintenance pills can have fun reagents without
having to deal with the balance implications of a botanist producing
1000u of it!

**SO NOW MAINTPILLS CAN HAVE CYBORG NANITES AND XENOMORPH MICROBES!!
REJOICE, MY ABOMINATIONS!!!**

Code stuff:
CAN_SYNTH is now only for copying reagents, which is what it was
originally intended for. A new randomized_spawns var has been added to
reagents that decided where it can spawn.

I've also changed some unsanitary reagent spawners to obey the spawn
flags. This was the beebox kit (which could spawn literally every
reagent in the game, including adminordrazine) and traitor bees, which
now can't spawn the two spider toxins and gatfruit toxin (why do we even
have gatfruit toxin?? shit does nothing).

Balance overview:
- Beeboxes no longer spawn everything
- Traitor bees no longer spawn venom, viper venom and gatfruit toxin
- Maintenance pills now spawn cyborg nanites and xenomorph microbes

When I say maintpills, I mean REAL maintpills. The ones of which only a
few spawn per round in maintenance, and not the fake ones that feature
creepers added to cargo, blackmarket and that got mapped in

## Why It's Good For The Game
We're limited to which reagents we can spawn randomly because sources
like strange seeds, geysers and fake maintpills are infinitely
reproducible, and can be used to get an infinite amount of every random
spawnable reagent in every round (to be fair this is quite labor
intensive, but never underestimate autism).

Only about 3-6 maintenance pills spawn per round and there's about 700
spawnable reagents. There's simply no way to force the odds to get the
reagent you want. I think the crew can have a little maintxenomicrobes
and a little maintpill borgnanites

As to why these two specifically: 
borgnanites are already only randomly obtainable, are cured easily and
the effects of it are just one more cyborg player. It's a fun story, and
not particularly disruptive to the round
Xenomicrobes are admin only, so I would not be lessening any other
features. Otherwise it's pretty much gonna cause an incident in-game
when this happens, but who cares!!!
I can make maintpills secretely reroll if the reagents are extracted
instead of eaten to keep these always contained to the person eating
them, but our playerbase so prefers eating over grinding that I think
it's fine

I have not included inverse reagents, blob spores etc because I respect
them as their own features. I would however like to add some new, wacky
maintpill reagents that can lead to some fun stories.

## Changelog
:cl:
fix: Fixes beebox and traitor bees not obeying the reagent blacklist
balance: Maintenance pills (the achievement variety that only spawns in
maint) can now generate with xenomorph microbes and cyborg nanites
/:cl:

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
@Bruh-24 Bruh-24 merged commit 398aab8 into Alliance-codeBase:master Mar 14, 2026
20 of 47 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.