surfaces/.planning/phases/01-matrix-qa-polish/01-06-SUMMARY.md
Mikhail Putilovskij fe096c51b7 docs(01-06): complete matrix gap-closure plan
Tasks completed: 2/2
- Remove reaction-era Matrix UX and strict !settings snapshot
- Harden room-vs-chat Matrix regressions

SUMMARY: .planning/phases/01-matrix-qa-polish/01-06-SUMMARY.md
2026-04-03 12:37:11 +03:00

4.6 KiB

phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established requirements-completed duration completed
01-matrix-qa-polish 06 testing
matrix
pytest
settings
reactions
room-routing
phase provides
01-matrix-qa-polish 01-05 room-scoped confirmation flow and Matrix callback payload updates
Matrix adapter helpers and converter paths no longer advertise or parse reaction-era UX
Matrix `!settings` renders a strict read-only dashboard snapshot
Matrix regressions distinguish room ids from logical chat ids and dynamic chat allocation
adapter/matrix
matrix verification
future Matrix QA
added patterns
command-only Matrix helper text
explicit room-id-vs-chat-id assertions
created modified
adapter/matrix/reactions.py
adapter/matrix/converter.py
adapter/matrix/handlers/settings.py
tests/adapter/matrix/test_converter.py
tests/adapter/matrix/test_reactions.py
tests/adapter/matrix/test_dispatcher.py
tests/adapter/matrix/test_invite_space.py
Removed Matrix reaction conversion entirely and kept command callbacks limited to !yes/!no.
Kept !settings as a pure snapshot surface while preserving mutable subcommands outside the dashboard.
Seeded invite and dispatcher tests with explicit next_chat_index and room ids instead of treating C1 as Matrix transport identity.
Matrix adapter tests should assert room_id separately from logical chat_id whenever Matrix rooms are involved.
Matrix user-facing helper text should describe only supported command flows, never deprecated reaction UX.
4 min 2026-04-03

Phase 1 Plan 06: Matrix reaction cleanup and room-aware regressions Summary

Matrix helper text and conversion are command-only, !settings is snapshot-only, and Matrix regressions now enforce room-aware chat allocation instead of legacy C1 shortcuts.

Performance

  • Duration: 4 min
  • Started: 2026-04-03T09:32:21Z
  • Completed: 2026-04-03T09:35:39Z
  • Tasks: 2
  • Files modified: 7

Accomplishments

  • Removed remaining reaction-era Matrix UX from adapter helper text and conversion paths.
  • Tightened the !settings dashboard so it reports state without mutation prompts.
  • Rewrote Matrix regressions to assert dynamic chat allocation and room-id separation explicitly.

Task Commits

Each task was committed atomically:

  1. Task 1: Remove reaction-era Matrix UX and update the immediately affected regressions - 974935c (test), 3e06a67 (feat)
  2. Task 2: Remove the remaining brittle C1 assumptions from room-based Matrix regressions - 9cdb611 (test)

Files Created/Modified

  • adapter/matrix/reactions.py - Reduced the module to command-only text builders.
  • adapter/matrix/converter.py - Removed exported reaction callback conversion support.
  • adapter/matrix/handlers/settings.py - Removed mutation prompts from the Matrix settings dashboard.
  • tests/adapter/matrix/test_reactions.py - Locked helper text expectations to command-only output.
  • tests/adapter/matrix/test_converter.py - Replaced reaction callback coverage with a regression asserting the converter no longer exports that path.
  • tests/adapter/matrix/test_dispatcher.py - Separated current chat context from allocated logical chat ids in Matrix-facing assertions.
  • tests/adapter/matrix/test_invite_space.py - Seeded invite metadata to verify dynamic next_chat_index progression.

Decisions Made

  • Removed from_reaction instead of leaving a deprecated no-op path, so supported Matrix interactions are unambiguous.
  • Left mutable Matrix settings subcommands outside !settings; only the dashboard copy was tightened in this plan.
  • Treated the pre-existing missing singular !skill command wiring as out of scope for this plan because the acceptance criteria only required preserving !skills, !soul, and !safety subcommands and the reaction/settings cleanup.

Deviations from Plan

None - plan executed exactly as written.

Issues Encountered

  • Task 2's red phase did not fail after tightening the assertions because the runtime already honored dynamic chat allocation; the work reduced to test cleanup and suite verification.

User Setup Required

None - no external service configuration required.

Next Phase Readiness

  • Matrix Phase 01 gap-closure work is verified against both the Matrix suite and the full repository suite.
  • Remaining manual verification is still limited to real Matrix client UX in Element and similar clients.

Self-Check: PASSED

  • FOUND: .planning/phases/01-matrix-qa-polish/01-06-SUMMARY.md
  • FOUND: 974935c
  • FOUND: 3e06a67
  • FOUND: 9cdb611