Skip to content

Add heartbeat workflows and backend quality baseline#6

Merged
hetaoBackend merged 4 commits intomainfrom
codex/backend-quality-and-heartbeat
Mar 18, 2026
Merged

Add heartbeat workflows and backend quality baseline#6
hetaoBackend merged 4 commits intomainfrom
codex/backend-quality-and-heartbeat

Conversation

@hetaoBackend
Copy link
Copy Markdown
Owner

Summary

  • add heartbeat automation management with UI support and logging improvements
  • add command support across channels to switch the default coding agent
  • add a backend quality baseline with Ruff, pytest coverage, Makefile quality gates, and GitHub Actions CI

Test Plan

  • 运行 Ruff lint...
    uv run ruff check .
    All checks passed!
    检查代码格式...
    uv run ruff format --check .
    15 files already formatted
    运行 Python 测试并检查覆盖率...
    uv run pytest --cov --cov-report=term-missing
    ...................................................... [100%]
    =============================== warnings summary ===============================
    .venv/lib/python3.12/site-packages/lark_oapi/ws/pb/google/protobuf/internal/well_known_types.py:91
    /Users/danielwalnut/workspace/agentforge/.venv/lib/python3.12/site-packages/lark_oapi/ws/pb/google/protobuf/internal/well_known_types.py:91: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
    _EPOCH_DATETIME_NAIVE = datetime.datetime.utcfromtimestamp(0)

.venv/lib/python3.12/site-packages/lark_oapi/ws/client.py:26
/Users/danielwalnut/workspace/agentforge/.venv/lib/python3.12/site-packages/lark_oapi/ws/client.py:26: DeprecationWarning: There is no current event loop
loop = asyncio.get_event_loop()

.venv/lib/python3.12/site-packages/lark_oapi/ws/client.py:67
/Users/danielwalnut/workspace/agentforge/.venv/lib/python3.12/site-packages/lark_oapi/ws/client.py:67: DeprecationWarning: websockets.InvalidStatusCode is deprecated
def _parse_ws_conn_exception(e: websockets.InvalidStatusCode):

.venv/lib/python3.12/site-packages/websockets/legacy/init.py:6
/Users/danielwalnut/workspace/agentforge/.venv/lib/python3.12/site-packages/websockets/legacy/init.py:6: DeprecationWarning: websockets.legacy is deprecated; see https://websockets.readthedocs.io/en/stable/howto/upgrade.html for upgrade instructions
warnings.warn( # deprecated in 14.0 - 2024-11-09

tests/test_taskboard_bus.py::test_message_bus_round_trips_inbound_and_outbound_messages
tests/test_taskboard_bus.py::test_ui_channel_caches_outbound_messages_and_inbound_notifications
tests/test_taskboard_bus.py::test_ui_channel_caches_outbound_messages_and_inbound_notifications
tests/test_taskboard_bus.py::test_ui_channel_caches_outbound_messages_and_inbound_notifications
/Users/danielwalnut/workspace/agentforge/taskboard_bus.py:103: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
created_at: str = field(default_factory=lambda: datetime.utcnow().isoformat())

tests/test_taskboard_bus.py: 12 warnings
/Users/danielwalnut/workspace/agentforge/taskboard_bus.py:124: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
created_at: str = field(default_factory=lambda: datetime.utcnow().isoformat())

tests/test_telegram_forwarded_messages.py::TestTelegramForwardedMessageScenarios::test_user_forwards_another_users_code
/Users/danielwalnut/.local/share/uv/python/cpython-3.12.10-macos-aarch64-none/lib/python3.12/unittest/mock.py:1100: RuntimeWarning: coroutine 'TelegramChannel._create_task.._react' was never awaited
def _try_iter(obj):
Enable tracemalloc to get traceback where the object was allocated.
See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================ tests coverage ================================
______________ coverage: platform darwin, python 3.12.10-final-0 _______________

Name Stmts Miss Branch BrPart Cover Missing

channels/init.py 0 0 0 0 100%
channels/agent_utils.py 20 1 4 1 92% 51
channels/dir_utils.py 41 15 10 2 59% 51, 84-113
channels/feishu_channel.py 551 466 166 4 15% 41-44, 98-148, 151-163, 166-177, 183-240, 244, 250-291, 295-335, 339-358, 364-438, 484, 493->524, 494->493, 510->494, 521-522, 571-626, 632-645, 649-657, 661-1034
channels/slack_channel.py 354 326 106 0 6% 25-33, 70-100, 108-144, 147-155, 160-200, 205-228, 232-257, 261-273, 281-351, 357-387, 392-422, 425-444, 447-476, 482-559, 563, 569-581, 585-601, 604-620, 626-639, 643-646
channels/telegram_channel.py 327 238 104 1 24% 39-40, 108-114, 117-126, 132, 136-227, 233-241, 244-268, 271-274, 277-279, 321, 341-414, 452-466, 473-476, 479-513, 516-534, 537-580, 588-589, 599-616
taskboard.py 1944 1504 740 25 18% 45-47, 53-55, 61-63, 218, 224-225, 232-233, 238-239, 244-245, 250-251, 256-257, 280, 333, 407-408, 413-414, 453-460, 501-506, 509-511, 514-518, 530-532, 535, 537, 542->546, 605, 621-623, 626-637, 640-643, 706-714, 717-727, 782-790, 799-802, 808-811, 815-817, 825-835, 838-843, 853-862, 875-888, 891-899, 903-911, 915-925, 929-939, 942-950, 958-960, 969-976, 980-982, 986-996, 1000-1010, 1013-1017, 1020-1027, 1050-1097, 1127-1130, 1133-1173, 1176-1181, 1184-1213, 1216-1219, 1222-1224, 1230-1233, 1253->1261, 1266-1267, 1272, 1276, 1286, 1290-1313, 1323-1418, 1422, 1433-1440, 1474, 1503, 1506->1550, 1530->1532, 1592-1622, 1626-1661, 1669-1693, 1702-1747, 1750-2159, 2162-2171, 2184-2188, 2198-2202, 2205, 2208-2218, 2225, 2233-2246, 2250-2276, 2280-2303, 2308-2315, 2318-2319, 2322-2330, 2333-2336, 2339-2358, 2383-2390, 2395-2520, 2523-2729, 2732-3136, 3139-3344, 3347-3367, 3372-3378, 3381-3388, 3391-3398, 3403-3410, 3419-3426, 3430, 3437-3441, 3446-3480, 3484-3488, 3492-3601, 3605-3609
taskboard_bus.py 131 0 12 0 100%

TOTAL 3368 2550 1142 33 20%
Required test coverage of 20.0% reached. Total coverage: 20.02%
54 passed, 21 warnings in 2.94s

  • Verify backend coverage gate reaches 20.0% (currently 20.02%)

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agentforge-landing Ready Ready Preview, Comment Mar 18, 2026 8:13am

@hetaoBackend
Copy link
Copy Markdown
Owner Author

@claude please help me review the code.

@hetaoBackend hetaoBackend merged commit 45d1503 into main Mar 18, 2026
3 checks passed
@hetaoBackend hetaoBackend deleted the codex/backend-quality-and-heartbeat branch March 18, 2026 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant