Add Recent Chats - #221
Conversation
eb0ad95 to
c69589e
Compare
|
Disclosure: I am the author of #224 and tested this PR as part of the Community Contribution requirement. Tested on Windows 11, Steam Client Stable, Millennium 3.4.0, using the exact pinned plugin commit/tag Runtime results
Issues found
The live UI behavior and unload cleanup looked solid. I would treat the clean pnpm build as the main pre-publication blocker. |
|
Thanks @Shightrox for the detailed testing and feedback! Both reported issues should now be addressed in Changes made
I verified this from a clean checkout using Node One separate, repository-level issue I noticed while reproducing the workflow: PluginDatabase pins Node 20 but installs an unpinned pnpm using |
|
Remove |
Done, updated to v0.3.2 which completely removes |
|
Another issue I didn't initially notice: you should re-use Steams styled components instead of re-styling them manually. Right now, all themes would have to updated to support this tab. Just open the inspector, steal Steams real classname, then checkout the Steam source tracker, you can simply CTRL+F a minified classname (ex: Lmk if this makes sense! |
56c7743 to
d304eff
Compare
Makes sense @shdwmtr! I just updated this PR to v0.4.0, which contains all the changes in Alex979/Steam-Recent-Chats-plugin#1. That PR rewrites the whole plugin to reuse Steam's native style classes. The tab copies its classes straight off the native FRIENDS tab, and the search field, rows, avatars, presence colors, and unread badge all use the same classes that the friends list uses. I used This was a fairly significant change but well worth it for theme compatibility. There are some quirks, like how in some cases Steam's built-in classes include unwanted styling like layout & geometry, that I had to explicitly neutralize to avoid breaking my own layout. That does make the plugin a bit more brittle in response to steam updates, so I have every borrowed class documented in docs/steam-class-mapping.md for easier maintenance if future steam updates break some style. The big benefit here is that now the plugin has consistency across many themes. Some screenshots for example: Steam Default
Minimal Dark
SpaceTheme
Material
As you can see, the plugin adapts to various different themes now, and row colors are now based on the users' in-game / online / away / offline presence. Let me know if this is satisfactory or if there are any other changes you'd like to see, thanks! |
@Shightrox already covered the v0.3.0 runtime behaviour, and both blockers from that review are fixed. Rather than repeat it, I focused on the two things that were still open: the privacy surface, which nobody had examined closely for a plugin that reads your messages, and the v0.4.0 native-class rewrite, which landed after that review and has not been tested on Steam Beta. What stays on the machineThis is the question that matters most for this plugin, so I want to answer it precisely rather than in passing. I grepped the whole frontend for Reading is strictly read-only. Message text is read into memory to build the one-line preview and never leaves the process. With one exception, below. The one place message text can escape
console.warn(LOG_PREFIX, 'No compatible chat-opening method was found.', conversation);That logs the whole Logging Steam Beta, Millennium 3.5.0-beta.2: the borrowed classes still resolveYou flagged the native-class rewrite as making the plugin more brittle against Steam updates, so I checked the dynamic half of it against a newer client than the previous review used. I evaluated the plugin's own predicates inside Steam's shared JavaScript context:
So the runtime resolution and both fallback paths hold on the current Beta. Two honest caveats. I also deliberately did not read or record any conversation name or message content while probing, only counts and types. BuildBoth of @Shightrox's blockers are genuinely fixed, verified rather than assumed.
The Also correct here and worth calling out because it is commonly wrong: Smaller pointsThe reconcile loop is a permanent 2 Hz poll.
Two lockfiles. Tests. Five test files, which is more than most submissions here have, and I want to acknowledge that. I could not run them since Nice work overall. The cleanup path in particular is the most careful I have seen in a Millennium plugin, and the class mapping document is the kind of thing that makes a plugin maintainable by someone other than its author. |
|
Thanks for the review @Norphirion! Made these two changes in Alex979/Steam-Recent-Chats-plugin#2:
|







Summary
Adds "Recent Chats" to the Millennium Plugin Database as a submodule.
Plugin repository:
https://github.com/Alex979/Steam-Recent-Chats-plugin
Features