文件最后提交记录最后更新时间
matrix: e2e test for cross-signing auto-bootstrap Self-contained docker-compose harness that exercises the new bootstrap branch against a real Continuwuity homeserver. Three tests: 1. fresh bot → bootstrap fires, /keys/query returns master + ssk with UNPADDED base64 keyids, current device is signed by the new SSK 2. second startup with same crypto store → bootstrap is skipped 3. MATRIX_RECOVERY_KEY set → existing verify_with_recovery_key path takes precedence, no new bootstrap Run via: docker compose -f tests/e2e/matrix_xsign_bootstrap/docker-compose.yml up -d python tests/e2e/matrix_xsign_bootstrap/test_bootstrap.py docker compose -f tests/e2e/matrix_xsign_bootstrap/docker-compose.yml down -v The test mirrors the bootstrap snippet from matrix.py inline so it can run without importing the full hermes gateway and its deps. Skipped automatically when mautrix isn't installed or the homeserver is unreachable. All three pass against ghcr.io/continuwuity/continuwuity:latest (Continuwuity 0.5.7). The unpadded-keyid assertion is the load-bearing one — it's exactly the property the PR's bootstrap path provides that the hand-rolled base64.b64encode().decode() scripts get wrong. 1 个月前
test(e2e): add telegram gateway e2e test infrastructure Fixtures and helpers for driving messages through the full async pipeline: adapter.handle_message → background task → GatewayRunner command dispatch → adapter.send (mocked). Uses the established _make_runner pattern (object.__new__) to skip filesystem side effects while exercising real command dispatch logic. 2 个月前
test(e2e): fix Discord mock exception surface 20 天前
fix: follow-up for salvaged PRs #6293, #7387, #9091, #13131 - Fix duplicate 'timezone' import in e2e conftest - Fix test_text_before_command_not_detected asserting send() is awaited when no agent is present in mock setup (text messages don't produce command output) 1 个月前
fix(gateway): move quick-command dispatch before built-in handlers Quick commands of type "alias" that target built-in slash commands (e.g. /h -> /model) were processed too late in _handle_message — after the if-canonical=="model" checks. This meant alias expansion never reached the target handler and fell through to the LLM as raw text. Two fixes: 1. Move the quick_commands block before built-in dispatch so alias targets (like /model) hit the correct handler after expansion. 2. Extract bare command name from target_command via .split()[0] to feed _resolve_cmd() correctly (was using the full arg-string). 30 天前