Update snapshot id for ipython - #8
Merged
Merged
Conversation
JasonOA888
added a commit
to JasonOA888/hermes-agent
that referenced
this pull request
Mar 8, 2026
Fixes NousResearch#633 Problem: - Sequential numbering gaps (e.g., NousResearch#1, NousResearch#2, NousResearch#5, NousResearch#8) confuse users - 200 char truncation too aggressive - Tool messages completely hidden with no indication Fix: 1. Use separate counter for displayed messages only 2. Skip tool messages but show count at end 3. Skip system messages 4. Increase truncation to 300 chars 5. Display 'N tool messages hidden' summary Impact: - Consistent numbering: NousResearch#1, NousResearch#2, NousResearch#3, NousResearch#4 - Users know when tool calls occurred - More context visible per message
h4x3rotab
referenced
this pull request
in Clawdi-AI/hermes-agent
Apr 10, 2026
- InlineApprovalCard component with approve/deny buttons - Cards appear inline in agent output stream (not just bell notification) - Context preview with code block formatting - Visual states: pending (amber pulse), approved (green), denied (red) - Both compact and full-size panels wired with filtered approvals
malaiwah
pushed a commit
to malaiwah/hermes-agent
that referenced
this pull request
Apr 11, 2026
…ests for upstream readiness' (NousResearch#8) from feat/docker-env-files-cleanup into main
malaiwah
pushed a commit
to malaiwah/hermes-agent
that referenced
this pull request
Apr 11, 2026
Discovered while verifying PR NousResearch#8 on the live oikos sidecar: BW_SESSION values were appearing UNMASKED in /opt/data/logs/agent.log because the existing masking heuristic only matches env names whose UPPERCASE form contains TOKEN / KEY / SECRET / PASSWORD / CREDENTIAL / PASSWD — and "BW_SESSION" matches none of those. The full rotating session token was sitting plaintext in a long-lived log file, defeating the entire point of rotating it. Two-pronged fix to make this hard to mis-name in the future: 1. **Origin-based masking (the load-bearing rule).** Anything that came from `_extra_env_for_exec()` is masked unconditionally, regardless of variable name. By construction the hook produces dynamic credential values (otherwise why inject them per exec rather than at container spawn?). This catches the gitea PR NousResearch#7 / NousResearch#8 `docker_env_files` path AND any future credentials++ registry subscribers, without relying on operators to pick "secret-sounding" variable names. 2. **Expanded name heuristic** for static env vars whose values come from `self._env` / forward_env / passthrough. Adds: SESSION, AUTH, COOKIE, JWT, BEARER, SIGNATURE, PIN, PASSPHRASE, PRIVATE. False-positive cost (over-masking a log line) is much lower than false-negative cost (a real credential in plaintext), so the policy is "add aggressively than reluctantly." 4 new tests in tests/tools/test_docker_environment.py: - SESSION-named env masked (regression for the BW_SESSION case) - AUTH/COOKIE/JWT/BEARER/PASSPHRASE values masked - dynamic-origin values masked even with innocuous names like INNOCENT_VAR (origin rule overrides name heuristic absence) - readability check: PORT/DEBUG/HOME etc are NOT over-masked Verified live on the running hermes-angelos build: agent.log now shows `-e BW_SESSION=***` instead of the full session token.
malaiwah
pushed a commit
to malaiwah/hermes-agent
that referenced
this pull request
Apr 13, 2026
- connection.py: cap header read at 8KB to prevent DoS from malicious handler - handler.py: use .find() instead of `in` + .index() to eliminate race in patch - handler.py: add truncated field to execute response when output exceeds 50KB - server.py: include error data field in formatted error messages - test: add timeout to test client recv, handle TimeoutExpired in close Fixes issues NousResearch#1, NousResearch#4, NousResearch#5, NousResearch#6, NousResearch#8, NousResearch#10 from Qwen 3.5 peer review on PR NousResearch#19. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
H1an1
pushed a commit
to H1an1/hermes-agent
that referenced
this pull request
Apr 19, 2026
Security: - NousResearch#1: secret is now required (ValueError if empty), server won't start without it - NousResearch#2: error responses return generic 'Delivery failed', no internal state leak - NousResearch#3: rate limiting: 1 msg per chat_id per 30s, returns 429 + retry_after - NousResearch#8: logging uses %-style formatting, not f-strings Functionality: - NousResearch#4: uses gateway.adapters dict directly (verified interface exists) - NousResearch#5: thread_id support via metadata dict (matches DeliveryRouter pattern) - NousResearch#6: uses adapter.send(chat_id, content, metadata=) — the real BasePlatformAdapter interface Code quality: - NousResearch#7: added tests/test_notify.py with 14 test cases covering all 8 issues - Platform string → Platform enum conversion with validation
briandevans
added a commit
to briandevans/hermes-agent
that referenced
this pull request
Apr 20, 2026
… (follow-up to NousResearch#12908) Previous commit seeded only ``provider``. The next CI run (Tests [24655838688](https://github.com/NousResearch/hermes-agent/actions/runs/24655838688)) shows the same test now trips on ``self.model``: FAILED test_interrupt_during_child_api_call_detected - AttributeError: 'AIAgent' object has no attribute 'model' Hit pattern NousResearch#8 from my own pre-push self-review checklist: "fixed one call site, missed sibling with same pattern." The ``_create_openai_client`` path reads ``self.provider``, ``self.model``, and ``self.base_url`` directly — if the mocked-client short-circuit doesn't engage (as apparently happens under xdist here), each missing attr surfaces as its own ``AttributeError``. Seed all three core identity attrs that ``AIAgent.__init__`` sets (run_agent.py:708, 734, 736) to make the bare-agent stub robust against any code path that touches them. Zero production-code change. 7 focused tests still pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
8 tasks
XelHaku
referenced
this pull request
in TrebuchetDynamics/gormes-agent
Apr 24, 2026
Covers: progress.json -Xtheirs cherry-pick; retry-prompt context; background companions with short timeout; candidate-pool refill trigger; proper BACKEND adapter; softer verify_worker_commit; audit CSV output; granular failure taxonomy. Each one is a separate commit; order matters for #3 prereq-of #4 and #8 prereq-of #2. Acceptance: audit productivity >50% sustained, no cherry_pick_failed on progress.json-only changes, candidate_refilled event fires on low-water, companion seam non-blocking, granular failure statuses in runs.jsonl. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Eric0831
pushed a commit
to Eric0831/hermes-agent-zeus
that referenced
this pull request
Apr 26, 2026
Captures Tier 3 tooling work that was considered during the 2026-04-26 overhaul but deferred. Each section explains the design, why it wasn't shipped, and the trigger condition that should reopen it. Tier 3 items deferred: NousResearch#7 Lazy MCP discovery — high refactor surface, low immediate value (gateway RAM/startup not currently constrained). NousResearch#8 Health-aware tool router — overlaps with already-shipped manual fallback (Tavily→DDG/httpx); marginal gain doesn't justify scaffolding. NousResearch#10 Batch tool API — concurrent path + within-turn dedup cache already mitigate the common case; would be disruptive. Each section includes a reference design so future work can pick up without re-deriving rationale, plus a "reopen when..." condition tied to observable signals (memory > 4GB, fallback rate > 30%, etc.) so the weekly health check (or operator) can flag when revisit is justified. Tier 3 NousResearch#9 (LLM-summarize large results) was shipped in 9b3cef1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
angelburgosrosado
pushed a commit
to angelburgosrosado/hermes-agent
that referenced
this pull request
Apr 27, 2026
Update snapshot id for ipython
alt-glitch
added a commit
that referenced
this pull request
Apr 28, 2026
Address adversarial review findings: 1. Race condition (#1): Job-level concurrency with cancel-in-progress collapses back-to-back pushes; ref: main checkout always gets latest branch state; explicit push target (origin HEAD:main). 2. Loop prevention (#2): File-whitelist check before commit aborts if any file outside nix/{tui,web}.nix was modified, preventing accidental self-triggering. 3. Silent infra failures (#8): nix-lockfile-check now fails explicitly when fix-lockfiles exits without reporting stale status (catches nix setup failures, network errors, script bugs that bypass continue-on-error). 4. Commit traceability (#11): Auto-fix commits include source SHA and workflow run URL in the commit body. 5. Explicit push target (#12): git push origin HEAD:main instead of bare git push.
alt-glitch
added a commit
that referenced
this pull request
Apr 28, 2026
* ci(nix): auto-fix stale npm hashes on push to main When a PR merges to main with updated package-lock.json or package.json in ui-tui/ or web/, the new auto-fix-main job detects stale npmDepsHash values and pushes a fix commit directly to main. This eliminates the recurring manual hash-bump PRs (#15420, #15314, #15272, #15244) by reusing the existing fix-lockfiles --apply pipeline. The fix commit only touches nix/*.nix files, which are outside the push path filter (package-lock.json / package.json), so it cannot re-trigger itself. Closes #15314 * fix(ci): use GitHub App token for auto-fix-main push GITHUB_TOKEN commits are invisible to workflow triggers (GitHub's infinite-loop prevention). The auto-fix-main job pushes directly to main, so the fix commit never triggered downstream nix.yml verification. Mint a short-lived token via the repo's GitHub App (daimon-nous, APP_ID + APP_PRIVATE_KEY secrets) so the push is treated as a real event and nix.yml fires to verify the corrected hashes. Tested via workflow_dispatch dry-run: app token minted successfully, checkout with app token succeeded, fix job correctly gated. Resolves review feedback from Bugbot (r3144569551). * ci(nix): rename lockfile check job for required status check Rename 'check' → 'nix-lockfile-check' so the status check name is unambiguous when added as a required check on main. * fix(ci): harden auto-fix-main against races, loops, and silent failures Address adversarial review findings: 1. Race condition (#1): Job-level concurrency with cancel-in-progress collapses back-to-back pushes; ref: main checkout always gets latest branch state; explicit push target (origin HEAD:main). 2. Loop prevention (#2): File-whitelist check before commit aborts if any file outside nix/{tui,web}.nix was modified, preventing accidental self-triggering. 3. Silent infra failures (#8): nix-lockfile-check now fails explicitly when fix-lockfiles exits without reporting stale status (catches nix setup failures, network errors, script bugs that bypass continue-on-error). 4. Commit traceability (#11): Auto-fix commits include source SHA and workflow run URL in the commit body. 5. Explicit push target (#12): git push origin HEAD:main instead of bare git push. --------- Co-authored-by: alt-glitch <alt-glitch@users.noreply.github.com>
donald131
pushed a commit
to donald131/hermes-agent
that referenced
this pull request
May 2, 2026
* ci(nix): auto-fix stale npm hashes on push to main When a PR merges to main with updated package-lock.json or package.json in ui-tui/ or web/, the new auto-fix-main job detects stale npmDepsHash values and pushes a fix commit directly to main. This eliminates the recurring manual hash-bump PRs (NousResearch#15420, NousResearch#15314, NousResearch#15272, NousResearch#15244) by reusing the existing fix-lockfiles --apply pipeline. The fix commit only touches nix/*.nix files, which are outside the push path filter (package-lock.json / package.json), so it cannot re-trigger itself. Closes NousResearch#15314 * fix(ci): use GitHub App token for auto-fix-main push GITHUB_TOKEN commits are invisible to workflow triggers (GitHub's infinite-loop prevention). The auto-fix-main job pushes directly to main, so the fix commit never triggered downstream nix.yml verification. Mint a short-lived token via the repo's GitHub App (daimon-nous, APP_ID + APP_PRIVATE_KEY secrets) so the push is treated as a real event and nix.yml fires to verify the corrected hashes. Tested via workflow_dispatch dry-run: app token minted successfully, checkout with app token succeeded, fix job correctly gated. Resolves review feedback from Bugbot (r3144569551). * ci(nix): rename lockfile check job for required status check Rename 'check' → 'nix-lockfile-check' so the status check name is unambiguous when added as a required check on main. * fix(ci): harden auto-fix-main against races, loops, and silent failures Address adversarial review findings: 1. Race condition (NousResearch#1): Job-level concurrency with cancel-in-progress collapses back-to-back pushes; ref: main checkout always gets latest branch state; explicit push target (origin HEAD:main). 2. Loop prevention (NousResearch#2): File-whitelist check before commit aborts if any file outside nix/{tui,web}.nix was modified, preventing accidental self-triggering. 3. Silent infra failures (NousResearch#8): nix-lockfile-check now fails explicitly when fix-lockfiles exits without reporting stale status (catches nix setup failures, network errors, script bugs that bypass continue-on-error). 4. Commit traceability (NousResearch#11): Auto-fix commits include source SHA and workflow run URL in the commit body. 5. Explicit push target (NousResearch#12): git push origin HEAD:main instead of bare git push. --------- Co-authored-by: alt-glitch <alt-glitch@users.noreply.github.com>
adurham
added a commit
to adurham/hermes-agent
that referenced
this pull request
May 4, 2026
…ses picker Two follow-ups based on user feedback after first ruflo /delegation usage: 1. Bug: typing `NousResearch#8` (or other Shift-digit / mouse / paste sequence) inside the curses radiolist exited the picker. Root cause: `key in (27, ord("q"))` matched ESC byte (27) which the terminal also emits as the leading byte of CSI sequences for unrelated keys. So a single ESC byte from a `NousResearch#8` keypress was treated as cancel. Fix in hermes_cli/curses_ui.py::curses_radiolist: when ESC arrives, briefly poll for a follow-up byte using nodelay() — if -1, it's a real lone ESC (cancel); otherwise drain the rest of the sequence and continue the loop. Removed the `27, ord("q")` tuple match; ESC is now its own guarded branch and `q` keeps its dedicated cancel path. Added explicit "any other key — silently ignore" comment so future drift doesn't reintroduce the bug. 2. Feature: curated default model assignments for all ~90 ruflo personas. New module-level dict ``SUGGESTED_ROLE_MODELS`` in hermes_cli/ruflo_agents.py mapping each known agent to one of three models based on what the persona actually does: - Haiku 4.5: retrieval / triage / scanners / monitors / lookup (researcher, scout-explorer, code-analyzer, issue-tracker, pii-detector, performance-monitor, etc.) - Sonnet 4.6: balanced default for code work, swarm coordination, github automation, day-to-day analysis (coder, tester, reviewer, all -coordinator/-manager swarm pieces, pr-manager, repo-architect, SPARC stages spec/pseudo/refinement, etc.) - Opus 4.7: deep reasoning, architecture, security, novel design, complex consensus (system-architect, security-architect, security-auditor, byzantine-coordinator, raft-manager, crdt-synchronizer, ddd-domain-expert, sparc-orchestrator, queen- coordinator, injection-analyst, safla-neural, etc.) New ``apply_suggested_defaults(overwrite=False)`` writes the map to ``delegation.model_by_role`` in one shot. Default mode preserves any existing user-customised pins; ``overwrite=True`` clobbers them. New slash command forms: /delegation defaults Apply curated defaults (preserve pins) /delegation defaults --force Apply, overwriting existing pins Tests: 5 new tests in test_ruflo_agents.py covering empty-fill, pin- preservation, force-overwrite, idempotence, and a sanity check that every suggested model is one of the three curated choices. 145/145 tests pass (was 140 before — added 5 new + no regressions).
4 tasks
devswha
added a commit
to devswha/hermes-agent
that referenced
this pull request
May 11, 2026
…target Operator request 2026-05-11: apply the mission strongly across the evolution loop so SOUL.md mutations and critic verdicts both optimize for one metric — `patina_judge.ai_score → 0` and `human_likeness → high`. - skill-modifier.md: new `## Top-level mission` section at the top of the prompt (above SOUL.md persona invariants), with concrete failure modes the modifier must move away from in every mutation. Explicit "do not default to shrink SOUL.md" guidance ties this to the W2 incident-aware path. - skill-critic.md: new reject criterion NousResearch#8 "AI-tone regression (DGM-H mission guard)" — rejects mutations that introduce or weaken defenses against bold-label headers, bullet-list answers, enumeration scaffolding, chatbot mannerisms, formulaic closings, excessive apology, unsolicited self-bio. Mission-block deletion or significant weakening is also a hard reject. Companion edits (not in this commit): - ~/.hermes/SOUL.md: new `# Mission` block at file top declaring the single goal and listing failure modes; Primary HARD rule (200-char cap) is kept as the implementation arm of the mission. - auto-memory `project_dgmh_mission.md`: pins the goal for future sessions so the frame survives session boundaries. 745 tests pass (dgmh/tests + tests/honcho_plugin).
McClean-Sherlock
pushed a commit
to McClean-codes/hermes-agent
that referenced
this pull request
Jun 7, 2026
…e removal, LOOP target warnings NousResearch#8: Card ID parsing uses regex 'Created\s+card\s+(\S+)' with fallback NousResearch#9: validate checks gate→revision pairs (referenced gates must have dependents) NousResearch#10: _find_revision_node documented single-revision assumption NousResearch#11: LOOP target mismatch warns before fallback NousResearch#12: Removed unused _find_dependents NousResearch#7: 32 unit tests — DAG, cycles, LOOP regex, failure propagation, state persistence, validation, card parsing
This was referenced Jun 9, 2026
1 task
8 tasks
19 tasks
9 tasks
12 tasks
2 tasks
23 tasks
This was referenced Aug 3, 2026
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.
No description provided.