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
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
566ad1dfc7
feat(matrix): make e2ee configurable with enabled default
2026-02-20 17:57:10 +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
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
3200135f4b
test(matrix): cover formatted body and markdown fallback
2026-02-20 17:54:42 +01:00
Alexander Minges
840ef7363f
test(matrix): cover typing indicator lifecycle
2026-02-20 17:54:29 +01:00
Alexander Minges
b721f9f37d
test(matrix): cover response callbacks and graceful shutdown
2026-02-20 17:52:34 +01:00
Alexander Minges
988b75624c
test(matrix): add matrix channel behavior test
2026-02-20 17:48:16 +01:00
PiEgg
9789307dd6
Fix Codex provider routing for GitHub Copilot models
2026-02-19 13:30:02 +08:00
Re-bin
155fc48b29
merge: resolve conflict with main, keep extracted _run_agent_loop with temperature
2026-02-14 01:22:17 +00:00
Re-bin
3b580fd6c8
tests: update test_commands.py
2026-02-14 01:02:58 +00:00
Luke Milby
8a11490798
updated logic for onboard function not ask for to overwrite workspace since the logic already ensures nothing will be overwritten. Added onboard command tests and removed tests from gitignore
2026-02-13 08:43:49 -05:00
chengyongru
afc8d50659
test: add comprehensive tests for consolidate offset functionality
...
Add 26 new test cases covering:
- Consolidation trigger conditions (exceed window, within keep count, no new messages)
- last_consolidated edge cases (exceeds message count, negative value, new messages after consolidation)
- archive_all mode (/new command behavior)
- Cache immutability (messages list never modified during consolidation)
- Slice logic (messages[last_consolidated:-keep_count])
- Empty and boundary sessions (empty, single message, exact keep count, very large)
Refactor tests with helper functions to reduce code duplication by 25%:
- create_session_with_messages() - creates session with specified message count
- assert_messages_content() - validates message content range
- get_old_messages() - encapsulates standard slice logic
All 35 tests passing.
2026-02-13 16:30:43 +08:00
chengyongru
740294fd74
fix: history messages should not be change[kvcache]
2026-02-13 15:10:07 +08:00
张涔熙
3561b6a63d
feat(cli): rewrite input layer with prompt_toolkit and polish UI
...
- Replaces fragile input() hacks with robust prompt_toolkit.PromptSession
- Native support for multiline paste, history, and clean display
- Restores animated spinner in _thinking_ctx (now safe)
- Replaces boxed Panel with clean header for easier copying
- Adds prompt-toolkit dependency
- Adds new unit tests for input layer
2026-02-11 11:44:37 +08:00
张涔熙
cfe43e4920
feat(email): add consent-gated IMAP/SMTP email channel
2026-02-07 11:08:30 +08:00
Re-bin
77d4892b0d
docs: add core agent line count script and update README with real-time stats
2026-02-06 07:28:39 +00:00
Kiplangatkorir
7ef18c4e8a
Validate tool params and add tests
2026-02-02 20:39:08 +03:00