feat(cli): Hermes lifecycle on a real host; runtime splits oversized files - #155
Closed
titanwings wants to merge 3 commits into
Closed
titanwings wants to merge 3 commits into
titanwings wants to merge 3 commits into
Conversation
A real Hermes Agent v0.19.0 was installed in an isolated virtualenv and driven end to end. The integration failed at four points, each now fixed with evidence from that host: - setup wrote the install manifest only after the host projection succeeded, but a discovery-first host connects to Distilly's launcher during its own install step and that launcher resolves its binding from the manifest. Setup now writes the entry first and restores the previous manifest if the projection fails. - Hermes' mcp add abandoned the connection before the launcher finished opening its store, so the entry landed disabled; the command now passes an explicit connect timeout and setup enables our own entry when discovery still fails. - the five-tool check required the bare phrase 'Tools discovered: 5' while v0.19.0 prints a status glyph before it. - the config entry carries a host-owned 'connect_timeout' key that the strict entry parser rejected. Verified on that host: setup installs, doctor reports the unverified-version floor warning, hermes mcp test distilly connects in 722 ms and discovers exactly the five tools, and uninstall removes the skill, wrapper, and config entry while preserving person data.
A file larger than the 1 MiB material limit was refused outright, so a real chat export could not enter Distilly at all. The trusted local loader now parses up to one call's worth of text and splits the result into parts that each fit the limit, cutting on line boundaries and only by characters when a single line is itself too large. Each part becomes its own material with its own bytes, its own raw identity, a deterministic '[part i of n]' label, and a warning that names the split. The engine's loader check gains a lower bound instead of an exact count, because one requested path can now yield several records, while the wire limit for one result stays the upper bound. The harvest command sends a file larger than one material in its own batch so its parts cannot push a call past that limit, and the parsed ingest item carries the parser warnings it previously dropped.
…rmes setup
A ninth verification round passed every claim and then found two states with no
way out:
- a source install appends provenance to the Hermes version line
('Hermes Agent v0.19.0 (2026.7.20) · upstream 01906e99'), which the version
pattern rejected outright, so setup failed on the real machine. The suffix is
now dropped rather than matched, so rebuilding the same release is also not
read as a host upgrade.
- killing setup leaves the host having written the distilly entry with our
wrapper but without the tool toggles. Setup refused that entry as foreign and
uninstall refused it as modified, so only manual host surgery recovered.
An entry whose command is our own wrapper is now recognized as ours and setup
re-applies the expected toggles instead of dead-ending.
Owner
Author
|
Superseded: this stacked series is consolidated into the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
feat(cli): Hermes lifecycle on a real host; runtime splits oversized files
Commits
Stack
Stacked on
pr/05-unverified-floor; the whole series ends atdistilly-work(0bd924e).Verification
Every feature carries an author report and an independent audit in the delivery evidence folder (
host-verification/), including screenshots and the audit verdict that drove the fixes. Gates on the top of the stack: format, lint, docs, release check, and 1163 tests.Real hosts
Codex, Claude Code 2.1.268, OpenClaw 2026.9.2, Hermes v0.19.0, and DSH 0.1.5-rc.1 were each exercised end to end (install, host-visible confirmation, exactly five MCP tools, person Skill install/remove, uninstall). Capacity fixtures are recorded for Codex 0.146.0, OpenClaw 2026.3.24, and Hermes v0.9.0; newer host versions run on the labelled conservative floor.
Evidence
Author reports and screenshots (delivery evidence folder
host-verification/):Independent audit reports: