#👾-core-development

1 messages · Page 272 of 1

odd heath
#

tbh we should prolly just filter out other options as a whole

#

amazing pr description

limber skiff
#

this isn't a fix

#

you didnt fix the issue, you just made it never possible to happen

odd heath
#

It's the cleanest way to bla

#

I'll happily take suggestions on what to do instead

limber skiff
#

find out why they appear duplicated

odd heath
#

Because the other option thing goes through three times with different items and one of them is completely dead

#

It adds three menu items with the same label and different children

#

Which makes discord shit itself

limber skiff
#

i dont get it

odd heath
#

WrapMap gets "other options" three times with different children each time
It proceeds to add each "other option" as label into the context menu, with the children
Discord gets confused when you hover over one of them and displays all three at once because they have the same label but only allow you to select the one that gets added first

All of these are just the settings without a category, so changelog and merch, developer education and logout

I assume it just does it three times because those specific settings are all in a different place in the entire list of settings

#

But all of these are essentially useless to have in the context menu so imo it's just the easiest to hide them

charred monolithBOT
#

:~$ sh -c "$(curl -sS https://raw.githubusercontent.com/Vendicated/VencordInstaller/main/install.sh)"
Downloading Installer...
Running with sudo
✔ Install Vencord
✔ Stable - /var/lib/flatpak/app/com.discordapp.Discord/current/active/files/discord
INFO Patching /var/lib/flatpak/app/com.discordapp.Discord/current/active/files/discord...
INFO Successfully patched /var/lib/flatpak/app/com.discordapp.Discord/current/active/files/discord
✔ Success!

I freshly reinstalled Discord from Flathub befo...

grizzled halo
#

New settings ui makes it so vencord settings cant be accessed (doesnt show up)

In case you don’t already know

fossil inlet
#

@austere talon guhhh new settings experiment

#

idk rollout but i don't have it

austere talon
#

oh my god wtf is this

#

discord has to be deliberately breaking vencord atp

#

they keep pushing breaking changes

limber skiff
#

dev://experiment/2025-09-user-settings-redesign-1

#

dev://experiment/2025-09-user-settings-redesign-2a

limber skiff
idle fossil
#

virus

gritty iris
#

"Nookies Cookies Store"

austere talon
limber skiff
#

not sure

#

it didnt seem to do anything

#

but i didn't look into the code

austere talon
#

are u gonna fix

#

or should I look into it

limber skiff
#

ill look into it later if u dont

charred monolithBOT
jagged cloak
#

close enough welcome back discord settings modal

charred monolithBOT
odd heath
#

what the a ctual fuck is that sshit this is so horrendous no

#

kys discord

#

get rid of that experiment

charred monolithBOT
limber skiff
#

building the sections of the new settings is much more annoying

#

discord bring back the simple array with string identifiers for sections 💔

charred monolithBOT
charred monolithBOT
dusk blaze
#

is this still needed even

turbid hatch
#

it has advantages but its not a necessity

#

it would just be nice

#

it would work a treat for my translation pr for instance because we can ship translations in a separate asar file, and then just update them separately

#

rather than them being baked into the mod and having to wait for a new version when someone inevitably puts a typo in

gritty iris
grave mangoBOT
fossil inlet
gritty iris
#

was wondering because old has it lol

fossil inlet
#

@olive aurora hop off codeburger

#

so bad

austere talon
#

riniware

olive aurora
fossil inlet
#

move the repo

olive aurora
#

it ends with a */ without space

charred monolithBOT
charred monolithBOT
charred monolithBOT
dusk blaze
#

yay now i can listen to Talk Tuah with Haliey Welch with my bestie

austere talon
austere talon
#

vtest dev3

nimble pendantBOT
austere talon
#

are they just gonna revert permanently

charred monolithBOT
austere talon
#

bleh yeah

charred monolithBOT
#

Pull Request Overview

This PR refactors plugin access to eliminate circular dependencies and consolidates helper utilities.

  • Centralizes plugin controls in a new API module (@api/PluginManager), replacing non-import global access (Vencord.Plugins.*).
  • Moves copyWithToast from @utils/misc to @utils/discord and updates call sites.
  • Initializes plugin manager before startup and updates exports/imports accordingly.

Reviewed Changes

Copilot reviewed 35 out of 35 changed files in this ...

#

addPatch is imported from @api/PluginManager, but that module does not export addPatch. This will cause a compile-time error. Import addPatch from @webpack/patcher (where it is defined) and consolidate imports, e.g.: import { addPatch, getBuildNumber, patches, patchTimings } from '@webpack/patcher'; then remove the import from @api/PluginManager.

austere talon
#

copilot hallucinating

odd heath
#

supporthelper is required hence the api will always be enabled

#

xd

austere talon
limber skiff
odd heath
#

I never assumed it did in the past but it does now so having that error still there is just sort of pointless is all I was saying blobcatcozy

#

No need to fix the message if you can save a line of code trolley

dusk blaze
#

vee vibe coding vencord its so over

austere talon
#

??

#

nino has lost it

#

I use very little ai for vencord dev cause it's bad at it

#

even copilot is mid for it

#

btw nookies the circular dependency pc is ready now if you wanna look

odd heath
#

All my patches are written by ai always

elder plinth
#

whenever im using ai to help me debug smthn that involves patches it always tries to rewrite it and completely ignores the minified syntax adding spacing n shit to the patches and using regular captures like \w instead of \i like bruh take a hint

fossil inlet
#

I will make a vscode extension that gives copilot the discord module so it can make patches

elder plinth
#

fix this first

fossil inlet
elder plinth
#

all prop?

fossil inlet
elder plinth
#

Failed | OK!

fossil inlet
elder plinth
#

1

fossil inlet
#

All right. I'll take a look at that later

elder plinth
#

this gives no modules but find succeeds

