Commit graph

56 commits

Author SHA1 Message Date
b53523ad6c Reject non-mapping agent registry entries 2026-04-24 12:57:00 +03:00
37f7ce27a2 Add Matrix agent registry loader 2026-04-24 12:54:30 +03:00
842117900a test: cover agent api base url suffix handling 2026-04-24 12:39:50 +03:00
7d58dd1caf fix: use direct agent api per request 2026-04-22 15:31:28 +03:00
0c2884c2b1 refactor: use thin upstream transport adapter 2026-04-22 01:25:11 +03:00
569824ead1 refactor: shrink agent api wrapper to thin adapter 2026-04-22 00:22:20 +03:00
4524a6abc8 feat: finalize matrix platform audit and docs 2026-04-21 15:35:03 +03:00
6422c7db58 feat: support shared-workspace file flow for matrix 2026-04-21 00:26:21 +03:00
323a6d3144 feat: commit staged matrix attachments on next message 2026-04-20 21:39:37 +03:00
f111ed3348 feat: add matrix staging list and remove flow 2026-04-20 21:37:12 +03:00
83c9a1513b feat: parse matrix staged attachment commands 2026-04-20 16:26:37 +03:00
0eaf124e21 feat: add matrix staged attachment state 2026-04-20 16:21:00 +03:00
73c472ecc4 feat(matrix): implement !reset via new platform_chat_id
Instead of calling a /reset endpoint on platform-agent, !reset now
generates a new thread_id (platform_chat_id) for the room. The old
WebSocket connection is closed and the next message creates a fresh
context automatically. No platform changes required.
2026-04-19 21:20:31 +03:00
fbcf44980e fix(sdk): correct WebSocket URL pattern for platform-agent
AgentApiWrapper._build_ws_url was building /v1/agent_ws/{chat_id}/
which does not exist in platform-agent. Fixed to /agent_ws/?thread_id={chat_id}
to match the actual endpoint and query-param isolation scheme.

Also simplify Matrix MVP settings handlers to MVP_UNAVAILABLE stubs
and add handle_unknown_command for unregistered !commands.
2026-04-19 21:05:02 +03:00
07c5078934 feat(task-7): verify matrix per-room context routing 2026-04-19 17:43:18 +03:00
c11c8ecfbf feat(task-5): scope matrix context state per room 2026-04-19 17:41:04 +03:00
8270e5821e Assign matrix platform chat ids on creation 2026-04-19 17:31:21 +03:00
0cdee532c4 fix: ensure lazy platform chat ids before load selection 2026-04-19 17:29:36 +03:00
9cb1657d21 Add lazy platform chat IDs for Matrix rooms 2026-04-19 17:25:25 +03:00
c666d908da fix: make matrix entry-room bootstrap idempotent 2026-04-19 17:23:07 +03:00
17d580096b Serialize Matrix chat sends 2026-04-19 17:18:32 +03:00
4533118b68 Fix agent API wrapper constructor compatibility 2026-04-19 17:11:49 +03:00
730ea70f78 Fix real client chat cache compatibility 2026-04-19 17:07:52 +03:00
414a8645bd Add per-chat real client routing 2026-04-19 17:03:48 +03:00
5782001d3d fix: preserve matrix room metadata when setting platform chat id 2026-04-19 16:52:43 +03:00
f3f9b10d6b feat: add platform chat id room metadata helpers 2026-04-19 16:50:12 +03:00
430c82dba1 feat(04-01): finalize AgentApi migration 2026-04-17 16:31:48 +03:00
b52fdc4670 feat(04-02): add matrix context management commands
- add save/load/reset/context handlers and matrix interception flows
- persist current session and last token usage in prototype state
2026-04-17 16:12:03 +03:00
2720ee2d6e feat(04-02): extend prototype and matrix pending state
- add saved session and last token tracking in prototype state
- add matrix load/reset pending store helpers
2026-04-17 16:07:35 +03:00
8efc91b02b fix(matrix): accept repeat invites before provisioning 2026-04-08 02:18:11 +03:00
37643a9695 fix prototype backend review issues 2026-04-08 01:43:44 +03:00
94bdb44b93 feat: wire matrix runtime to real backend 2026-04-08 01:40:38 +03:00
9784ca6783 feat: add real platform compatibility layer 2026-04-08 01:38:28 +03:00
fabedb105b Fix prototype state user isolation 2026-04-08 01:30:37 +03:00
19c85db89a Persist canonical prototype user state 2026-04-08 01:29:02 +03:00
083be77404 fix(agent): collision-safe thread keys 2026-04-08 01:25:52 +03:00
2fad1aaa66 feat: add prototype local state store 2026-04-08 01:25:46 +03:00
de20ff638a feat: add direct agent session transport 2026-04-08 01:00:02 +03:00
6ced154124 feat(matrix): land QA follow-ups and refresh docs
- harden Matrix onboarding/chat lifecycle after manual QA
- refresh README and Matrix docs to match current behavior
- add local ignores for runtime artifacts and include current planning/report docs

