Skip to content

Add Recent Chats - #221

Open
Alex979 wants to merge 3 commits into
SteamClientHomebrew:mainfrom
Alex979:add-recent-chats
Open

Add Recent Chats#221
Alex979 wants to merge 3 commits into
SteamClientHomebrew:mainfrom
Alex979:add-recent-chats

Conversation

@Alex979

@Alex979 Alex979 commented Aug 13, 2026

Copy link
Copy Markdown

Summary

Adds "Recent Chats" to the Millennium Plugin Database as a submodule.

Plugin repository:
https://github.com/Alex979/Steam-Recent-Chats-plugin

Features

  • Adds a Chats tab to Steam's Friends window on both the desktop and in-game overlay.
  • Sorts conversations by their latest activity.
  • Shows the latest message, including game, lobby, Steam Playtest, trade, and broadcast invites.
  • Displays timestamps and unread counts without changing Steam's unread state.
  • Searches names and message previews.
  • Opens Steam's normal chat window when a conversation is selected.
recent-chat-plugin-screenshot

@github-actions github-actions Bot changed the title Add Recent Chats plugin Add Recent Chats Aug 13, 2026
@Shightrox

Copy link
Copy Markdown

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 6ecbe83b4a5758f91168322c455da927c32468c0 (v0.3.0). I also checked the published recent-chats-0.3.0.zip; its SHA-256 was aefa5b1a4fc27ed258854cb2d06182f5caf15222bd5bfe5dd744437810fe3119, and the installed bundle matched the audited release source.

Runtime results

  • The plugin attached to the desktop Friends window using its primary anchors.
  • Exactly one Chats tab, one panel, and one style element were injected.
  • My test account produced 3 conversation rows with no error state.
  • Searching with a prefix from an existing conversation filtered the list from 3 rows to 1; clearing the query restored all 3.
  • Selecting a read conversation dispatched one Steam chat-window event.
  • Calling the plugin's onDismount removed the tab, panel, and style element completely (all counts returned to zero).
  • I found no Recent Chats warnings/errors in webhelper_js.txt. The plugin is frontend-only, has no custom binaries/backend, and I found no plugin-owned telemetry or external network requests.
  • I deliberately did not record conversation names or message contents while testing.

Issues found

  1. The PluginDatabase build workflow is not currently reproducible from a clean checkout. Under Node 20.20.2, the repository tracks bun.lock but not pnpm-lock.yaml, while PluginDatabase builds with pnpm. A clean pnpm resolution selected @steambrew/ttc@3.3.7 from ^3.2.6 and TypeScript 7.0.2; pnpm run build failed, including TS5108 (moduleResolution=node10 was removed) and a rollup-plugin-inject-process-env module-resolution error. Please commit a pnpm lockfile or pin a known-compatible toolchain, then verify a clean Node 20 pnpm install && pnpm run build.
  2. The $schema URL in plugin.json currently returns 404 (src/sys/plugin-schema.json has moved), so editor validation is not working.

The live UI behavior and unload cleanup looked solid. I would treat the clean pnpm build as the main pre-publication blocker.

@Shightrox Shightrox mentioned this pull request Aug 14, 2026
9 tasks
@Alex979

Alex979 commented Aug 14, 2026

Copy link
Copy Markdown
Author

Thanks @Shightrox for the detailed testing and feedback! Both reported issues should now be addressed in v0.3.1, and I've updated this PR to point the submodule to commit 77d0bfc.

Changes made

  • Added and committed pnpm-lock.yaml alongside bun.lock.
  • Pinned all direct dependencies to exact versions, including TypeScript 6.0.3 and @steambrew/ttc 3.3.7.
  • Updated the TypeScript configuration to use moduleResolution: "bundler".
  • Added pnpm build-script approvals for @parcel/watcher and esbuild.
  • Corrected the schema URL to src/system/plugin-schema.json.

I verified this from a clean checkout using Node 20.20.2, pnpm 10.34.5, CI=true, and NODE_ENV=production. pnpm install reported that the lockfile was up to date and skipped dependency resolution, and pnpm run build completed successfully. The previous TS5108 and Rollup module-resolution errors no longer occur.

One separate, repository-level issue I noticed while reproducing the workflow: PluginDatabase pins Node 20 but installs an unpinned pnpm using npm install -g pnpm. As of this test, that installs pnpm 11.21.0, which requires Node >=22.13 and crashes under Node 20.20.2 with ERR_UNKNOWN_BUILTIN_MODULE: node:sqlite before plugin dependencies are installed. I have not changed the PluginDatabase workflow since that is outside the scope of this contribution, but wanted to mention it in case CI encounters it. The original test may have used an already-installed Node-20-compatible pnpm version.

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.

2 participants