Skip to content

[Merge after #12] Thought signatures for gemini need to be passed back to support multistep#13

Closed
hjc-puro wants to merge 7 commits into
mainfrom
thought-sig
Closed

[Merge after #12] Thought signatures for gemini need to be passed back to support multistep#13
hjc-puro wants to merge 7 commits into
mainfrom
thought-sig

Conversation

@hjc-puro

Copy link
Copy Markdown
Contributor

No description provided.

@hjc-puro hjc-puro changed the title Thought signatures for gemini need to be passed back to support multistep [Merge after 12] Thought signatures for gemini need to be passed back to support multistep Nov 20, 2025
@hjc-puro hjc-puro changed the title [Merge after 12] Thought signatures for gemini need to be passed back to support multistep [Merge after #12] Thought signatures for gemini need to be passed back to support multistep Nov 20, 2025
@teknium1 teknium1 closed this Feb 2, 2026
@taeyun16

Copy link
Copy Markdown

🔍 자동 분석 결과

이슈 요약

투표 미션 시스템 — 일일/주간 미션을 제공하여 사용자 목표 유도 + 보상 지급

기술 구현 고려사항

백엔드 (Phoenix/Ash)

  • 미션 템플릿 테이블: mission_templates (type, conditions_json, reward_amount, reset_cron)
  • 유저 미션 인스턴스: user_missions (user_id, template_id, progress, completed_at, claimed)
  • 이벤트 드리븐 발송: Ash change + 로 투표 시마다 progress UPDATE
  • Oban Worker: 일일 리셋 (KST 자정) —
  • 보상 지급: 활용 (Streak 시스템과 공유 가능)

iOS (SwiftUI)

  • 미션 진행률 View: (progress bar, reward preview, completion checkmark)
  • API: → MyMissions query + MissionProgress subscription
  • 알림: 로컬 노티피케이션 (KST早上 9시 미션 리셋 알림)

우선순위 제안

  1. Phase 1: 일일 미션 3종 (첫 투표, 투표 달인, 지역 탐험가)
  2. Phase 2: 주간 미션 + 보상 타겟 시스템
  3. Phase 3: 완료 보상 가챠 티켓 + 스트릭 조합

관련existing 코드

  • — 미션 도메인 (아직 없으면 Streak 모듈 참고)
  • — existing streak 시스템이 좋은 레퍼런스

🤖 HanNyang Auto Resolver

sudo-yf pushed a commit to sudo-yf/hermes-agent that referenced this pull request Apr 5, 2026
sudo-yf pushed a commit to sudo-yf/hermes-agent that referenced this pull request Apr 5, 2026
Covers PRs NousResearch#11, NousResearch#13, NousResearch#14, NousResearch#15: Sprint 15 features, security hardening,
OpenRouter routing fix, project picker UX fixes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
h4x3rotab pushed a commit to Clawdi-AI/hermes-agent that referenced this pull request Apr 10, 2026
…on export, pinned sessions, context meter

Ported from ibelick/webclaw PRs NousResearch#24, #10, NousResearch#14, NousResearch#13:
- Command palette (⌘K): search and switch sessions instantly
- Conversation export: download as Markdown, JSON, or Plain Text
- Pinned sessions: pin/unpin from context menu, shown at top of sidebar
- Context meter: token usage ring in chat header with hover details
- Keyboard shortcuts: ⌘K search, ⌘⇧O new session

New UI primitives: autocomplete, command, input, preview-card
Attachment button/preview components (composer already has built-in support)
malaiwah pushed a commit to malaiwah/hermes-agent that referenced this pull request Apr 11, 2026
…ase in finally block' (NousResearch#13) from fix/delegate-credential-lease-leak into main
DavidUmKongs pushed a commit to DavidUmKongs/hermes-agent that referenced this pull request Apr 27, 2026
- safe_print: strip rich markup tags when rich is unavailable so plain
  fallback output doesn't leak literal '[bold red]...[/bold red]' tags
- profiling.aggregate_profiling_stats: stop reconstructing per-call
  timings by repeating the mean (statistically wrong; gave incorrect
  min/max/median across workers). Combine summary stats directly and
  flag median as approximate via median_time_approximate
- run_agent: hoist 'reset_profiler' import to module level; drop noisy
  'dir(tc)' / 'model_dump()' debug logging spam from the verbose path
- batch_runner: drop unused 'import re'; replace bare 'except:' with
  specific (JSONDecodeError, TypeError, AttributeError) and guard
  isinstance(content, str) before calling .strip()
- tools/simple_terminal_tool: replace bare 'except:' with 'except Exception'
  on the SSH-context cleanup paths

Amp-Thread-ID: https://ampcode.com/threads/T-019dce4d-5fc2-703c-b2e4-b8a87ec42105
Co-authored-by: Amp <amp@ampcode.com>
@DavidUmKongs

Copy link
Copy Markdown

🔍 Code Review for PR #13

Issues found

1. safe_print.py — broken fallback rendering
When rich is unavailable the function falls back to print(*args) without stripping rich markup, so users see literal [bold red]...[/bold red] tags in plain output.

2. profiling.py::aggregate_profiling_stats — statistically wrong

aggregated["tools"][tool_name]["times"].extend(
    [tool_stats.get("mean_time", 0.0)] * tool_stats.get("call_count", 0)
)

Reconstructing per-call timings by repeating the mean N times yields incorrect min/max/median across workers (e.g. min == max == mean for any worker that contributed). The aggregator should combine summary stats directly.

3. run_agent.py — verbose-log spam & lazy imports

  • logging.debug(f"Tool call attributes: {dir(tc)}") and tc.model_dump() were left in from debugging — they dump every attribute on every tool call when --verbose.
  • from profiling import reset_profiler as reset_prof inside run_conversation should be hoisted to the module-level import.

4. batch_runner.py — bare except: and unused import

  • Two bare except: clauses swallow KeyboardInterrupt / SystemExit. Should catch (json.JSONDecodeError, TypeError, AttributeError).
  • import re is unused.
  • content.strip() is called inside the bare-except branch without first checking isinstance(content, str), which can re-raise AttributeError if content is non-string JSON.

5. tools/simple_terminal_tool.py — bare except:
Two bare except: clauses around ssh_context_manager.__exit__() swallow control-flow exceptions. Replaced with except Exception.

Resolution

Fixes pushed in commit 7490cc3a on fork branch DavidUmKongs/hermes-agent@thought-sig.

Verified: all 5 files compile cleanly, and a regression test against aggregate_profiling_stats confirms correct call_count/total_time/min/max after the fix (median is now flagged as approximate via median_time_approximate: true since per-call data is not preserved across worker boundaries).

systemt1st added a commit to Topgusdodo/aiseo-agent that referenced this pull request May 19, 2026
Per P0-C spike decision (c), formalize aiseo_cli.py sync as a
permanent fork-only asset. ADR-001 captures Context (5 BLOCKING gaps
in upstream), Decision (don't refactor to delegate), Consequences
(re-evaluation triggers + quarterly review), and Status.

Adds 3 protection tests guarding the BLOCKING gaps that justify (c):
- gap NousResearch#3: rolling backup pruning keeps newest 5 by timestamp
- gap NousResearch#7: text-level yaml migration preserves all comments + blanks
- gap NousResearch#13: _migrate_profile_config calls os.fsync on tmp file

CLAUDE.md, NEXT_STEPS.md and seeds README all link back to ADR-001
+ spike doc for traceability and quarterly re-evaluation cadence.
drwon-cmd added a commit to drwon-cmd/hermes-agent that referenced this pull request May 26, 2026
- 5/25·5/26 wvb-daily-brief-kst0700 cron 연속 Gemini HTTP 429
  (paid Tier 1 1M TPM 초과). v2.5 신설 시 명시한 "429 risk 약간
  상승 감수"가 실제 발생.
- config.yaml ms365 preset: "mail,files" → "mail" (5/16 안정 복귀)
- SKILL.md Step 5 임시 OFF 마킹, Output Format OneDrive 줄 교체,
  Verification NousResearch#13 strikethrough
- 재활성화 조건: (1) Gemini Tier 2 upgrade, OR
  (2) SKILL.md trim (21K → 8-10K bytes) 후 토큰 여유 확인

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
dmascord added a commit to dmascord/hermes-agent that referenced this pull request Jun 6, 2026
mcvayaaron6-commits pushed a commit to mcvayaaron6-commits/hermes-agent that referenced this pull request Jun 10, 2026
NousResearch#15

Three remaining findings from the code review.

NousResearch#12 — hermes_cli/superagent.py: _strip_fences only handled a SINGLE
      leading-and-trailing ``` envelope.  Common model failure mode
      is 'Here is the plan you asked for:\\n```yaml\\nfanout: 2\\n
      ...\\n```\\nLet me know.' — the leading prose means
      stripped.startswith('```') is False so the function returned
      the whole text unchanged, then yaml.safe_load choked → exit 2.

      Fix: regex-based extraction with _FENCE_BLOCK_RE that pulls
      the YAML body out of fenced blocks even when there's prose on
      either side.  Falls back to the simple-strip path for fence-
      only output (preserves existing behaviour).

NousResearch#13 — hermes_cli/web_server.py: /ready was BOTH side-effecting AND
      racy.  (a) Called path.parent.mkdir(parents=True, exist_ok=
      True) on every probe — k8s polls every few seconds, so a
      read-only mount surfaced PermissionError every hit and a
      writeable mount got directories repeatedly recreated.  (b)
      The .readiness_probe storage check used a shared filename;
      two concurrent k8s probes (liveness + readiness simultaneous)
      could race, one's unlink raising FileNotFoundError → false
      'not_ready' on a healthy node.

      Fix: (a) audit_log probe just reports parent.exists(); never
      mutates.  (b) storage probe uses a per-PID + per-call unique
      filename and tolerates FileNotFoundError on cleanup.

NousResearch#15 — hermes_cli/superagent.py + hermes_cli/orchestrate.py: parent
      AIAgent was constructed bare with model=... provider=...
      quiet_mode=True only — no api_key, no base_url, no api_mode,
      no credential_pool.  delegate_task then pulled effective_
      api_key=None from the parent, so child subagents failed to
      authenticate whenever credentials lived in config.yaml
      rather than env vars (the production case for serious users).

      Fix: mirror hermes_cli/oneshot.py's resolve_runtime_provider
      pattern in both _build_parent_agent and superagent.py's
      parent construction.  Threads api_key / base_url / provider /
      api_mode / credential_pool from the resolved runtime, exactly
      like oneshot does.

274 tests pass — no regressions.

All 15 code-review findings are now fixed across three commits
(f25ae81 showstoppers, 06e71bc critical correctness, this commit
lower-severity polish).

https://claude.ai/code/session_01PNyEMgrzVHtXnPGwUfotWw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants