Skip to content

feat: Support message history retrieval by room ID, name, or person#8

Merged
ChristopherJHart merged 2 commits intomainfrom
feat/retrieve-all-msgs-from-one-name-room
Aug 22, 2025
Merged

feat: Support message history retrieval by room ID, name, or person#8
ChristopherJHart merged 2 commits intomainfrom
feat/retrieve-all-msgs-from-one-name-room

Conversation

@aitestino
Copy link
Member

📝 Description

Adds room-specific message retrieval functionality to the Webex Summarizer, allowing users to fetch complete message history from specific rooms or direct messages. This complements the existing date-based activity summary feature and provides a powerful tool for analyzing conversation history with specific teams or individuals.

🔗 Related Issue(s)

  • Fixes # (no existing issue - user request)

✔️ Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • 🚀 New feature (non-breaking change which adds functionality)
  • ⚠️ Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 🛠️ Refactoring/Technical debt (internal code improvements with no direct user-facing changes)
  • 📄 Documentation update
  • ⚙️ Chore (build process, CI, tooling, etc.)
  • ✨ Other (please describe):

🎯 Key Changes & Implementation Details

  • New CLI Parameters: Added --room-id, --room-name, --person-name, and --max-messages flags for room-specific message retrieval
  • Enhanced WebexClient: Added methods to find rooms by ID, name, or person name with robust error handling and caching
  • Flexible Search Modes: Support for exact room ID lookup, case-sensitive room name matching, and DM discovery by person display name
  • Date Filtering Integration: Room searches can be combined with existing date/date-range filtering for targeted message analysis
  • Improved UI Display: Enhanced message tables to show full date & time instead of just time, crucial for multi-day conversation history
  • Smart Parameter Validation: Comprehensive validation ensuring mutually exclusive room identification options and proper error messaging
  • Enhanced Error Handling: User-friendly error messages with specific guidance for each search type (ID verification, name case-sensitivity, DM existence)
  • Code Quality Improvements: Refactored complex functions following SRP principles, fixed all pre-commit issues (line length, complexity, type annotations)
  • Comprehensive Documentation: Updated README with detailed usage examples, authentication requirements, and scenario-based guidance

🧪 Testing Done

  • New unit tests added/updated
  • Integration tests performed
  • Manual E2E testing performed (describe steps/scenarios):
    • Scenario 1: Room search by person name - --person-name="Justyna Chowaniec" successfully retrieved 825 messages with proper date/time display
    • Scenario 2: Combined room + date filtering - Verified messages can be filtered to specific dates while searching specific rooms
    • Scenario 3: Error handling - Tested invalid room names/IDs show helpful error messages with specific guidance
  • All existing tests pass

✅ Checklist

  • My code follows the style guidelines of this project (e.g., ran pre-commit run -a).
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation (if applicable).
  • My changes generate no new warnings.
  • I have added/updated relevant diagrams (if applicable).
  • I have updated release-notes.md with a summary of my changes under the appropriate version (if applicable, for significant user-facing changes or bug fixes).

🖼️ Screenshots (if applicable)

See attached terminal output showing successful retrieval of 825 messages from DM with "Justyna Chowaniec" displaying proper date & time formatting for message history spanning multiple days.

➡️ Next Steps (if applicable)

  • Consider adding unit tests for the new room finding functionality
  • Potential future enhancement: Add fuzzy matching for room/person names
  • Consider adding support for retrieving messages from multiple rooms simultaneously

❓ Questions & Open Items (if applicable)

  • Should we add rate limiting considerations for large message retrievals (>1000 messages)?
  • Would it be beneficial to add export functionality (CSV, JSON) for large conversation histories?

…ge retrieval

* Expanded the summarizer's capabilities to include retrieving complete message history from specific Webex rooms or direct messages.
* Implemented room identification by exact Room ID, room name, or person name, with optional date filtering and configurable message limits.
* Updated the README to reflect new features and usage examples for room-specific searches.
* Added validation for room parameters to ensure only one identification method is used at a time.
* Improved date handling for room-based searches and integrated logging for better traceability.
* Added a new function `_handle_room_search_dates` to manage date parsing for room-based searches, allowing for optional date filtering.
* Introduced `_run_date_range` to execute workflows over specified date ranges, improving the handling of date-based searches.
* Refactored the `main` function to streamline date handling logic and integrate new date management functions.
* Enhanced logging for better traceability during room-specific message retrieval processes.
* Updated the `run_app` function to utilize new helper functions for improved clarity and maintainability.
@aitestino aitestino self-assigned this Aug 22, 2025
@aitestino aitestino added the enhancement New feature or request label Aug 22, 2025
@ChristopherJHart ChristopherJHart merged commit 27c23d8 into main Aug 22, 2025
24 checks passed
@ChristopherJHart ChristopherJHart deleted the feat/retrieve-all-msgs-from-one-name-room branch August 22, 2025 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants