Skip to content

fix(plugins): read memory plugin.yaml as UTF-8 - #8467

Closed
Tianworld wants to merge 1 commit into
NousResearch:mainfrom
Tianworld:fix/plugins-memory-yaml-utf8
Closed

fix(plugins): read memory plugin.yaml as UTF-8#8467
Tianworld wants to merge 1 commit into
NousResearch:mainfrom
Tianworld:fix/plugins-memory-yaml-utf8

Conversation

@Tianworld

Copy link
Copy Markdown
Contributor

Memory provider discovery reads each provider's \plugin.yaml\ for descriptions (two call sites). Both used the process default text encoding; on Windows, valid UTF-8 YAML with non-ASCII text could fail inside broad \except\ handlers and hide descriptions.

list_memory_providers and related paths parsed plugin.yaml without encoding; Windows could hide descriptions or skip YAML on UTF-8 manifests.

Made-with: Cursor
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins labels Apr 28, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Likely duplicate of #8450 — same UTF-8 fix for plugin.yaml in memory setup. Also related to #15519 (broader encoding fix) and #9891 (plugin manifest locale decoding).

@teknium1

Copy link
Copy Markdown
Contributor

Thanks for the focused Windows compatibility fix. This automated hermes-sweeper review found that the exact behavior is already implemented on current main.

  • plugins/memory/__init__.py:161 reads provider plugin.yaml files with encoding="utf-8-sig" in discover_memory_providers().
  • plugins/memory/__init__.py:427 applies the same UTF-8-compatible decoding in discover_plugin_cli_commands().
  • Commit d682f320b35a13084371a541a835e1d988c982b8 introduced the current file containing both guarded reads. utf-8-sig also accepts ordinary UTF-8 while handling a UTF-8 BOM.
  • This matches the duplicate relationship with fix(memory): read plugin.yaml as UTF-8 in memory setup #8450 noted in the existing discussion.

Closing as implemented on main.

@teknium1 teknium1 closed this Jul 12, 2026
@teknium1 teknium1 added the sweeper:implemented-on-main Sweeper: behavior already present on current main label Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have sweeper:implemented-on-main Sweeper: behavior already present on current main type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants