itpartypattaya/hermes-field-notes
Field notes for a Hermes install: pitfalls with root cause, local core patches checked after every update, and a pinned Telegram dashboard.
Changelog
1.2.4 — 2026-10-11
- Common options before the command.
fieldnotes.py --read-only doctorfailed with "unrecognized arguments: --read-only" (exit 2):--read-only,--json,--root,--hermes-home,--hermes-rootand--configwere accepted only after the subcommand, while agents naturally put them first. Both positions work now. The subcommand copies useargparse.SUPPRESS, so a flag given first is not reset by the subcommand's default.tickstill refuses--read-onlyin either position. Found by the agent itself on Hermes 0.21.6. - Tests: 94 → 95.
1.2.3 — 2026-10-08
Checked against Hermes 0.21.6 (818c13b):
- the plugin installs with
hermes plugins install, andplugins validateand the skills scanner both say safe; - the plugin skill loads;
install.py,doctor,lint,driftandinstall_cron.pywork;- the no_agent job runs through the 0.21.6 scheduler, on both the silent and the alert path.
No code change was needed; the content was updated.
- Known pitfalls re-verified against 0.21.6 (42 entries).
- Moved to "fixed upstream":
- reasoning delivered as the answer — promotion is now gated by route;
- a temporary
HERMES_HOMErewriting the launcher; - duplicate YAML keys.
- Updated:
- plugin skills reach the index with their full description;
session_resetnotice;- cron
last_failure; hermes update --channel stable;- gateways paused before the checkout;
- background processes on gateway shutdown.
- New:
hermes updateparks local core edits ingit stashwhen it cannot restore them.
- Moved to "fixed upstream":
- Patch recipes: the reasoning recipe is marked fixed in 0.21.6, with the upstream sign for its checks. The other four bugfixes are still needed.
- After an update: for
MISSING, look atgit stash listfirst. - Tests cover the 0.21.6 tag scheme (
v0.21.6,rc.N-v…,abandoned-rc.N-v…,+canary): 93 → 94.
1.2.2 — 2026-10-09
Fixes ported from field-notes 2.0.1, found by a Codex CLI review of the sibling skill that shares this code.
- Locks (the store lock and the cron/doctor state lock) are OS file locks (
fcntl.flock/msvcrt.locking): the OS releases them when the owner exits, and a live owner's lock is never broken by age. A longtick(slow Telegram calls) can no longer be overtaken by a second run. migratereads the legacy**Date:** · **Area:** · **Status:**line only right after the first# Title; the same line in a code block is no longer taken as the note's metadata. A file whose first line is---followed by spaces is treated as frontmatter and, if damaged, skipped.- Frontmatter parser reports unclosed quotes and lists instead of accepting them; a backslash before
a closing quote is handled (
"C:\\" # comment). - Masking in
issue-draft: user names with spaces, Git Bash/c/Users/…paths,C:/Users/…with forward slashes and Claude project slugs (C--Users-<name>-…). - Secret patterns (shared by
issue-draftandlint): Telegram bot tokens ending in-, allgh*_tokens, GitLabglpat-and friends, lower-casebearer, Google API keys, Stripe keys, JWTs. lint: dates must be exactlyYYYY-MM-DD(Python 3.11+ also parses20260101and week dates); an unsupportedschema_versionis an error.search: short and technical terms (r,go,C++,C#) are matched as whole words, sogono longer matchesgoogleandrno longer matches everything.root --jsonprints JSON.- Tests: 84 → 93.
1.2.1 — 2026-10-07
Fixes from a Codex CLI review: secret masking of whole PEM blocks, tick refuses --read-only, no false
OK/UPSTREAMED, pending alerts survive an interrupted run, no automatic resend after an uncertain send,
lock ownership, a store lock, drift counts untracked files and local commits, rollback by ancestry,
prerelease ordering, migration status mapping.
1.2.0 — 2026-10-07
Patch recipes: five core bugfixes and five customization ideas with checks and upstream status.
1.1.0 — 2026-10-06
Readable dashboard, core vs the latest release and main, banners.
1.0.0 — 2026-10-06
First release: pitfalls with root cause, a registry of local core patches checked after every
hermes update, an optional pinned Telegram dashboard.