hermes-agent/hermes_cli
Brooklyn Nicholson b641639e42 fix(debug): distinguish empty-log from missing-log in report placeholder
Copilot on #14138 flagged that the share report says '(file not found)'
when the log exists but is empty (either because the primary is empty
and no .1 rotation exists, or in the rare race where the file is
truncated between _resolve_log_path() and stat()).

- Split _primary_log_path() out of _resolve_log_path so both can share
  the LOG_FILES/home math without duplication.
- _capture_log_snapshot now reports '(file empty)' when the primary
  path exists on disk with zero bytes, and keeps '(file not found)'
  for the truly-missing case.

Tests: rename test_returns_none_for_empty → test_empty_primary_reports_file_empty
with the new assertion, plus a race-path test that monkeypatches
_resolve_log_path to exercise the size==0 branch directly.
2026-04-22 15:27:54 -05:00
..
__init__.py
auth_commands.py fix(auth): unify credential source removal — every source sticks (#13427) 2026-04-21 01:52:49 -07:00
auth.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
backup.py fix(backup): handle files with pre-1980 timestamps 2026-04-20 00:47:40 -07:00
banner.py
callbacks.py
claw.py
cli_output.py
clipboard.py
codex_models.py fix: remove codex spark model support 2026-04-20 04:51:44 -07:00
colors.py
commands.py fix(tui): @folder: only yields directories, @file: only yields files 2026-04-21 14:31:48 -05:00
completion.py
config.py feat(state): auto-prune old sessions + VACUUM state.db at startup (#13861) 2026-04-22 05:21:49 -07:00
copilot_auth.py
cron.py
curses_ui.py
debug.py fix(debug): distinguish empty-log from missing-log in report placeholder 2026-04-22 15:27:54 -05:00
default_soul.py
dingtalk_auth.py test(dingtalk): cover QR device-flow auth + OpenClaw branding disclosure 2026-04-17 05:08:07 -07:00
doctor.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
dump.py refactor: remove smart_model_routing feature (#12732) 2026-04-19 18:12:55 -07:00
env_loader.py fix(cli): ensure project .env is sanitized before loading 2026-04-22 05:51:44 -07:00
gateway.py refactor(qqbot): migrate qr onboard flow to sync + consolidate into onboard.py 2026-04-22 05:50:21 -07:00
hooks.py feat: shell hooks — wire shell scripts as Hermes hook callbacks 2026-04-20 20:53:51 -07:00
logs.py
main.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
mcp_config.py fix(mcp): consolidate OAuth handling, pick up external token refreshes (#11383) 2026-04-16 21:57:10 -07:00
memory_setup.py
model_normalize.py fix(copilot): normalize vendor-prefixed and dash-notation model IDs (#6879) (#11561) 2026-04-17 04:19:36 -07:00
model_switch.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
models.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
nous_subscription.py fix(fal): extend whitespace-only FAL_KEY handling to all call sites 2026-04-21 02:04:21 -07:00
pairing.py
platforms.py
plugins_cmd.py feat(plugins): make all plugins opt-in by default 2026-04-20 04:46:45 -07:00
plugins.py fix(plugins+nous): auto-coerce memory plugins; actionable Nous 401 diagnostic (#14005) 2026-04-22 05:54:11 -07:00
profiles.py fix(gateway): fix discrepancies in gateway status 2026-04-17 18:58:29 -07:00
providers.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
runtime_provider.py fix(kimi-coding): add KIMI_CODING_API_KEY fallback + api_mode detection for /coding endpoint 2026-04-21 19:48:39 -07:00
setup.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
skills_config.py
skills_hub.py Merge branch 'main' of github.com:NousResearch/hermes-agent into feat/ink-refactor 2026-04-17 08:59:33 -05:00
skin_engine.py fix(skins): don't inherit status_bar_* into light-mode skins 2026-04-22 13:20:02 -07:00
status.py feat: add Step Plan provider support (salvage #6005) 2026-04-22 02:59:58 -07:00
timeouts.py fix(config): add stale timeout settings 2026-04-20 00:52:50 -07:00
tips.py feat(delegate): orchestrator role and configurable spawn depth (default flat) 2026-04-21 14:23:45 -07:00
tools_config.py feat(plugins): pluggable image_gen backends + OpenAI provider (#13799) 2026-04-21 21:30:10 -07:00
uninstall.py feat(uninstall): offer to remove named profiles when uninstalling from default 2026-04-18 19:18:13 -07:00
web_server.py feat(dashboard): track real API call count per session 2026-04-22 05:51:58 -07:00
webhook.py feat(webhook): direct delivery mode for zero-LLM push notifications (#12473) 2026-04-19 05:18:19 -07:00