retinue.git
2 weeks agofix(install): enable memory toolset so clean Hermes installs expose Retinue master
Svjatoslav Agejenko [Sun, 30 Aug 2026 02:08:33 +0000 (05:08 +0300)]
fix(install): enable memory toolset so clean Hermes installs expose Retinue

Found on a fresh Hermes "Blank Slate" install (valeriapc, 2026-08-30):
Retinue installed and selected via memory.provider, hermes memory status
reported the plugin available — yet the session had no retinue_memory_*
tools and no Retinue system-prompt block. Blank Slate setup writes
platform_toolsets.cli = [file, skills, terminal, vision] and lists memory
in agent.disabled_toolsets; with that gate closed Hermes initializes the
provider but withholds its entire model-facing surface.

- Install Retinue now runs `hermes tools enable --platform cli memory`
  after setting memory.provider. Verified in Hermes source
  (tools_config.py _save_platform_tools) that this both adds the toolset
  to platform_toolsets.cli and removes it from agent.disabled_toolsets.
- Failure of that step is non-fatal but fully visible: captured output
  and the manual command are printed (no silent 2>/dev/null), plus a note
  that other platforms (telegram, discord, ...) each need their own
  --platform <name> enable.
- Docs: Documentation/index.org (five installer steps),
  Documentation/Development/index.org (full step list incl. the
  pip -> ensurepip -> uv dependency chain), AGENTS.org (deploy section +
  new Blank Slate memory-toolset pitfall).

Verified with a stubbed-environment ad-hoc harness (10/10): the stub
hermes CLI receives `tools enable --platform cli memory`; a CLI that
rejects it produces a warning with the captured error and manual command
while the install still completes. Live fix applied on valeriapc:
memory now in platform_toolsets.cli and gone from agent.disabled_toolsets.

2 weeks agofix(install): survive pip-less uv-created Hermes venvs; stop hiding errors
Svjatoslav Agejenko [Sun, 30 Aug 2026 00:53:57 +0000 (03:53 +0300)]
fix(install): survive pip-less uv-created Hermes venvs; stop hiding errors

Found installing on a fresh Debian 13 machine (Hermes installed via its
own uv-based install.sh):

- Root cause: 'uv venv' does not seed pip into the Hermes runtime venv,
  so '$PYTHON -m pip install' died with 'No module named pip' and the
  installer's suggested manual pip command would have failed the same
  way. Dependency installation now chains: pip -> ensurepip-bootstrapped
  pip -> 'uv pip install --python' (uv probed on PATH and at
  $HERMES_HOME/bin/uv, covering non-login SSH shells with minimal PATH).
- No more silent failures: every fallible step (deps, model preload,
  hermes config set, plugin validation) captured stderr behind
  2>/dev/null, making the remote failure undebuggable. All of them now
  capture combined output into DIAG_DIR (cleaned via EXIT trap) and
  print a show_log_tail excerpt on failure; failure guidance names
  commands that actually work on a pip-less host (uv, ensurepip).
- Docs: Documentation/index.org step 2 describes the install chain;
  AGENTS.org gains the uv-venv-has-no-pip and no-silent-2>/dev/null
  pitfalls and the tooling note describes the new chain.

Verified with a stubbed-environment ad-hoc harness (20/20): pip-less
uv venv + broken ensurepip + uv present (exact remote repro) installs
via uv; pip-present venv uses pip; total failure prints captured
diagnostics and working manual commands. Canonical suite green.

8 weeks agofix(install): work on bare servers without PATH hermes or python3-venv
Svjatoslav Agejenko [Sat, 18 Jul 2026 12:27:17 +0000 (15:27 +0300)]
fix(install): work on bare servers without PATH hermes or python3-venv

Found during first install on a fresh Debian 13 server:

- Installer now probes ~/.local/bin/hermes, ~/bin, /usr/local/bin and
  /usr/bin for the hermes CLI instead of relying on PATH alone.
  Non-login SSH shells never read ~/.profile, so "hermes CLI not found"
  fired and memory.provider was left unset.
- New shared Tools/lib/common.sh picks a working Python for all Tools
  scripts: project .venv (only if sqlite-vec + model2vec actually
  import — a failed python3 -m venv on hosts without the python3-venv
  apt package leaves a half-created venv that passes -x checks), then
  uv (bundled with Hermes at ~/.hermes/bin/uv), then the Hermes runtime
  venv. Broken half-venvs are recreated instead of trusted.
- Docs: prerequisites updated (no PATH / python3-venv needed), importer
  fallback and idempotency documented, systemd restart hint including
  the "Gateway already running (PID ...)" stale-lock case.
- AGENTS.org: Tools/lib layout entry and three new pitfalls.

8 weeks agoinitial commit
Svjatoslav Agejenko [Sat, 18 Jul 2026 11:12:38 +0000 (14:12 +0300)]
initial commit