export const ProfileEffectStore = findStoreLazy("ProfileEffectStore");
#

another 18 modules matched but find works example if it helps:

export const emojiData = findLazy(m => m.emojis && Array.isArray(m.emojis));
#

and another 18/ok

export const defaultAssets = findByPropsLazy("DEFAULT_GROUP_DM_AVATARS") as DefaultAssets;
#

seems like 18 is the magic number

fossil inlet
elder plinth
#

no clue how any of it works

#

also the fact theres no unicode emoji store is so annoying

fossil inlet
elder plinth
#

im sure you've got it handled chief :)

fossil inlet
elder plinth
#

im hard at work tryna finish up my downloadify rewrite :)

odd heath
elder plinth
#

questify is not bloated wtf

#

less lines of code than questify but my rewrite is adding a ton so they might end up equalish tbh. so much code needed to add context menu items

#

550 lines for usercontext menu

#

ill inline everything and get it down to 50 trust

#

insane

austere talon
#

hehehehe

#

we can use this for tooltips maybe https://www.youtube.com/watch?v=DNXEORSk4GU

If you’ve ever needed the positioning of an element to be connected (or anchored) to the position of another element, then you’ll be very excited about anchor positioning in CSS! It is new (as of the time of recording), but thankfully, we have a really good Polyfill, so we don’t have to worry about browser support!

🔗 Links
✅ Code fro...

▶ Play video
gritty iris
charred monolithBOT
fossil inlet
#

i tried on my personal website

#

there's a catch

#

If there are multiple anchor elements with the anchor name listed in the position-anchor property, the positioned element will be associated with the last anchor element in the source order with that anchor name.

#

eg:

<div id="div1" style="anchor-name: --my-anchor;">
   <!-- resolves to #div2 -->
  <span style="position-anchor: --my-anchor;" />
</div>
<div id="div2" style="anchor-name: --my-anchor;">
  <span style="position-anchor: --my-anchor;" />
</div>
scenic brook
#

Just use contextMenus to patch whatever you want into toolbox tbh

odd heath
#

Best vencord issue

gritty iris
charred monolithBOT
charred monolithBOT
dusk blaze
charred monolithBOT
charred monolithBOT
austere talon
strong aurora
#

oh yeaa, i've looked at that code for a while already. I wish they wouldn't have refactored it all for the new design

austere talon
#

why did they make it so fucking annoying

#

this errors

strong aurora
#

is it correct that you need buildLayout property here?

#

we just had 4 layout properties nested

austere talon
strong aurora
#

haha yea

austere talon
#

we should just force disable the experiment for now and wait til it's stable

#

I really don't like this

#

it's gonna be so unstable to patch that cause it's so insane

olive aurora
#

useTitle

austere talon
#

and it's like impossible to have error/crash safety here

#

maybe we should just patch the output react elements and inject into that

charred monolithBOT
#
[Vendicated/Vencord] New branch created: new-settings-patch
odd heath
charred monolithBOT
odd heath
#

PLEASE

austere talon
#

no

scenic brook
#

Make our own settings modal and just patch a single button into settings

charred monolithBOT
austere talon
#

vtest dev

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
desert cosmos
#

i am begging

austere talon
#

it's already easy

#

but it will become harder

desert cosmos
#

hate

dusk blaze
#

you should add addAfter to custom sections

charred monolithBOT
#

Hello! I am submitting a PR to add my chatPopouts plugin. It's a simple plugin that allows users to pop out text chats (dm, thread, channel, etc) into its own window for seamless communication between multiple chat windows concurrently. This is inspired by how Microsoft Teams handle's its chat pop out feature.

There are no configurations, simply enable and it adds a button to the top bar of every text chat, and a context menu item to pop out any text chat!

Inspired by my friend who was ...

chrome coral
#

holy comments

austere talon
#

that pr is so weird

#

this is almost correct but getModulePath() doesn't exist

#

makes me suspect AI but how does AI know the directory structure of Discord's app.asar and core.asar

scenic brook
#

His github shows a lot of AI stuff, he probably just knows to feed it more

charred monolithBOT
#

This plugin does not comply with our plugin rules

<img width="1340" height="510" alt="image" src="https://github.com/user-attachments/assets/5142e18c-30b2-4cfd-be7f-ea968ce9e058" />

Due to the excessive volume of comments and some non-nonsensical comments and non-existent method calls I also suspect you used AI to generate large portions of this PR. Please do not contribute AI generated code.

chrome coral
#

not all vibe coders are the same......

austere talon
#

unless the AI just saw it in someone else's code ig

desert cosmos
#

they downvoted

#

Oh my god

austere talon
#

you love

chrome coral
#

advanced ai usage

desert cosmos
charred monolithBOT
desert cosmos
#

does anyone spend actual time writing comments for their code

bright island
#

lgtm get it pushed immediately

desert cosmos
#

like you should be able to understand it without explaining it

bright island
chrome coral
fossil inlet
chrome coral
#

well and docs

desert cosmos
#

i mean fair for obscure stuff

#

but like for simple stuff like that

#

i only comment my patches so i dont forget what they do

austere talon
#

if you write good code you dont need many comments

#

imo comments add noise more than help

#

I have a harder time reading code that has too many comments

desert cosmos
chrome coral
austere talon
#

comments should only be added if either the code is very complex or it does something that seems weird

#

like this old vencord code

desert cosmos
#

did you guys add tags

austere talon
austere talon
#

but thats not how it's supposed to be used

#

the name is kinda misleading

#

it should be named keywords or aliases

austere talon
austere talon
#

it just serves as an alias for search

desert cosmos
#

oh

#

you will repurpose for better search results

austere talon
bright island
#

im tempted to see if i can make an ai actually learn how to understand vencord code

austere talon
#

somehow only has 1 conflict

#

that pr also renames old tags -> keywords

fossil inlet
desert cosmos
#

not even merging your own pull requests

austere talon
#

cause it's WIP

desert cosmos
#

you will finish

charred monolithBOT
desert cosmos
#

insane

austere talon
dusk blaze
#

FaFa Runner

austere talon
#

i will merge into abandonware branch

desert cosmos
#

horror

dusk blaze
desert cosmos
#

ive pushed the veerus

desert cosmos
#

fastest pr to ever get merged in vencord history

dire crest
#

quite the necro here lol.. but do you remember if the storing pronouns in the DataStore ever went anywhere?

austere talon
#

nop

charred monolithBOT
elder plinth
#

surely saying it would be better as a userplugin would have been a better way to word it 😭

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
austere talon
#

why is gh being slow today

#

AWS downtime aftermath??

charred monolithBOT
scenic brook
#

I hate the way they display this

#

How hard is it to add "from" and "to"

odd heath
#

Honestly shocking to see a pr of mine get merged

gritty iris
#

is it possible to make always animate not require hovering for the dms list?

wooden field
#

has anyone considered making a js snippet tab or something? we have themes and plugins and textreplace but not js

austere talon
#

bad idea

wooden field
#

I think it'd make using js snippets easier and encourage more people to try it, I feel like it is the way it is rn to encourage people to make plugins instead of js snippets but idk most of the js snippets rn do a single thing without any rules in place

wooden field
# austere talon bad idea

I guess most of the reason behind the suggestion is the fact it's annoying to fetch js snippets every time you wanna use one

#

possibly even let people run scripts right after startup automatically

#

why is it a bad idea?

austere talon
#

because people will get themselves scammed, hacked or brick their discord

wooden field
#

oh didn't consider that

#

though you could say stuff like that already happens, you could lock the feature behind a plugin enable+ warning

dusk blaze
#

the most i’d see it would be behind IS_DEV

#

but then you can just make a plugin

charred monolithBOT
dire crest
desert cosmos
#

what are those words

odd heath
rancid idolBOT
#
Description

727 is a meme often circulated within the rhythm game osu!'s community.

The meme originated from a 727pp (performance points) play set by Cookiezi on the map "Blue Zenith FOUR DIMENSIONS" with Hidden + HardRock, and was set on the 14th of April, 2017.

Coincidentally, the player RyuK also set a 727pp play with a Hidden + DoubleTime SS on the map "Yubi Bouenkyou ~Anime Ban~ ~A r M i N's Adventure" which was set only a few months after the original 727pp play.

On the 22nd of December, 2020, the player Aireu also set a 727pp play on "Guess Who Is Back (TV Size) Extreme".
From this came the familliar GIF of a player pointing at his screen and screaming "WHEN YOU SEE IT".
After this play was set, the popularity of the 727pp meme increased tenfold.

From this

Stats

<:i:1430645302771187783>   0   ​ <:i:1430645300703264828>   0  
Author: raeBanuL
Published: <t:1625543325:d>

Example

NASA: Posts about a spacecraft launching at 7:27pm
The comments: "WYSI", "727 WTFFFFF insert Aireu GIF here

jagged cloak
charred monolithBOT
charred monolithBOT
turbid hatch
#

translation PR actually gets updated???? wtf?????

charred monolithBOT
dusk blaze
turbid hatch
#

lol

errant nacelle
charred monolithBOT
wooden field
#

tho- the snippets thing in your screenshot, what does that do?

errant nacelle
#

it just saves js snippets locally so u can run them later

#

all chromium browsers have this

#

also you can run them from the command bar which is nice

fossil inlet
#

i should use that more often

fossil inlet
charred monolithBOT
charred monolithBOT
chrome coral
#

nice 0 lines changed pr

chrome coral
#

im not hip with the ai to know it was that..

dusk blaze
#

it was actually the commit author 😭

chrome coral
#

ai so good that it thought the project was perfect already so nothing was changed

lone talon
#

is there a way to just globally block ai agents from submitting pr's?

#

that would be nice

swift fjord
#

could auto close any pr with a commit including a known agent bot

chrome coral
#

sadly this won't stop vibe coders

swift fjord
#

nothing really can

#

theres no true way to detect ai written code

#

at best you can look at commit authors or that Assisted-by thing

lone talon
#

the only thing ive ever used ai in coding for was to ask it to find the likely source of a bug I couldnt figure out just to see if it could find somewhere new for me to keep looking on my own. other than as a more friendly genericized static analyzer i dont want ai in code at all.

bright island
#

i use it as a teacher/wall to bounce ideas off of

chrome coral
#

and thats okay

bright island
#

like to learn typescript i used ai to quiz myself on things if i were right on the structure of the language or not

lone talon
#

yeah thats not objectionable, though id worry about it being wrong/hallucinating

bright island
#

although true it's been rather nice to me for now

#

it's like a rubber ducky to talk to

#

i wouldn't mind a rubber ducky that has chatgpt ai voice when i tell it things but it wouldn't give me info

#

it'd be like "yes that can be good" and my brain would just work off of that

#

makes me program better/faster

chrome coral
#

@turbid hatch we might be able to distribute the safari extension with notarization instead of the AppStore but doing updates would need to be done manually by us

#

I did some research the other day and it seems they now allow external distribution for those apps now

turbid hatch
#

i need to get a new account though

chrome coral
#

sadly if this ever does happen it will not be able to change the csp, similar to the firefox user script where you would lose out on themes and such

turbid hatch
#

but it requires me to establish a company so idk

chrome coral
#

what happened to your old one?

turbid hatch
#

nothing

#

i just want to use my trade name

#

i dont use my real name anymore for anything

chrome coral
#

eeeerrrr vesktop has your name all over it-

turbid hatch
#

im aware

chrome coral
turbid hatch
#

i dont really like that lol

#

it just sucks that apple needs you to get like

#

that weird company id thing

chrome coral
#

I do have access to a developer account that has no name associated to it

turbid hatch
#

cuz i cant get one of those lol

chrome coral
#

but I don’t own it, someone else does

#

but I also wouldn’t think it’s that reliable

chrome coral
#

I’m not entirely sure how electron updater would deal with vesktops identifier and signing identity being changed if there were a switch to another developer account

chrome coral
#

not me reading objc just so I can see if theres any issues

charred monolithBOT
odd heath
#

Did toolbox break or am I dumb

#

Did I quickcss it by accident

#

No I don't think so

brazen bone
#

It was moved to the titlebar, so if you deleted that, that's why

odd heath
desert cosmos
#

works on my machine

odd heath
#

wtf

#

nothing there for me

#

okay so it works fine on discord stable

#

but its broken on.. canary and vesktop canary?

#

how even

#

canary build is fine according to reporter

fossil inlet
#

its gone for mee too

#

ill take a look tonight™

#

i think it might be related to the setting experiment

#

lost toolbox at the same time i got it

gritty iris
#

who made the new and old vencord logos?

lone talon
#

How long does it usually take to get a PR looked at? I've never contributed to this project before and wasn't sure what the maintainers' schedules are like so I thought Id ask (I want to be clear: this is not a passive aggressive attempt at getting my existing PR looked into ahead of schedule).

dusk blaze
#

occasionally vee will have an ADHD fueled merge session where he’ll review many prs

#

just open and forget about it trolleyzoom

lone talon
#

cool, ty for answer :3 👍

swift fjord
gritty iris
swift fjord
#

nanoqoi did the old one

#

don't know who made the new one

chrome coral
#

paige did

#

me thinks

chrome coral
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
dusk blaze
#

btw

#

this seems like vibe coding and a mix of other useless changes 😭 they have a history of that

charred monolithBOT
charred monolithBOT
charred monolithBOT
dusk blaze
charred monolithBOT
#

Content

One of the most common use cases for a Spotify controller is adding a song to your "liked" tracks

By default, these are the controls available on the mini player:

When it gets smaller, it loses the share, the shuffle, the repeat, the volume and the previous track buttons disappear (in order of priority)

Adding a volume control and the other buttons feels like it would be a nice stretch goal, there is plenty of room:

But as a minimum, I'd appreciate the "Liked" button b...

odd heath
#

no breakages in so long

#

suspicious

charred monolithBOT
charred monolithBOT
dusk blaze
#

i think i still have the queue/add to favorite songs branch

austere talon
#

I found a niche CloneEmojis bug

#

idk how it never got noticed before

#

if you have a server with 0 emojis, Discord crashes when you try to clone

fossil inlet
#

love

austere talon
fossil inlet
#

thats just wrong types

austere talon
#

what?

fossil inlet
#

there should be a typescript error there

#

the types for EmojiStore are wrong

austere talon
#

what are u on about

fossil inlet
#

guh?

austere talon
#

it's just that if a guild has 0 emojis it's not in the object

fossil inlet
#

so this should be a union with undefined

austere talon
#

no

fossil inlet
#

why not

austere talon
#

because that's just incorrect type

#

it cannot contain any undefined

#

it just isn't contained in the object

#

this is just a problem with typescript records

#

arguably always having to null check would be more annoying

fossil inlet
#

guh

#

not really

austere talon
#

this is really just discord's fault for having an insane api

#

we should just use the right methods

charred monolithBOT
odd heath
#

@fossil inlet satam did u find anything about the toolbox yet

austere talon
#

also checks sticker limit now

odd heath
#

toolbox being gon

fossil inlet
#

I'll look now

odd heath
austere talon
#

using an object like an array is so cursed

austere talon
odd heath
#

smth is wrong

austere talon
#

probably some experiment

odd heath
#

yea

fossil inlet
#

whats the name of the experiment for new settings

odd heath
austere talon
#

i love javascript

#

works for arrays too

fossil inlet
#

arenty arrays just funny objects

brazen bone
#

Aren't we all?

fossil inlet
#

@odd heath

odd heath
#

amazing

#

tyty

fossil inlet
#

patch isnt that good

#

theres probably a better one

#

it just needs to be in that array, and not in a conditional

charred monolithBOT
austere talon
#

vtest dev3

nimble pendantBOT
austere talon
#

NoTrack explosion

#

it's just metric

#

chances are discord just removed that

nimble pendantBOT
# austere talon vtest dev3
Bad Patches

NoServerEmojis (had no effect):
ID: 339085
Match: ```
/.get((\i)).nameMatchesChain(\i).reduce(((\i),(\i))=>{/


**__NoTrack (had no effect):__**
ID: `771784`
Match: ```
/this\._intervalId=/

NoTrack (had no effect):
ID: 771784
Match: ```
/(?:increment|distribution)(\i(?:,\i)?){/g

Slow Patches

BetterFolders (took 7.8ms):
ID: 654142
Match: ```
/(?<=folderNode:(\i),expanded:)\i(?=,)/

nimble pendantBOT
austere talon
#

are they just never going to bump it ever again

odd heath
#

im gonna fix notrack

#

or at least look

austere talon
odd heath
#

they added METRICS__CAPTURE though

#

i think that just fucked up the find

#

just make the find be METRICS_V2 and it should work

#

cba to make a pr for that one line

#

gonna check noserveremojis though

#

@austere talon this is literally hte only difference (canary/stable)

#

and the patches work fine if you make it v2

odd heath
charred monolithBOT
austere talon
#

vtest dev2

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
# austere talon vtest dev2
Slow Patches

MutualGroupDMs (took 10.3ms):
ID: 52639
Match: ```
/\i||\i(?=?(0,\i.jsxs?)(\i.\i.Overlay,)/


**__ShowHiddenChannels (took 51.5ms):__**
ID: `823748`
Match: ```
/"renderMobileToolbar",\(\)=>{.+?case \i\.\i\.GUILD_DIRECTORY:(?<=let{channel:(\i).+?)/
austere talon
#

damn

odd heath
#

was noserveremojis fixed already then

#

cuz i got pretty confused just now

#

lmao

gritty iris
#

It was originally .metrics_v2, I don't know why I would've changed unless told otherwise but it was forever ago so idrk

fossil inlet
#

feat/notrack-fix

#

why not just fix/notrack

charred monolithBOT
#

Outline

Summary

This PR adds the UnlimitedStickers plugin which lets Nitro users send local images as native Discord stickers.

Features

  • Local Sticker Library: Send any supported local image as a Discord sticker.
  • Sticker Categories: Uses the sub-folders in your designated sticker directory as categories.
  • Favorites & Recents:
    • Mark stickers as Favorites.
    • Keeps track of your Recently Used stickers.
  • Search: Find a sticke...
chrome coral
#

not sure about this one

prime dew
#

1200 lines added fear

austere talon
#

smells like AI

#

at least the readme and the fact that they added i18n

#

all the ai prs always add i18n for some reason

#

I think they're trained on devilbro plugins or something

chrome coral
#

I think this would be more suited as a user-plugin

austere talon
#

the native is a security hazard

dusk blaze
#

readme, i18n, _ Unused IPC event from Vencord Native., and the malware native

#

oh and the edited copyright notice noone has ever done that

charred monolithBOT
#

This pull request introduces a new plugin that allows users to close the current direct message (DM) in Discord by pressing Ctrl + W. It also adds a new developer to the constants file. The main focus is on improving user experience by providing a keyboard shortcut for closing DMs.

New Plugin: Close DMs with Ctrl+W

  • Added a new plugin in src/plugins/closeDms/index.ts that listens for the Ctrl + W keyboard shortcut and closes the currently selected DM channel using internal Discor...
austere talon
charred monolithBOT
charred monolithBOT
bleak blaze
#

😭 what have u done here

#

genius 🤑 definitely related to silencing a call!!

charred monolithBOT
odd heath
odd heath
#

ioh

#

you sounded like saying the fix is wrong

#

😭

gritty iris
#

I saw the whole post about it

gritty iris
#

I was joking around

odd heath
#

oooh

#

i see

charred monolithBOT
charred monolithBOT
#

Sorry but I'll have to reject this. Allowing file access via your native script is very bad for security. Your PR description, random addition of i18n and excessive jsdoc also make me think you used AI for this

I see, I'll try to think about something else then.
I added jsdoc and wrote my PR the way it is because that's what I did at work, but this is my first time sending PRs to open source so I had no idea, sorry (also I usually use Discord in Japanese and it bothered me that every text ...

turbid hatch
#

PR #3688 TRANSLATION V3

charred monolithBOT
#
[Vendicated/Vencord] branch deleted: uikit
#
[Vendicated/Vencord] branch deleted: 92ff9c1
austere talon
chrome coral
austere talon
turbid hatch
charred monolithBOT
chrome coral
austere talon
#

vencord's updater has the flaw that it uses short commit hash instead of long commit hash

#

somehow by force pushing, nookies created two commits with short hash 92ff9c1 (it was the same commit, github just got confused for some reason)

#

this led to viewing history for 92ff9c1 resulting in a 404

#

and broke the updater

turbid hatch
#

lmfao what?

#

ive never heard of that being an issue before thats great

austere talon
#

to fix it I created a branch with that name

#

so now github would interpret it as that branch instead and it didn't 404 anymore

turbid hatch
#

thats so weird

austere talon
#

speaking of which we need to switch to long commit hash

turbid hatch
#

yes

charred monolithBOT
gritty iris
gritty iris
# austere talon sure

I used a func for using the hash at a smaller scale for displaying want me to keep that?

#

I made the default length 7

austere talon
#

not sure what u mean

gritty iris
#
export function shortGitHash(length = 7) {
    return gitHash.slice(0, length);
}
#

so we dont display the whole hash and I had multiple places to put it

#

so I just made it a func

charred monolithBOT
charred monolithBOT
dusk blaze
#

@austere talon idea

#

chrome extension panel where it shows current version support server and a button to clear all themes or something

#

desktop users get a Devtools panel

desert cosmos
#

Bad Idea

austere talon
#

^

dusk blaze
dusk blaze
#

at least something saying You can configure Vencord in Disocrd Settings

dusk blaze
#

yea that was plan ykyk

#

when i finish song.link plugin

dusk blaze
#

Electron insnae

austere talon
#

not electrons fault

#

thats just chromium

#

also devtools pane is insane

#

dont do that

#

we will add vesktop fixer to installer

gritty iris
#

should I slice this one as well?

austere talon
#

eh doesnt matter much

#

is that even used anywhere

#

only github updatere i think

gritty iris
#

applemusic and updater

austere talon
#

can you just add gitHashShort to vencordUserAgent.ts

gritty iris
#

ye

#

want me to leave this as is?

austere talon
#

no like I said put gitHashShort in shared and use that instead of slicing

#

also erm we need to test this

gritty iris
#

that link component is hashlink?

#

you provide the hash into it

olive aurora
#

rev-parse --short isn't always 7 characters, its 7 or the minimum amount of characters required to disambiguate

austere talon
#

well idk

#

it's fine then ig

gritty iris
#

I pushed it to use githashshort

olive aurora
#

look at how the 3rd is 5 chars

gritty iris
#

the updater has broken because of force pushes and such multiple times for me and apperantly nuckyz broke it once because of this issue so idrk

austere talon
#

are u force pushing to main

gritty iris
#

nope

#

I've only done that once like a year or 2 ago tmk

#

I pushed to main twice back to back and that broke it tho

#

they both had the same --short hash Joe_Shrug

olive aurora
#

erm thats a one in a million chance

#

if it was two consecutive commits

austere talon
#

yeah a collision never happened naturally

#

it only happened when nookies force pushed

#

github exploded

gritty iris
#

donno then thumbs_up

austere talon
#

i wonder if it's like if you push the same commit to multiple different bases

#

and github then gets confused which base you want or whatever

olive aurora
#

the full hash would probably be the same then though

austere talon
#

yeah it does work with long hash...

austere talon
#

let's say I have a file like

a
b
c

and a commit abc that changes c to d

then I push this same commit abc to the main branch and a second branch that also has b changed to z

#

will the diff display b or z

gritty iris
austere talon
#

nah link

olive aurora
#

part of a commit is what its parent commit is so if you bring it over to another branch you're actually creating a new hash

olive aurora
#

and then it becomes the same as the other branch

brazen bone
#

Why does any tooling even care about short hash? That's only meant for user display

charred monolithBOT
#

This pull request introduces a new plugin called CloseDMsWithCtrlW that allows users to quickly close the current DM or leave a group DM in Discord by pressing Ctrl + W. The plugin includes a confirmation dialog for leaving group DMs and adds a new developer to the constants list.

New plugin functionality:

  • Added the CloseDMsWithCtrlW plugin in src/plugins/closeDms/index.ts, which closes the current DM or prompts for confirmation before leaving a group DM when Ctrl + W is pressed...
brazen bone
#

and adds a new developer to the constants list

scenic brook
#

Devs.Copilot when

chrome coral
#

what’s with all these ai pr’s

#

and by did this guy close and reopen it

summer mantle
# charred monolith

Added IamSwan to the Devs object in src/utils/constants.ts to recognize them as an author of the new plugin.

3rd person lmfao

jagged cloak
#

lmao

#

each new person that tries to vibecode without any sense thinks they are slick enough to 1 trick a pr to something models have been historically shitty at

austere talon
#

vtest dev3

nimble pendantBOT
nimble pendantBOT
# austere talon vtest dev3
Bad Patches

NoServerEmojis (had no effect):
ID: 339085
Match: ```
/.get((\i)).nameMatchesChain(\i).reduce(((\i),(\i))=>{/


**__NoTrack (had no effect):__**
ID: `771784`
Match: ```
/this\._intervalId=/

NoTrack (had no effect):
ID: 771784
Match: ```
/(?:increment|distribution)(\i(?:,\i)?){/g

Slow Patches

WebContextMenus (took 9.1ms):
ID: 29264
Match: ```
/(?<=#{intl::SAVE_IMAGE_MENU_ITEM}),)action:/

nimble pendantBOT
# austere talon vtest dev3
Bad Patches

NoServerEmojis (had no effect):
ID: 339085
Match: ```
/.get((\i)).nameMatchesChain(\i).reduce(((\i),(\i))=>{/


**__NoTrack (had no effect):__**
ID: `771784`
Match: ```
/this\._intervalId=/

NoTrack (had no effect):
ID: 771784
Match: ```
/(?:increment|distribution)(\i(?:,\i)?){/g

Slow Patches

ImplicitRelationships (took 5.7ms):
ID: 974042
Match: ```
/(\i.\i).fetchRelationships()/

austere talon
#

THEY FINALLY REPUSHED INTL UPDATE

limber skiff
#

so what did they do to no track

austere talon
#

oh dw

#

fix is just changing find from .Metrics to .Metrics_V2

limber skiff
#

oh lol

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Summary

This patch updates the TextArea type definition to correctly reflect its behavior as a controlled React component.
The previous version assumed a raw HTMLTextAreaElement interface with native onChange(event) handling,
which was inconsistent with other input components such as TextInput and Select.

Technical details

  • Replaced the old definition with a refined interface:
    • Added value?: string and defaultValue?: string for controlled and uncontrolled usage...
glass jasper
#

Damn instant nuke

turbid hatch
#

i saw it pop up whilst i was scrolling and i was like

#

nope

#

screw that

#

v doesnt need to waste their time reviewing that

glass jasper
#

You should change your name back to PR killer
-# /joke

charred monolithBOT
#

Summary

This patch updates the TextArea type definition to correctly reflect its behavior as a controlled React component.
The previous version assumed a raw HTMLTextAreaElement interface with native onChange(event) handling,
which was inconsistent with other input components such as TextInput and Select.

Technical details

  • Replaced the old definition with a refined interface:
    • Added value?: string and defaultValue?: string for controlled and uncontrolled usage...
elder plinth
#

2nd times the charm

charred monolithBOT
turbid hatch
#

fucking hell

glass jasper
#

Watch him do it a 3rd

turbid hatch
#

@austere talon petition to move vencord to the org permanently just so i can block morons

elder plinth
turbid hatch
#

im trying to enjoy my time

#

whilst drunk

#

i dont need some guy opening AI PRs

glass jasper
#

-# /j, obviously

charred monolithBOT
bright island
#

@austere talon ven please like just look at pr 3492 cmahn pls

fossil inlet
#

doing insane things with react blobcatcozy

charred monolithBOT
brazen bone
#

Love it when people don't read

austere talon
#

vtest dev3

nimble pendantBOT
nimble pendantBOT
# austere talon vtest dev3
Bad Patches

NoServerEmojis (had no effect):
ID: 339085
Match: ```
/.get((\i)).nameMatchesChain(\i).reduce(((\i),(\i))=>{/


**__NoTrack (had no effect):__**
ID: `771784`
Match: ```
/this\._intervalId=/

NoTrack (had no effect):
ID: 771784
Match: ```
/(?:increment|distribution)(\i(?:,\i)?){/g

nimble pendantBOT
# austere talon vtest dev3
Bad Patches

Decor (had no effect):
ID: 125988
Match: ```
/(?<=TryItOut:\i,guildId:\i}),)(?<=user:(\i).+?)/


**__NoServerEmojis (had no effect):__**
ID: `339085`
Match: ```
/\.get\((\i)\)\.nameMatchesChain\(\i\)\.reduce\(\((\i),(\i)\)=>\{/

NoTrack (had no effect):
ID: 771784
Match: ```
/this._intervalId=/


**__NoTrack (had no effect):__**
ID: `771784`
Match: ```
/(?:increment|distribution)\(\i(?:,\i)?\){/g
austere talon
#

when do we push the compat removal

#

I'll wait a few more weeks I think

charred monolithBOT
dusk blaze
#

then you can vban @username and it blocks

turbid hatch
#

that works

chrome coral
#

funny solution for a problem with an easy solution

dusk blaze
#

that way everyone is happy ykyk

#

vee gets to keep showing off to employers and we can vban

chrome coral
#

vee dont even have a linkedin..

turbid hatch
#

oh ffs

#

it was based on main

#

i thought i changed it to dev first

charred monolithBOT
#
[Vendicated/Vencord] New branch created: ci/rebase-to-dev
turbid hatch
#

i have HAD ENOUGH

#

the CI will fix everything

#

oops

austere talon
#

"we" dogsmirk

turbid hatch
#

stop

charred monolithBOT
turbid hatch
#

this is cyberbullying

#

oops

#

WOW

#

okay github advanced security

#

i will fix it

#

dont worry

austere talon
#

dont use rebase

turbid hatch
#

kk

charred monolithBOT
turbid hatch
#

all fixed

#

er wait

#

let me double check something

#

oh yeah its fine good

#

i thought it might've needed contents permissions but it doesnt

gritty iris
gritty iris
#

guildId:\i\}\)\), is also fine but wasnt sure if that was good and neither are stable comp I can use getMember for that if you want tho

charred monolithBOT
odd heath
#

why is the metrix fix not on dev

charred monolithBOT
turbid hatch
#

how many changes does this tidal thing have

#

oh my god

charred monolithBOT
fossil inlet
#

@gritty iris is decoupled game clipping still a thing, or is it fully removed

fossil inlet
gritty iris
#

the entire isstaff was removed

fossil inlet
#

oh

#

ok

gritty iris
fossil inlet
#

for some reason i thought you said the whole function was removed

limber skiff
#

what plugin is broken from new UI

#

what UI are we talking about

austere talon
#

nino is insane

#

only toolbox i think

limber skiff
#

what's wrong

austere talon
#

it doesnt show with some experiment

#

theres fix pr

fossil inlet
#

it renders inside a hasBugReporter conditional

#

i have open pr

#

@dusk blaze whats the new ui?

am i stupid

austere talon
#

nino needs to be put down

elder plinth
#

it's not new ui / breaking things it's new / ui-breaking / things

dusk blaze
fossil inlet
odd heath
#

Can we somehow get a reporter run on that

#

I wanna see

turbid hatch
#

doubt much is really different

#

vtest main

nimble pendantBOT
nimble pendantBOT
# turbid hatch vtest main
Bad Patches

Decor (had no effect):
ID: 125988
Match: ```
/(?<=TryItOut:\i,guildId:\i}),)(?<=user:(\i).+?)/


**__NoTrack (had no effect):__**
ID: `771784`
Match: ```
/this\._intervalId=/

NoTrack (had no effect):
ID: 771784
Match: ```
/(?:increment|distribution)(\i(?:,\i)?){/g

nimble pendantBOT
# turbid hatch vtest main
Bad Patches

Decor (had no effect):
ID: 125988
Match: ```
/(?<=TryItOut:\i,guildId:\i}),)(?<=user:(\i).+?)/


**__Experiments (had no effect):__**
ID: `435064`
Match: ```
/\i\.isStaff\(\)/

NoTrack (had no effect):
ID: 771784
Match: ```
/this._intervalId=/


**__NoTrack (had no effect):__**
ID: `771784`
Match: ```
/(?:increment|distribution)\(\i(?:,\i)?\){/g
Slow Patches

IgnoreActivities (took 5.7ms):
ID: 243852
Match: ```
/getVisibleRunningGames().+?;(?=for)(?<=(\i)=\i.\i.getVisibleRunningGames.+?)/

charred monolithBOT
#

Performance Improvements

  • Optimized SettingsStore.notifyListeners to reduce iterations and cache listener references
  • Optimized useSettings hook to prevent unnecessary re-subscriptions using useMemo
  • Added React.memo to PluginCard and ExcludedPluginsList components to prevent unnecessary re-renders
  • Cached plugin lookups in startAllPlugins and subscribeAllPluginsFluxEvents functions

New Plugin: MessageSnippets

A plugin for saving frequently used phrases or blocks of text and inse...

brazen bone
#

It's nice that the ai slop makes it so obvious from the descriptions

charred monolithBOT
charred monolithBOT
#

What happens when the bug or crash occurs?

AutoDNDWhilePlaying switches my status to Do Not Disturb when a game starts even if my starting status is Invisible/Offline. The plugin README says it updates your online status (online, idle, dnd) and restores the prior status when the game closes. Invisible is not an online status and should not be changed.

What is the expected behaviour?

  • If starting status is Invisible/Offline: do not change the status at all.
  • If starting status is ...
gritty iris
#

unless it just didnt do 1 or the other havent used in a long time

glass jasper
#

At least, as far as I can remember

junior olive
#

There was a patch that added it there

#

This one

austere talon
#

surely this guy is just using user plugins

fossil inlet
austere talon
#

vencord bug ages ago

#

cause of messagelinkembeds iirc

#

whenever a message event is emitted, discord updates users based on the author data

#

when the plugin encountered an interaction it had only limited author information (normal) and discord updated based on that and removed things like email

that then causes the unclaimed account warning, but it's only client side

#

whenever you emit MESSAGE_UPDATE with bad data (easy cause it expects api messages not "deserialised" / model messages)

#

but nothing in vencord emits that event anymore

charred monolithBOT
#

I've been very disappointed with the state of Discord rich presence options for Jellyfin lately, so I'm working on a plugin that allows Vencord to connect to any Jellyfin server and display rich presence for a specified user's sessions on it.

All core features are implemented, all that's left to do is implement the rest of the activity builders and image grabbers that Jellyfin supports and maybe do a little refactoring. VencordNative.csp.requestAddOverride is used to grab consent for the...

charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Why bother making last.fm integration a plugin? Having another program constantly running on your computer just to act as a server for something else is super clunky. If Spotify rich presence happens from within Discord, I'd probably want my media server rich presence happen within Discord too.

That being said, if you don't think this is suitable for Vencord, do let me know so I can close this and rework it into a UserPlugin.

chrome coral
#

I think that plugin is just very old

charred monolithBOT
#

Lastfm is very universal, you can have any player scrobble to it and immediately get rich presence working. Jellyfin on the other hand is one specific app. Also, all jellyfin clients are open source, it makes way more sense to just integrate rich presence into the client.

It seems they are open to this idea https://github.com/jellyfin/jellyfin-media-player/issues/45

Your time would imo be much better spent working on this feature for the client directly, that way everyone can profit fro...

#

I use Jellyfin on my TV and phone way more than I ever do on my desktop, and Discord RPC/jellyfin-media-player is not available on those clients. This plugin acts similarly to Discord's Spotify integration, where any device playing Spotify will show up in Discord.

I do recognize how niche and personalized of a feature this is though, and I'm going to close this PR and make it a UserPlugin instead. Thank you for your response.

charred monolithBOT
dusk blaze
#

mantika is a paid vencordtoolbox shill

charred monolithBOT
fossil inlet
dusk blaze
#

Pr soon

charred monolithBOT
charred monolithBOT
still maple
dusk blaze
#

add react components to toolbox @austere talon

austere talon
#

i think you can

#

it's like MenuItem.Custom

odd heath
charred monolithBOT
austere talon
#

vtest dev3

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
austere talon
#

rspack cooking

austere talon
#

vtest dev

nimble pendantBOT
scenic brook
#

I think

nimble pendantBOT
nimble pendantBOT
austere talon
#

duh

charred monolithBOT
odd heath
#

I need to rename gh

charred monolithBOT
odd heath
#

Again

odd heath
charred monolithBOT
dapper tiger
#

who ping

charred monolithBOT
dusk blaze
#

i love github

#

(i hate girhub)

charred monolithBOT
dusk blaze
#

Inter cute but we can probably stick to system ui

#

it looks good on Mac anyway noone cares about other platforms

#

you have lost it

#

paige needs to be murdered

#

oh

#

icic ykyk

#

might wake up and do impl

#

?choose wake_up sleep

shut vineBOT
#

sleep

dusk blaze
#

what if i imported React in popup

charred monolithBOT
fossil inlet
#

least insane plugin

dusk blaze
#

@fossil inlet satan

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
glass jasper
#

Codeburg jumpscare

austere talon
#

isn't inter pretty big

#

Also doesn't even fit discord's design

#

if anything it should be gg sans (but don't)

austere talon
dusk blaze
#

paige gruvboxified it

charred monolithBOT
charred monolithBOT
gritty iris
#

any idea what experiment caused this patch to be made?

#

they broke it on canary and I dont have the experiment to test my fix :(

#

the patches do apply the same at least

limber skiff
#

I'll fix it

gritty iris
#

alrighty

#

module id didnt change or anything and the highlighted part .getExperimentBucketName is gone

#

887580

#

I couldnt find anything good for stable compatibility so that was annoying

limber skiff
#

what was your fix

#

.getExperimentsBucketName was kinda like just an anchor

gritty iris
#

lemme pull it up rq

#
{
            find: ".experimentOverride,children",
            replacement: [
                {
                    match: /\i\.isStaff\(\)/,
                    replace: "true"
                },
                // Fix some tricky experiments name causing a client crash
                {
                    match: /if\(null==(\i)\|\|null==\i(?=\)return null;)/,
                    replace: "$&||({})[$1]!=null"
                }
            ]
        },

was my current fix

#

the find was for stable compat

limber skiff
#

why does the isStaff patch fail

#

broken find?

gritty iris
#

they moved it all

#

ye

limber skiff
#

ahh

gritty iris
#

they moved the dev://experiment/ out

#

its in 922699 now

#

honestly my first find was .EXPERIMENT_TREATMENT&& wasnt sure if I should add null onto the end but it wasnt stable compat so

#

if you need to pr what I have I can btw

charred monolithBOT
mossy notch
#

look mom im on tv

austere talon
#

name styles are so useless 😭

mossy notch
#

some ppl like them tho.....

prime dew
# charred monolith

now imagine people with both this and a fake profile theme, goodbye about me section

charred monolithBOT
mossy notch
#

so sad..

austere talon
#

sorry venniepat

mossy notch
#

is fine

#

i suck with ideas often 😭

#

generally

brazen bone
#

Don't want to waste bio space? Put in nick instead

charred monolithBOT
gritty iris
#

Mostly there for nuckyz and another find option I found was .EXPERIMENT_TREATMENT&& which could also have null at the end so .EXPERIMENT_TREATMENT&&null but I figured without null was probably better not sure about that either

charred monolithBOT
austere talon
#

what hack

dusk blaze
#

erm what the figma

#

tbh the popout can be gruvbox, it’s not like it’s inside discord UI. it’s still pretty isolated

austere talon
#

older commit so not that bad

limber skiff
#

😭

austere talon
charred monolithBOT
#

Thanks for asking me to work on this. I will get started on it and keep this PR's description up to date as I form a plan and make progress.

Original prompt

Please review the code base and find and list potential bug or vulnerabilities. Avoid minor irrelevant things like typos


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tip...