Commit graph

76 commits

Author SHA1 Message Date
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
1fdb5bf303 docs: add matrix direct-agent prototype design 2026-04-08 00:22:20 +03:00
b08a5e3d96 wip: matrix-restart-reconciliation-and-dev-reset-workflow paused at task 1/2 2026-04-07 18:13:06 +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
7fce4c9b3e wip: 01.1-matrix-restart-reconciliation-and-dev-reset-workflow paused at task 1/2 2026-04-04 13:14:53 +03:00
0299887924 docs(01.1): add validation strategy 2026-04-03 16:44:38 +03:00
4653ae877a docs(01.1): create phase plan 2026-04-03 16:40:44 +03:00
0f4ecc3c88 docs(01.1): research matrix restart reconciliation 2026-04-03 16:35:55 +03:00
795a56c686 docs(01.1): capture matrix restart and reset phase context 2026-04-03 16:25:48 +03:00
a2a286547b test(01): persist human verification items as UAT 2026-04-03 12:41:32 +03:00
fe096c51b7 docs(01-06): complete matrix gap-closure plan
Tasks completed: 2/2
- Remove reaction-era Matrix UX and strict !settings snapshot
- Harden room-vs-chat Matrix regressions

SUMMARY: .planning/phases/01-matrix-qa-polish/01-06-SUMMARY.md
2026-04-03 12:37:11 +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
3e06a67e24 feat(01-06): remove matrix reaction-era adapter UX
- Drop reaction-based skill and confirmation helpers from Matrix conversion
- Render !settings as a strict read-only dashboard snapshot
- Align Matrix adapter regressions with command-only helper text
2026-04-03 12:33:15 +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
80800be60c docs(01-05): complete matrix confirmation scope plan
- add 01-05 summary with self-check results
- update planning state and roadmap progress for phase 01
2026-04-03 12:29:44 +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
35695e043f fix(01-05): align matrix confirmation scope with user and room
- carry Matrix room_id through command callbacks
- persist pending confirmations by user_id and room_id
2026-04-03 12:26:32 +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
0d85947a0b docs(01-03): complete reaction removal plan
- add execution summary for Matrix text confirmation changes
- update state tracking and roadmap progress for phase 01
- record plan completion details for follow-up test work
2026-04-02 22:58:15 +03:00
01610ef768 feat(01-03): switch Matrix confirmations to text commands
- replace reaction-based helper text with !yes/!no and !skill commands
- resolve confirm and cancel through pending confirmation state
- render !settings as a read-only status dashboard
2026-04-02 22:56:16 +03:00
8a6a33a2ce feat(01-03): remove Matrix reaction confirmation flow
- drop reaction event handling from Matrix bot
- render OutgoingUI as text with !yes/!no instructions
- persist pending confirmations when UI buttons are sent
2026-04-02 22:55:24 +03:00
4636b359e2 docs(01-02): complete matrix chat handlers plan
- record the 01-02 execution summary and self-check
- update roadmap progress for completed phase 01 plans
- persist state decisions, metrics, and next-plan focus
2026-04-02 22:53:07 +03:00
b7a04b6cf1 feat(01-02): convert matrix archive and rename handlers to factories
- register archive and rename as client-aware closure handlers
- rename matrix rooms via stored surface_ref when a client is available
- keep archive scoped to core chat state for phase 1
2026-04-02 22:51:01 +03:00
c8770da345 fix(01-01): stop auto-registering unknown matrix rooms
- resolve known room chat ids from stored metadata only
- return an explicit unregistered fallback and warn in logs
2026-04-02 22:50:28 +03:00
84111ca524 feat(01-02): rewrite matrix new chat handler for spaces
- create new chat rooms inside the user's space
- store space-aware room metadata with next_chat_id
- handle room creation failures with user-facing messages
2026-04-02 22:50:26 +03:00
c2e29ccd1f feat(01-01): rewrite matrix invite flow for spaces
- create a private space and first chat room on first invite
- store space metadata and dynamic chat ids for new users
2026-04-02 22:49:59 +03:00
9123401556 feat(01-01): add matrix pending confirm store helpers
- add pending confirm prefix and storage helpers
- preserve existing matrix store behavior and tests
2026-04-02 22:49:25 +03:00
608297b751 docs(phase-1): fix plan blockers and switch to budget model profile 2026-04-02 22:42:52 +03:00
d2a6709f22 docs(01): create phase plan — 4 plans across 3 waves 2026-04-02 22:35:05 +03:00
a433a2c231 docs(phase-1): add research and validation strategy 2026-04-02 18:09:34 +03:00
be8bc911e0 docs(phase-01): research Matrix QA & Polish — Space+rooms, !yes/!no, test gaps 2026-04-02 18:08:12 +03:00
9cf9f70d06 docs(phase-1): add discuss context and log for Matrix QA & Polish 2026-04-02 17:54:53 +03:00
3130ed3095 chore: initialize GSD planning structure (PROJECT, ROADMAP, STATE, config) 2026-04-02 17:29:43 +03:00
fa719adc8d chore: remove .continue-here.md — telegram QA complete 2026-04-02 17:19:57 +03:00
319ea08da9 docs: add known limitations for Telegram Threaded Mode 2026-04-02 17:18:03 +03:00
9e7787f859 fix(tg): /new replies in current context instead of sending to new topic — prevents client crash on fast topic open 2026-04-02 15:21:48 +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
dd5745bf51 fix(tg): archive message — add hint to delete topic via Telegram UI 2026-04-02 15:11:03 +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
c95360ce1f wip: reviewer fixes in progress — pause point 2026-04-02 13:39:44 +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
5def360f8d chore: init feat/telegram-forum, cherry-pick keyboards 2026-04-02 00:50:14 +03:00