Skip to content

feat: add custom message type filtering to hook system (Phase 3.1, Task Group 3)#7

Merged
terraboops merged 1 commit intomainfrom
feature/phase3-task-group-3-message-routing
Feb 2, 2026
Merged

feat: add custom message type filtering to hook system (Phase 3.1, Task Group 3)#7
terraboops merged 1 commit intomainfrom
feature/phase3-task-group-3-message-routing

Conversation

@terraboops
Copy link
Owner

Summary

Implement custom message type filtering in the hook system to enable hooks to trigger on the 12 custom XEP message types defined in Phase 3.1.

This enables the hook system to discriminate between different structured message types (thought, tool_call, tool_result, todo, code_change, integration, review_comment, work_available, question, answer, status_update, feature_complete) and invoke appropriate handlers based on message type.

Changes

  • chattermax-server/src/hooks/config.rs: Add custom_message_type field to HookFilter
  • chattermax-server/src/hooks/filter.rs: Add extraction and matching logic for custom types
  • chattermax-server/tests/integration.rs: Add integration test for E2E custom type routing

Test Results

  • ✅ 20 unit tests pass (chattermax-server)
  • ✅ 1 integration test passes
  • ✅ 15 chattermax-core tests pass
  • ✅ Zero compiler warnings
  • ✅ Clippy passes with -D warnings
  • ✅ Code formatted

Acceptance Criteria

  • HookFilter struct has custom_message_type field
  • extract_custom_message_type() identifies all 12 types
  • matches_filter() checks custom types
  • Unit tests pass
  • Integration test passes
  • Zero compiler warnings
  • Clippy passes

… Group 3)

- Add custom_message_type field to HookFilter struct
- Implement extract_custom_message_type() for namespace detection
- Update matches_filter() to check custom types against expected types
- Add unit tests for custom type extraction and filtering (6 new tests)
- Add integration test for E2E custom type routing
- Fix clippy warnings in existing filter tests

Phase 3 Task Group 3 complete. Hook system now supports filtering
on all 12 custom XEP message types (thought, tool_call, tool_result,
todo, code_change, integration, review_comment, work_available,
question, answer, status_update, feature_complete) defined in Phase 3.1.

Test Results:
- 20 unit tests pass (chattermax-server)
- 1 integration test passes
- 15 chattermax-core tests pass
- Zero compiler warnings
- Clippy passes with -D warnings
- Code formatted with cargo fmt
@terraboops terraboops merged commit e497184 into main Feb 2, 2026
6 checks passed
terraboops added a commit that referenced this pull request Feb 3, 2026
… Group 3) (#7)

- Add custom_message_type field to HookFilter struct
- Implement extract_custom_message_type() for namespace detection
- Update matches_filter() to check custom types against expected types
- Add unit tests for custom type extraction and filtering (6 new tests)
- Add integration test for E2E custom type routing
- Fix clippy warnings in existing filter tests

Phase 3 Task Group 3 complete. Hook system now supports filtering
on all 12 custom XEP message types (thought, tool_call, tool_result,
todo, code_change, integration, review_comment, work_available,
question, answer, status_update, feature_complete) defined in Phase 3.1.

Test Results:
- 20 unit tests pass (chattermax-server)
- 1 integration test passes
- 15 chattermax-core tests pass
- Zero compiler warnings
- Clippy passes with -D warnings
- Code formatted with cargo fmt
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.

1 participant

Comments