Terminal backend fanout pr2 - PENDING - #23
Closed
shannonsands wants to merge 3 commits into
Closed
Conversation
- Preserve full trajectory while truncating prompt view per turn (avoids context overflow) - Add max_context_tokens support and wire from env config - Normalize tool call arguments robustly (dict / stringified JSON / plain string) - Avoid double-encoding tool arguments in Hermes parser - Add tool-call metrics to AgentResult for debugging/optional shaping Scope: environments/* only
- Default Modal behavior unchanged - New pooled mode reuses warm Modal environments across tasks - Per-task working directory (/root/hermes_tasks/<task_id>) with best-effort cleanup - Minimal integration: terminal_tool _create_environment now accepts task_id and selects pooled modal wrapper when configured
h4x3rotab
pushed a commit
to Clawdi-AI/hermes-agent
that referenced
this pull request
Apr 10, 2026
…settings Cherry-picked from PR NousResearch#23 (clawjasper56). Adds skipHydration to Zustand persist, defers initializeSettingsAppearance to useEffect, and adds mounted guard to ThemeToggleMini.
h4x3rotab
pushed a commit
to Clawdi-AI/hermes-agent
that referenced
this pull request
Apr 10, 2026
NousResearch#23) The inspector panel already uses relative /api/memory paths (fixed in main), but the parent GET route was missing — requests fell through to the client router and returned HTML instead of JSON. This adds a proper TanStack createFileRoute handler that proxies memory requests through the workspace server with auth, so the inspector works correctly over Tailscale, LAN, and remote access. Rebased from PR #4 onto current main.
This was referenced Apr 10, 2026
This was referenced May 11, 2026
Open
begjb
pushed a commit
to begjb/hermes-agent
that referenced
this pull request
May 29, 2026
…ved/rejected legs The ee014b80 fix covered the reviewer-spawn leg of a review-drain cycle (`review-required:` block reason → reviewer needs to spawn on a task with a PR URL in comments). But the cycle has a symmetric second leg: after the reviewer drains with `review-approved:` (or `review-rejected:`) and reassigns back to the original assignee, that assignee must be respawned to squash-merge + complete (or fix + reblock). The same PR URL still sits in comment history; the same false-positive fires. Observed today on jetminds board: t_41626876 (Tower Prefect Child A, PR NousResearch#23) sat in ready state with the dispatcher firing respawn_guarded:active_pr every minute since 16:53. Both reviews APPROVED, PR mergeable + CI-green, but engineering-substrate couldn't be spawned to merge because the most-recent block reason was `review-approved:` — not covered by the prior `review-required:`-only exception. Fix: extend `_review_required_handoff_active()` to also match `review-approved:` and `review-rejected:` block-reason prefixes. The "single most-recent blocked event, narrow scope, doesn't leak past completion" invariant is preserved unchanged. `review-pending-input:` and any other non-canonical `review-*` prefix do NOT match — the predicate enumerates the three drain-cycle prefixes explicitly rather than substring-matching `review-`. Tests: 6 new (approved-leg suppresses; rejected-leg suppresses; predicate matches each prefix individually; predicate rejects unrelated review-* prefix; approved-leg exception expires post-completion). 27/27 respawn- guard tests pass; 170/170 test_kanban_db.py file passes. No upstream behavior changed for non-review-drain workflows. Refs: substrate task t_b63946f8 (jetminds-main, 2026-05-21) JetMinds-local; per hermes-fork-patches discipline
19 tasks
difeizheng
pushed a commit
to difeizheng/zdf-hermes-agent
that referenced
this pull request
Jun 3, 2026
Fixes 12 remaining MEDIUM issues from the deep audit (19 total, 7 fixed in Round 12): design_agent: - NousResearch#15: add asyncio.wait_for(300s) around LLM API call to prevent infinite hangs - NousResearch#17: replace 2x hardcoded 'claude-opus-4-8' with shared DEFAULT_MODEL constant qa_agent / validate_agent: - NousResearch#20,NousResearch#22,NousResearch#23: already fixed in Round 12 (verified — dynamic timeout/threshold values used) memory.py: - NousResearch#24: frontmatter parser uses regex r'^---$' instead of str.split('---',2), preventing false splits on content containing '---' (SQL, markdown tables) - NousResearch#25: parse and preserve 'description' field from frontmatter in metadata, fixing write→load roundtrip data loss profiles.py: - NousResearch#26: ProfileConfig now frozen=True (immutable dataclass per coding standards) deploy_agent: - NousResearch#31: replace 2x sync subprocess.run with asyncio.create_subprocess_exec - fix 5x .decode() → .decode('utf-8', errors='replace') for Windows CJK safety - remove unused import subprocess db.py: - NousResearch#27: add class docstring explaining RLock + _unlocked pattern - NousResearch#28: FK constraints already in DDL (verified PRAGMA foreign_keys=ON active) - NousResearch#29: add _ensure_connection() with PRAGMA integrity_check(1) + auto-reconnect on 4 critical methods (create_task, get_task, claim_task, submit_result) - extract _create_connection() static method for reuse by reconnect Tests: 79 passed, 0 failed
Sugumaran-Balasubramaniyan
added a commit
to Sugumaran-Balasubramaniyan/hermes-agent
that referenced
this pull request
Jun 10, 2026
CRITICAL fixes: - Remove retracted solve-rate claims (92% failure, 12.5 attempts/solve) Per DeepSWE issue NousResearch#21 author: solve-rate findings retracted 2026-06-08 Replace with honest caveats: no effort tuning, guardrail 404s, limited replication. Data is directional, not definitive. - Remove MiniMax M3 row (never benchmarked on DeepSWE per issue NousResearch#23) - Expand model table to all 8 published DeepSWE models including Claude Opus 4.7, Sonnet 4.6, Gemini 3.5 Flash, Kimi K2.6 - Replace fabricated 'hermes chat' CLI with actual delegate_task() API - Fix related_skills: model-selection -> subagent-driven-development - Remove phantom HuggingFace URL (404) HIGH fixes: - Description: generic, no disputed model rankings embedded - Orchestrator: use current model, not hardcoded V4-Pro - Decision tree: add priority ordering + [route: X] user override - Strip self-promotion from skill body (frontmatter only) References file: full table with caveats, valid cost analysis retained, MiniMax/phamtom-URL removed.
whichguy
added a commit
to whichguy/hermes-agent-1
that referenced
this pull request
Jun 30, 2026
… implements NousResearch#23 voi.selection_floor(records, discard_threshold, rel_frac, abs_floor): rel_frac=0 -> the absolute discard_threshold (backward-compatible); rel_frac>0 -> a relative knee max(abs_floor, rel_frac*top_value) that scales the cutoff to each run's value distribution, so a low-value domain isn't wiped by a fixed absolute floor (the 61%-below-0.40 problem). rank_and_select gains rel_frac/abs_floor and uses it as the gate; infogain DEFAULTS gains rel_keep_frac (float, default 0.0 = current behavior) wired into both rank_and_select calls. Calibrated value set in the follow-up after the saturation/floor scans. Tests: 53 (2 new — selection_floor modes, relative keeps more in a low-value domain); rel_frac=0 keeps all prior behavior. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
whichguy
added a commit
to whichguy/hermes-agent-1
that referenced
this pull request
Jul 2, 2026
…ix; families eval plumbing Two independently designed same-day runs of the pre-mortem eval ladder converge: auto-on stands, rollback trigger untripped on BOTH criteria. - Tier-1 (14-cell projected) + tier-2 (realized all-fast): premortem TOP lens by realized_regret (0.416; failure-surface 0.602 vs 0.386 ≈1.6×); read-only pm questions correctly priced (~0.06) and pruned. - Independent replication (deepseek judge, bucket source, 34-prompt bank-wide two-arm scan): premortem again TOP lens (r_change 0.984, regret 0.765); zero read-only bucket entries; adjudicator-diversity trigger explicitly cleared (0.65→0.70). Findings §"Independent replication (NousResearch#25)". - Gate fix: bare artifact nouns (email/message/database) removed from _PREMORTEM_HINT (fired on retrieval tasks); word-boundary-prefix hint matching with exact-token set (prod/drop/db/repo); pinned in tests. - Eval-harness families plumbing (the gap that blocked ALL lens evals: cfg from DEFAULTS has no 'families' key → harnesses silently ran the flat generator): infogain.families_cfg() + --families/--premortem on score_scan/validate_evsi/ run_evals; lens-tagged scan rows; per_lens() attribution in analyze_evsi; pinned in tests/test_eval_families.py. score_scan --include-life no-op fixed. - Same-dataset side verdicts: NousResearch#23 rel_keep_frac stays OFF (selection_policies — every q_value policy ≈ size-matched random within-task); graded change judge REJECTED (anchor-clustering; rejudge.py stays as the offline instrument harness, --keep-responses stores texts for it). --families-model / INFOGAIN_FAMILIES_MODEL override; grouped tests/run.py runner. Known loose end: reverse-string CI case fails framing_accuracy=0.2 in both arms (arm-independent, pre-existing). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
whichguy
added a commit
to whichguy/hermes-agent-1
that referenced
this pull request
Jul 2, 2026
…esearch#23 stays off, graded judge rejected) + eval plumbing + grouped test suites - Eval-harness families plumbing: infogain.families_cfg(), --families/--premortem arms on score_scan/validate_evsi/run_evals, per_lens() + selection_policies() in analyze_evsi, lens-tagged rows; score_scan --include-life pool fix (default now BANK-only). - NousResearch#25 pre-mortem lens validated at BOTH ladder tiers: tier-1 projected two-arm (14 cells) and tier-2 realized two-arm (6 prompts x off/on, 336 rows) — top lens by realized_regret (0.416; failure-surface 0.602 vs 0.386 others; forced-on read-only self-prunes). Auto-on confirmed, rollback untripped. Gate false positive fixed: artifact nouns removed, word-boundary hint matching for both vantage+premortem gates ("repo" != "report", "prod" != "product", old '"db "' end-of-text miss fixed). - NousResearch#23 selection policies: analyze_evsi.selection_policies verdict — every q_value policy within ~0.03 of size-matched random within-task; rel_keep_frac stays off. - Graded change judge (opt-in --graded-change-judge) + --keep-responses + evals/rejudge.py offline instrument A/B: REJECTED (anchor-clustering, q_value link 0.60->0.38); original judge stays; harness remains for future instrument tests. - --families-model / INFOGAIN_FAMILIES_MODEL override (families layer no longer hard-pinned to glm for evals); SKILL.md drift fixes (stage 1 = plan_model; --value-judge-mode documented). - Grouped test suites: tests/run.py (basic DEFAULT = mocked/offline ~1s; live opt-in via INFOGAIN_TEST_LIVE; all = 107 tests). Docs in evals/README.md. - roadmap.md reconciled (NousResearch#23 status, NousResearch#24 CLOSED outcome, wrapper DONE); findings + design docs updated with all three verdicts. Version 1.0.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
waefrebeorn
pushed a commit
to waefrebeorn/slermes
that referenced
this pull request
Jul 27, 2026
…ill-scaffolding extractors, title_generator gaps closed Standing edict: never skip a module because deps are IO/config/DB — build the plumbing first, then port dependents. Stack A (truthy): utils.py is_truthy_value/env_var_enabled as a real shared lib fn (include/truthy.h, src/cli/port_utils_truthy.c). Stack B (skill scaffolding): agent/skill_commands.py extractor surface — extract_user_instruction_from_skill_message, describe_skill_invocation, _extract_single/_bundle — byte-identical markers, em-dash join, excerpt-joint split (include/skill_scaffolding.h, src/agent/port_agent_skill_commands.c). Stack C (session titles): hermes_state.py SessionDB title surface over libdb — sanitize_title (UTF-8 control scrub, 100-cp cap), get/set/set_auto_if_empty with uniqueness + compression-ancestor title transfer, get_next_title_in_lineage (#N dedup) (include/session_title.h, src/cli/port_session_title.c). libdb fix: persist ended_at/end_reason in sidecar meta JSON (was silently dropped — compression-ancestor logic needs it; test_db still passes). title_generator: _auto_title_enabled (config stack + truthy), _summarize_user_message (scaffolding stack), _persist_session_title (auto-if-empty predicate + #N collision retry) — all against real plumbing, no facades. Verification: oracle suite NousResearch#23 title_stack MATCH (truthy/sanitize/ describe/extract/summarize vs live Python); t_session_title_db 21/21 behavioral asserts PASS; all 23 oracle suites MATCH; 36/36 unit tests.
arumihsnek
referenced
this pull request
in arumihsnek/hermes-agent
Aug 2, 2026
K8 cross-repository v3 gate 747e6a7b-9f41-4681-98f2-d9351b958c57 accepted configuration-first then product-second integration. Config PR #23 is merged as 3b850fe356a4bfd6c9ae466164c8959a9aaf87be; post-config offline verification passed. Product exact head 09597eb passed the product-only v3 gate a969ecf1-61a5-430f-8ac3-07eeff6cd55c. No provider live test was executed.
ethenotethan
added a commit
to ethenotethan/harness
that referenced
this pull request
Aug 4, 2026
…ousResearch#23) wiki.scan only walked the content subdirs, so root-level pages were invisible in graph clients (HermesNative Wiki Graph ⌘W). Scan the wiki root too: root pages default to type "meta" (frontmatter type wins), participate in the wikilink graph, and resolve via wiki.expand_links. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Meraniya
pushed a commit
to Meraniya/hermes-agent
that referenced
this pull request
Aug 6, 2026
…ousResearch#23) The claude-code-action aborts with exit 1 ("Either ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN, or workload identity federation is required") when no key is configured, painting a red X on every PR/comment event. Add the same check-secret gate crm-pipeline uses: probe the secret into a job output and run the review only when present, turning "not configured" into a clean skip. No behavior change when the key IS set. Pure CI config. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
choi138
added a commit
to choi138/hermes-agent
that referenced
this pull request
Aug 18, 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.
Modal multiplexing ONLY first, just acts as an enhancement option that doesn't conflict with the current path. previous PR goes in first.