alt-glitch
79a5f03f92
refactor(types): simplify pass on P1 batch
...
Follow-up to 15ac253b per /simplify review:
- gateway/platforms/discord.py:3638 - move self.resolved = True *after*
the `if interaction.data is None: return` guard. Previously the view
was marked resolved before the None-guard, so a None data payload
silently rejected the user's next click.
- agent/display.py:732 - replace `if self.start_time is None: continue`
with `assert self.start_time is not None`. start() sets start_time
before the animate thread starts, so the None branch was dead; the
`continue` form would have busy-looped (skipping the 0.12s sleep).
- tests/hermes_cli/test_config_shapes.py - drop __total__ dunder
restatement test (it just echoes the class declaration); trim commit
narration from module docstring.
- tests/agent/test_credential_pool.py, tests/tools/test_rl_training_tool.py -
drop "added in commit ..." banners (narrates the change per CLAUDE.md).
2026-04-23 17:41:18 +05:30
alt-glitch
527ca7d238
fix(types): batch P1 ty hotfixes + run_agent.py annotation pass
...
15 P1 ship-stopper runtime bugs from the ty triage plus the cross-bucket
cleanup in run_agent.py. Net: -138 ty diagnostics (1953 -> 1815). Major
wins on not-subscriptable (-34), unresolved-attribute (-29),
invalid-argument-type (-26), invalid-type-form (-20),
unsupported-operator
(-18), invalid-key (-9).
Missing refs (structural):
- tools/rl_training_tool.py: RunState dataclass gains api_log_file,
trainer_log_file, env_log_file fields; stop-run was closing undeclared
handles.
- agent/credential_pool.py: remove_entry(entry_id) added, symmetric with
add_entry; used by hermes_cli/web_server.py OAuth dashboard cleanup.
- hermes_cli/config.py: _CamofoxConfig TypedDict defined (was referenced
by _BrowserConfig but never declared).
- hermes_cli/gateway.py: _setup_wecom_callback() added, mirroring
_setup_wecom().
- tui_gateway/server.py: skills_hub imports corrected from
hermes_cli.skills_hub -> tools.skills_hub.
Typo / deprecation:
- tools/transcription_tools.py: os.sys.modules -> sys.modules.
- gateway/platforms/bluebubbles.py: datetime.utcnow() ->
datetime.now(timezone.utc).
None-guards:
- gateway/platforms/telegram.py:~2798 - msg.sticker None guard.
- gateway/platforms/discord.py:3602/3637 - interaction.data None +
SelectMenu narrowing; :3009 - thread_id None before `in`; :1893 -
guild.member_count None.
- gateway/platforms/matrix.py:2174/2185 - walrus-narrow
re.search().group().
- agent/display.py:732 - start_time None before elapsed subtraction.
- gateway/run.py:10334 - assert _agent_timeout is not None before `//
60`.
Platform override signature match:
- gateway/platforms/email.py: send_image accepts metadata kwarg;
send_document accepts **kwargs (matches base class).
run_agent.py annotation pass:
- callable/any -> Callable/Any in annotation position (15 sites in
run_agent.py + 5 in cli.py, toolset_distributions.py,
tools/delegate_tool.py, hermes_cli/dingtalk_auth.py,
tui_gateway/server.py).
- conversation_history param widened to list[dict[str, Any]] | None.
- OMIT_TEMPERATURE sentinel guarded from leaking into
call_llm(temperature): kwargs-dict pattern at run_agent.py:7337 +
scripts/trajectory_compressor.py:618/688.
- build_anthropic_client(timeout) widened to Optional[float].
Tests:
- tests/agent/test_credential_pool.py: remove_entry (id match,
unknown-id, priority renumbering).
- tests/hermes_cli/test_config_shapes.py: _CamofoxConfig shape +
nesting.
- tests/tools/test_rl_training_tool.py: RunState log_file fields.
2026-04-23 17:41:18 +05:30