Re-bin
6f266f1a8a
Merge pull request #922 : feat(feishu): multimedia download and share card parsing
2026-02-21 06:30:31 +00:00
Re-bin
8125d9b6bc
fix(feishu): fix double recursion, English placeholders, top-level Path import
2026-02-21 06:30:26 +00:00
coldxiangyu
b9c3f8a5a3
feat(feishu): add share card and interactive message parsing
...
- Add content extraction for share cards (chat, user, calendar event)
- Add recursive parsing for interactive card elements
- Fix image download API to use GetMessageResourceRequest with message_id
- Handle BytesIO response from message resource API
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-02-21 14:08:25 +08:00
coldxiangyu
98ef57e370
feat(feishu): add multimedia download support for images, audio and files
...
Add download functionality for multimedia messages in Feishu channel,
enabling agents to process images, audio recordings, and file attachments
sent through Feishu.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 12:56:57 +08:00
themavik
33396a522a
fix(tools): provide detailed error messages in edit_file when old_text not found
...
Uses difflib to find the best match and shows a helpful diff,
making it easier to debug edit_file failures.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-20 23:52:40 -05:00
TANISH RAJPUT
2502f68fd8
Merge pull request #6 from Athemis/feat/matrix-improvements
...
feat(matrix): E2E, typing, markdown/HTML, group policy, inbound+outbound media, thread replies
2026-02-20 23:01:56 +05:30
Alexander Minges
fcece3ec62
fix(matrix): match fork/main formatting exactly
2026-02-20 18:17:27 +01:00
Alexander Minges
13561772ad
fix(matrix): align with fork/main (docstrings, type annotations, formatting)
2026-02-20 18:15:32 +01:00
Alexander Minges
dd61a9143a
fix: remove accidental whitespace-only formatting changes from schema.py
2026-02-20 18:11:29 +01:00
Alexander Minges
52d086d46a
revert: restore context.py and manager.py to tanishra baseline (out of scope)
2026-02-20 18:08:04 +01:00
Alexander Minges
e8a4671565
test: remove message tool media test (message.py changes out of scope)
2026-02-20 18:06:13 +01:00
Alexander Minges
36d650e475
revert: restore message.py to tanishra baseline (out of scope)
2026-02-20 18:05:00 +01:00
Alexander Minges
334078e242
fix(message): apply media path filtering and drop attachment count from return value
...
Conflict resolution correction: HEAD's message.py retained raw media list and
attachment count in return string, but tests from 3de30bb require stripped/filtered
media_paths and a plain return message. Aligns HEAD behavior with cherry-picked tests.
2026-02-20 18:04:11 +01:00
Alexander Minges
705d5738e3
feat(matrix): reply in threads with fallback relations
...
Propagate Matrix thread metadata from inbound events and attach
m.relates_to
(rel_type=m.thread, m.in_reply_to, is_falling_back=true) to outbound
messages
including attachments. Add tests for thread metadata and thread replies.
2026-02-20 18:03:26 +01:00
Alexander Minges
6a40665753
feat(matrix): support outbound attachments via message tool
...
- extend message tool with optional media paths for channel delivery
- switch Matrix uploads to stream providers and handle encrypted-room payloads
- add/expand tests for message tool media forwarding and Matrix upload edge cases
2026-02-20 18:02:40 +01:00
Alexander Minges
d4d87bb4e5
fix(matrix): block outbound media when maxMediaBytes is zero
2026-02-20 18:02:15 +01:00
Alexander Minges
a28ae51ce9
fix(matrix): handle matrix-nio upload tuple response
2026-02-20 18:02:14 +01:00
Alexander Minges
97cb85ee0b
feat(matrix): add outbound media uploads and unify media limits with maxMediaBytes
...
- Use OutboundMessage.media for Matrix file/image/audio/video sends
- Apply effective media limit as min(m.upload.size, maxMediaBytes)
- Rename matrix config key maxInboundMediaBytes -> maxMediaBytes (no legacy fallback)
2026-02-20 18:02:13 +01:00
Alexander Minges
bfd2018095
docs: update maxMediaBytes documentation to include blocking option
...
Add clarification that setting to 0 blocks all attachments
2026-02-20 18:01:21 +01:00
Alexander Minges
10de3bf329
refactor(matrix): use base media event filter for callbacks
...
- Replaces the explicit media event tuple with MATRIX_MEDIA_EVENT_FILTER
based on
media base classes: (RoomMessageMedia, RoomEncryptedMedia).
- Keeps MatrixMediaEvent as the static typing alias for media-specific
handlers.
- Removes MatrixInboundEvent and uses RoomMessage in mention-related
logic.
- Adds regression tests for:
- callback registration using MATRIX_MEDIA_EVENT_FILTER
- ensuring RoomMessageText is not matched by the media filter.
2026-02-20 17:58:37 +01:00
Alexander Minges
1103f000fc
docs(matrix): clarify m.text body plaintext fallback note
2026-02-20 17:58:06 +01:00
Alexander Minges
9b06f682c3
docs(readme): document matrix e2eeEnabled option
2026-02-20 17:58:02 +01:00
Alexander Minges
566ad1dfc7
feat(matrix): make e2ee configurable with enabled default
2026-02-20 17:57:10 +01:00
Alexander Minges
085a311d4b
docs(matrix): clarify typing keepalive spec notes
2026-02-20 17:56:28 +01:00
Alexander Minges
8b3171ca2b
fix(matrix): include empty m.mentions in outgoing messages
2026-02-20 17:56:24 +01:00
Alexander Minges
ca66ddb0bf
feat(matrix): refresh typing indicator while processing
2026-02-20 17:56:15 +01:00
Alexander Minges
a482a89df6
feat(matrix): support inbound media attachments
2026-02-20 17:56:11 +01:00
Alexander Minges
7b2adf9d9d
docs(matrix): document raw html escaping in markdown renderer
2026-02-20 17:56:07 +01:00
Alexander Minges
6be7368a38
fix(matrix): sanitize formatted html with nh3
2026-02-20 17:55:59 +01:00
Alexander Minges
9b14869cb1
feat(matrix): support inline markdown html for url and super/subscript
2026-02-20 17:55:13 +01:00
Alexander Minges
cc5cfe6847
test(matrix): cover mention policy and sender filtering
2026-02-20 17:55:09 +01:00
Alexander Minges
fa2049fc60
feat(matrix): add group policy and strict mention gating
2026-02-20 17:55:05 +01:00
Alexander Minges
3200135f4b
test(matrix): cover formatted body and markdown fallback
2026-02-20 17:54:42 +01:00
Alexander Minges
e716c9caac
feat(matrix): send markdown as formatted html messages
2026-02-20 17:54:39 +01:00
Alexander Minges
840ef7363f
test(matrix): cover typing indicator lifecycle
2026-02-20 17:54:29 +01:00
Alexander Minges
45267b0730
feat(matrix): show typing while processing messages
2026-02-20 17:54:26 +01:00
Alexander Minges
ffac42f9e5
refactor(matrix): replace logging depth magic number
2026-02-20 17:52:37 +01:00
Alexander Minges
b294a682a8
chore(matrix): route matrix-nio logs through loguru
2026-02-20 17:52:36 +01:00
Alexander Minges
b721f9f37d
test(matrix): cover response callbacks and graceful shutdown
2026-02-20 17:52:34 +01:00
Alexander Minges
9d85393226
feat(matrix): add startup warnings and response error logging
2026-02-20 17:52:33 +01:00
Alexander Minges
7c33d3cbe2
feat(matrix): add configurable graceful sync shutdown
2026-02-20 17:52:32 +01:00
Re-bin
9a31571b6d
fix: don't append interim assistant message before retry to avoid prefill errors
2026-02-20 16:51:37 +00:00
Alexander Minges
988b75624c
test(matrix): add matrix channel behavior test
2026-02-20 17:48:16 +01:00
Alexander Minges
c926569033
fix(matrix): guard store load without device id and allow invites by default
2026-02-20 17:48:15 +01:00
djmaze
d3ddeb3067
fix: activate E2E and accept room invites in Matrix channels
2026-02-20 17:48:14 +01:00
Xubin Ren
21dd9e4112
Merge pull request #908 to route CLI interactive mode through message bus
...
refactor: route CLI interactive mode through message bus
2026-02-21 00:46:06 +08:00
Re-bin
7279ff0167
refactor: route CLI interactive mode through message bus for subagent support
2026-02-20 16:45:21 +00:00
Re-bin
f8ffff98a5
Merge PR #892 : fix MCP connection retry and concurrent connection guard
2026-02-20 16:09:13 +00:00
Re-bin
80b5e6cea0
Merge branch 'main' into pr-892
2026-02-20 16:06:17 +00:00
Re-bin
5ba3ee97a4
Merge PR #832 : avoid duplicate reply when message tool already sent
2026-02-20 15:56:13 +00:00