Skip to content

chore: release 0.3.8#13

Merged
stevessr merged 2 commits into
masterfrom
release/0.3.8
Jul 19, 2026
Merged

chore: release 0.3.8#13
stevessr merged 2 commits into
masterfrom
release/0.3.8

Conversation

@stevessr

Copy link
Copy Markdown
Owner

What changed

  • establish an Olm session on demand before answering same-account room-key requests
  • send encrypted m.forwarded_room_key responses and explicit m.room_key.withheld outcomes
  • reuse and throttle missing-session request IDs, then cancel requests after a successful import
  • run proactive distribution immediately and use a 30-second fallback interval when enabled
  • preserve event-driven lazy mode when proactive exchange is disabled and the interval is zero, including sharing on device-list changes
  • document the E2EE modes and bump the plugin version to 0.3.8

Root cause

The response path attempted to encrypt directly with an existing Olm session. A newly requesting sibling device usually had no session yet, so the response failed. The proactive toggle also did not activate periodic room-key checks when the configured interval remained at its default zero.

Validation

  • PYTHONPATH=tests/unit uv run pytest -q (147 passed, 11 subtests)
  • uv run ruff check .
  • python -m compileall -q .
  • JSON metadata and translation validation
  • git diff --check

Copilot AI review requested due to automatic review settings July 19, 2026 16:04
@stevessr
stevessr merged commit 8fb740e into master Jul 19, 2026
1 check passed

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces an event-driven 'lazyload' mode for room-key distribution when proactive key exchange is disabled and the check interval is set to 0. In this mode, keys are shared on encrypted sends or when device lists change, rather than via periodic scans. The changes include updates to configuration parsing, logging, documentation, translations, and unit tests verifying the lazy mode behavior. There are no review comments, so I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@stevessr
stevessr deleted the release/0.3.8 branch July 19, 2026 16:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR finalizes the 0.3.8 release by clarifying and validating the “proactive vs lazy (event-driven)” room-key sharing behavior, updating related docs/translations, and bumping release metadata.

Changes:

  • Add/extend unit tests to cover default interval behavior and event-driven key sharing on device-list changes.
  • Update E2EE documentation, config metadata, and translations to describe lazy mode semantics when the interval is 0.
  • Bump plugin version to 0.3.8 and add the 0.3.8 changelog entry.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/unit/test_matrix_new_spec_compat.py Adds coverage for default interval selection and lazy-mode sharing on device-list changes.
README.md Updates configuration documentation for matrix_e2ee_key_share_check_interval lazy-mode semantics.
processors/event_processor_streams.py Adjusts warning log when device-list-triggered key sharing fails.
metadata.yaml Bumps plugin version to 0.3.8.
i18n/zh-CN.json Updates hint text for key-share interval behavior (lazy mode vs proactive).
i18n/ru-RU.json Updates Russian hint text for key-share interval behavior.
i18n/en-US.json Updates English hint text for key-share interval behavior.
e2ee/e2ee_manager.py Clarifies docstring and adds a lazy-mode startup log when interval is 0.
e2ee/e2ee_manager_sessions.py Expands docstring for device-list change key-sharing path (relevant to lazy mode).
config.py Updates inline comment documenting interval=0 semantics.
config_metadata.json Updates config hint to describe lazy-mode behavior when proactive exchange is off.
CHANGELOG.md Adds 0.3.8 entry describing the updated key-sharing behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +73 to +76
logger.warning(
"Event-driven room-key sharing after a device-list change "
f"failed: {e}"
)
Comment thread e2ee/e2ee_manager.py
Comment on lines +385 to +388
logger.info(
"Room-key distribution is using lazy mode; keys will be "
"rechecked on encrypted sends and device-list changes"
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants