Commit graph

182 commits

Author SHA1 Message Date
3340c126d6 docs: remove legacy threads and reports from planning state 2026-05-03 23:42:34 +03:00
9fc0b72ab1 docs: clean up GSD planning state and remove outdated legacy phases 2026-05-03 23:42:05 +03:00
65445f516f docs: map codebase 2026-05-03 00:31:20 +03:00
6dde5be17d docs: simplify testing section in new surface guide 2026-05-03 00:11:01 +03:00
7b2543aee7 docs: add local fullstack e2e instructions to new surface guide 2026-05-03 00:06:16 +03:00
e7e3912b5f docs: generalize new surface guide and clean up legacy docs 2026-05-03 00:01:25 +03:00
0f79494fbe feat(deploy): finalize MVP deployment and file transfer approach 2026-05-02 23:45:52 +03:00
6369721876 wip: 05-mvp-deployment paused at task 0/0 2026-04-30 18:04:24 +03:00
7e5f9c20a0 wip: Phase 05 complete, amd64 image rebuilt 2026-04-29 00:07:25 +03:00
5679b95450 wip: phase 05 paused after deployment handoff 2026-04-28 21:41:13 +03:00
5b537880ae docs(deploy): finalize multi-agent surface image handoff 2026-04-28 20:11:27 +03:00
51241d79e0 docs: fix README for platform integration — per-agent routing, compose as template 2026-04-28 03:26:09 +03:00
6d2d58f05d docs: update deploy-architecture and README for per-agent routing 2026-04-28 03:23:56 +03:00
4bbae9affa feat(deploy): per-agent base_url and workspace_path routing
- AgentDefinition gains base_url and workspace_path fields (optional)
- load_agent_registry parses them from matrix-agents.yaml
- _build_platform_from_env uses agent.base_url per agent (falls back to AGENT_BASE_URL)
- _agent_workspace_root() resolves workspace per agent from registry
- _materialize_incoming_attachments saves files to agent workspace_path/incoming/
- send_outgoing accepts workspace_root param; reads outgoing files from agent workspace_path
- dispatch loop computes workspace_root from room agent_id and passes to _send_all
- config/matrix-agents.yaml and example updated with base_url and workspace_path
2026-04-28 03:22:21 +03:00
d6b7720eca docs: add platform integration guide to README 2026-04-28 03:07:45 +03:00
b1aaa210a1 feat(deploy): platform handoff — agent routing, persistence, docs cleanup
Agent routing:
- Remove !agent command and manual agent selection flow
- Registry auto-assigns agent from user_agents mapping (fallback: agents[0])
- provision_workspace_chat and !new both write agent_id to room_meta
- Reconciliation backfills agent_id from registry on cold start
- Fix duplicate agent_id block in auth.py

Deployment stability:
- Add bot-state named volume to persist lambda_matrix.db and matrix_store
- Fix docker-compose.prod.yml duplicate environment: key (was silently losing all Matrix credentials)
- Fix MATRIX_AGENT_REGISTRY_PATH to use absolute container path /app/config/...
- Add bot-state volume declaration to docker-compose.fullstack.yml

Docs and config:
- Rewrite README.md for platform handoff (deploy table, working commands only)
- Rewrite docs/matrix-prototype.md (remove stale commands and mock descriptions)
- Remove !save/!load/!context/!agent from help text and welcome message
- Add !clear, !list, !remove, !yes/!no to help text
- Clean up .env.example (remove Telegram token, internal vars, real URLs)
- Update config/matrix-agents.example.yaml with user_agents section and comments
- Add explanatory comment to Dockerfile for --ignore-requires-python
- Remove silent uv sync fallbacks in Dockerfile
2026-04-28 03:05:11 +03:00
380961d6e9 docs(05-04): complete split deployment artifacts plan
- add phase summary for split deployment artifacts
- update state with phase 05 completion context
2026-04-28 01:18:47 +03:00
e73e13e758 docs(05-02): complete room-local clear plan
- add execution summary for room-local clear and strict routing
- update roadmap and state with plan 05-02 completion metadata
2026-04-28 01:17:48 +03:00
22a3a2b60a docs(05-04): document split deployment artifacts
- document prod vs fullstack compose usage
- align operator docs with shared /agents contract
2026-04-28 01:15:41 +03:00
85e2fda6bc feat(05-02): ship room-local clear semantics
- register clear as the room-context reset entrypoint when supported
- keep save and context bound to room platform chat ids and clear old upstream state
2026-04-28 01:15:39 +03:00
df6d8bf628 feat(05-04): split prod and fullstack compose artifacts
- add bot-only production compose contract
- add health-gated internal fullstack harness
2026-04-28 01:14:05 +03:00
ae37476ddf test(05-02): add failing regressions for clear routing
- cover room-local clear rotation and upstream disconnect behavior
- assert strict routed-platform failures on incomplete room bindings
2026-04-28 01:13:54 +03:00
8a80d004fd feat(05-01): reconcile matrix rooms before live sync
- rebuild room and user metadata from synced space topology at startup
- run reconciliation before sync_forever and persist legacy platform_chat_id backfills
2026-04-28 01:08:15 +03:00
6693d72cbd docs(05-03): complete shared-volume attachment hardening plan
- add 05-03 summary with task commits and verification details
- update roadmap and state for completed Phase 05 plan 03
2026-04-28 01:07:35 +03:00
a75b26a1cb test(05-01): add restart reconciliation regression coverage
- add startup reconciliation tests for recovery, idempotence, and startup ordering
- extend restart persistence coverage for legacy platform_chat_id backfill
2026-04-28 01:05:59 +03:00
9a0316076a fix(05-03): normalize shared-volume attachment paths
- strip /workspace and /agents roots before forwarding attachments upstream
- reuse the same normalization for send-file events returned to Matrix
2026-04-28 01:05:15 +03:00
cafb0ec9e4 test(05-03): add failing shared-volume attachment contract tests
- cover room-safe Matrix inbox paths under /agents workspaces
- assert /workspace and /agents file paths normalize to relative workspace paths
2026-04-28 01:04:31 +03:00
26eb27b01e docs(05): research mvp deployment phase 2026-04-28 00:42:24 +03:00
0f07634955 docs(05): add validation strategy 2026-04-27 23:00:33 +03:00
1a8f9cdca0 docs(05): research phase — DM-first onboarding, per-agent routing, file transfer, prod compose 2026-04-27 22:59:31 +03:00
e5c394f036 docs(05): finalize context — unauthorized users, !clear no-confirm, remove !settings 2026-04-27 22:51:49 +03:00
daa780c0b8 docs(05): single-chat arch + DM-first onboarding + !clear 2026-04-27 22:25:24 +03:00
e20634902e docs(05): update docker-compose decision — full stack with placeholder agent image 2026-04-27 22:17:34 +03:00
6553320001 docs(05): capture phase context 2026-04-27 22:13:52 +03:00
8ffbe7b6b3 wip: deployment architecture research — Phase 05 ready to plan
- docs/deploy-architecture.md: full deployment topology, agent API, file transfer via shared volume
- .planning/HANDOFF.json + .continue-here.md: session state for Phase 05 planning
2026-04-27 21:46:27 +03:00
c34db0e6c0 wip: first-chunk debug logging — paused waiting for platform-agent logs 2026-04-24 15:17:08 +03:00
2a23b30f83 chore: update STATE after Phase 04 multi-agent follow-up 2026-04-24 14:12:07 +03:00
e733119d1e feat: enforce agent routing and persist restart state
Task 4: stale room blocking + agent_id binding
- MatrixBot._check_agent_routing: blocks normal messages when user has no
  selected agent or room is bound to a different agent
- agent_routing_enabled flag on MatrixRuntime activates the check only
  in real multi-agent mode (RoutedPlatformClient)
- make_handle_new_chat now writes agent_id into new room metadata when
  user already has a selected agent

Task 5: durable restart state tests
- test_restart_persistence.py proves selected_agent_id, room agent_id,
  platform_chat_id, and the sequence counter all survive SQLiteStore
  close/reopen; also covers clean startup with no prior state
2026-04-24 14:01:49 +03:00
74cf028e8f feat: add !agent command and durable user agent selection
Users can now list available agents with !agent and select one by
number. Selection persists in user metadata (selected_agent_id). If the
current room has no agent binding yet, selecting an agent binds it
immediately so the user can start messaging without !new.

Also updates the dispatcher test to reflect that real-mode platform is
now RoutedPlatformClient, not a bare RealPlatformClient.
2026-04-24 13:54:25 +03:00
a65227e490 test: align matrix dispatch chat id contract 2026-04-24 13:29:49 +03:00
9ccba161a2 fix: require matrix agent registry in real mode 2026-04-24 13:24:56 +03:00
242f4aadd3 feat: add matrix routed platform facade 2026-04-24 13:22:05 +03:00
7627012f24 Keep Matrix registry docs preparatory 2026-04-24 13:14:52 +03:00
98caca100c Clarify Matrix agent registry docs 2026-04-24 13:12:29 +03:00
3b0401fb7c Require string agent registry fields 2026-04-24 13:11:02 +03:00
25aa5d9313 Make Matrix agent registry immutable 2026-04-24 13:08:25 +03:00
2fb6c10a5a Reject null agent registry fields 2026-04-24 13:05:26 +03:00
e801225220 Tighten Matrix agent registry validation 2026-04-24 13:02:19 +03:00
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