Closes #7
Closes #9
Closes #14
2026-04-05 19:08:58 +03:00
9cdb6118e9 test(01-06): harden matrix room-vs-chat regressions
- Seed invite tests with explicit next_chat_index progression instead of C1 assumptions
- Separate Matrix room ids from logical chat ids in dispatcher coverage
- Verify the full Matrix adapter suite against the tightened assertions
2026-04-03 12:35:09 +03:00
974935c880 test(01-06): add failing matrix command-only regressions
- Assert skills text no longer includes reaction-era labels
- Require converter to drop reaction callback support
- Lock !settings dashboard to read-only snapshot copy
2026-04-03 12:32:21 +03:00
716dec5dfd test(01-05): cover matrix confirm flow round trip
- assert room_id is preserved on !yes and !no callbacks
- exercise send_outgoing to confirm and cancel with user+room scope
2026-04-03 12:27:42 +03:00
97a3dc35ea test(01-04): add matrix space regression coverage
- add MAT-01..MAT-07 and MAT-09..MAT-12 regression tests for matrix adapter
- extend store and dispatcher coverage for pending confirmations and settings dashboard
- verify matrix adapter suite and full pytest suite stay green
2026-04-02 23:03:17 +03:00
6f1bdb4077 fix(01-04): update matrix dispatcher and reaction tests
- rewrite invite/new-chat assertions for Space-based Matrix flow
- replace legacy reaction text checks with !skill on/off expectations
- validate confirmation text against !yes and !no prompts
2026-04-02 23:00:50 +03:00
8a00d5ac54 fix(tg): /archive tries delete_forum_topic, falls back with explanation if API rejects 2026-04-02 15:16:39 +03:00
fcf5be7efa fix(tg): remove close_forum_topic from /archive — unsupported in Threaded Mode 2026-04-02 14:21:03 +03:00
d5ab527f5d fix(tg): QA fixes — stream_message, topic_created, archive reply
- sdk/mock.py: stream_message was async def (coroutine), must be async
  generator with yield — caused TypeError on every user message
- topic_events.py: on_topic_created now skips bot-created topics
  (from_user.id == bot.id); cmd_new already registers them under the
  correct human user_id
- commands.py: cmd_archive now sends "Чат архивирован." confirmation
- test_topic_events.py: add bot=SimpleNamespace(id=BOT_ID) to fixture
2026-04-02 14:14:19 +03:00
8901e60f6a fix(tg): reviewer fixes — error handling, timeouts, db index
- commands.py: try/except TelegramBadRequest around all Bot API calls (#2);
  /new handles "topics limit" with user-friendly message (#4)
- start.py: isolate _check_and_prune_stale_topics with try/except Exception (#3)
- message.py: asyncio.timeout(30) around stream_message; handle TimeoutError (#6)
- db.py: add idx_chats_user_id index in init_db() (#7)
- settings.py: remove dead active_chat_id variable (#8)
- tests: add test_message.py (stream error/success); add 2 tests in test_commands.py
  (topics limit, /archive in General topic)
2026-04-02 13:44:59 +03:00
24c61468d7 feat(tg): forum-first adapter complete — handlers, bot.py, 46 tests pass 2026-04-02 13:23:40 +03:00
82dc840544 feat(tg): db schema (user_id,thread_id) PK + converter context_key 2026-04-02 13:21:15 +03:00