Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

fix(events): 全链缺时间/关联元数据——事件、SSE 帧、span、日志拼不回同一条时间线

Open
#117 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
32/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
observability

Research direction

Start with the AgentEvent enum at src/event.rs:28-275 to see every variant that would need ts_ms/seq/session_id/turn, then read the SSE framing at src/handlers.rs:1329-1352, where no id: is set despite the step-concatenation advice. Cross-check the per-turn step counter at src/run_core.rs:1331 and the dead Span::current().record at src/runtime.rs:266-272 alongside the agent.turn log at runtime.rs:332-336. Done means events carry a monotonic seq and wall clock, SSE frames emit id:, and the host builds a per-turn span with field::Empty declarations so spans and logs join on session_id. Runtime verification needs Langfuse (#124).

Written by the indexing model from the issue text.

Description

场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无 · 验收:代码 diff 逐点核对;运行时可见性另需 Langfuse(#124)

基线 origin/main = fc29f3d4。(与 #97 互补:即便补 Last-Event-ID,id 也不含墙钟与回合语义。)

Summary

  • AgentEvent 全枚举(src/event.rs:28-275)无 timestamp/seq/turn/session_id;step 每 turn 从 1 重数(run_core.rs:1331),而 SSE 注释教客户端"concatenate deltas keyed on step"(handlers.rs:1350-1352)——goal-loop 多 turn 时 step 撞号。
  • SSE 帧 Event::default().event(t).data(d) 无 id:(handlers.rs:1329-1332)。
  • Span::current().record("session_id", ...)(src/runtime.rs:266-272)是死写入——全仓无 field::Empty 声明、宿主不建 root span,tracing 对未声明字段静默忽略;agent.run.complete 日志(run_core.rs:647-655)无 session 字段——多会话 HTTP 服务里 agent.turn: finished(runtime.rs:332-336)无法归属。

建议

事件统一 envelope(ts_ms + 单调 seq + session_id + turn),SSE id: 直接承载;宿主建 per-turn span 并声明字段后 record。

Dominant language
Rust
Stars
4
Forks
0
Avg merge
5h 32m
Merged PRs (30d)
7

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from jeffkit/recursive

All issues in jeffkit/recursive

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.