You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Timeline: export the trace as OpenTelemetry spans #483
The Timeline plugin records turns, tool calls and deliveries, but the trace stays local: there is no way to send it to an observability backend.
Expected behavior
exporter: "otlp" + otlpUrl (+ optional otlpHeaders) POSTs OTLP/HTTP JSON to any collector (Jaeger, Phoenix, Langfuse…); exporter: "json" appends dir/export.jsonl.
A Bot turn maps to an invoke_agent span and its tool calls to execute_tool spans beneath it, using the OpenTelemetry GenAI attribute names where the feed has the data.
Off by default: without exporter nothing leaves the host.
Only the metadata the panel already shows is exported (never message text, tool arguments or output).
Change scope
New plugins/timeline/src/otel.js (pure mapping + cursor exporter), plugins/timeline/src/timeline.js (optional wiring), plugins/timeline/index.js (config), tests plugins/timeline/test/otel.test.js, docs/subsystems/timeline.md, README. No new dependency (Node's global fetch).
Why
Closes the observability gap against OTel GenAI / Langfuse / Phoenix (see the roadmap discussion).
Triage (2026-10-20 12:00 Asia/Shanghai, main a7adfe0): needs-human. Waiting on the owner to confirm whether FlyBot wants an opt-in OpenTelemetry/JSON export of the Timeline trace, which is the first feature that can send Bot activity metadata to an outside collector. Points to decide: opt-in only with no default endpoint, ids only by default (friends' Bot names and face-room names stay home unless turned on separately), and https only except localhost. PR #484 has open review findings, the main one being that turns still running at an export tick are exported with the wrong end time and status.
Owner decision (2026-10-20): option (a) as recommended — fix first then accept: unfinished turns must not export as success; default export ids only (names behind a separate switch); require https except localhost; cap json file size; feature must be opt-in only.
Owner decision recorded (2026-10-20 13:56 Asia/Shanghai): accept after PR #484 fixes the listed items (unfinished turns not exported as success, ids only by default with names behind a separate switch, https except localhost, json file size cap, opt-in only). Now waiting on the PR author.
Activity
Birfy commentedon Oct 20, 2026
Triage (2026-10-20 12:00 Asia/Shanghai, main a7adfe0): needs-human. Waiting on the owner to confirm whether FlyBot wants an opt-in OpenTelemetry/JSON export of the Timeline trace, which is the first feature that can send Bot activity metadata to an outside collector. Points to decide: opt-in only with no default endpoint, ids only by default (friends' Bot names and face-room names stay home unless turned on separately), and https only except localhost. PR #484 has open review findings, the main one being that turns still running at an export tick are exported with the wrong end time and status.
Birfy commentedon Oct 20, 2026
Owner decision (2026-10-20): option (a) as recommended — fix first then accept: unfinished turns must not export as success; default export ids only (names behind a separate switch); require https except localhost; cap json file size; feature must be opt-in only.
Birfy commentedon Oct 20, 2026
Owner decision recorded (2026-10-20 13:56 Asia/Shanghai): accept after PR #484 fixes the listed items (unfinished turns not exported as success, ids only by default with names behind a separate switch, https except localhost, json file size cap, opt-in only). Now waiting on the PR author.
Birfy commentedon Oct 20, 2026
Triage check (2026-10-20 14:59 Asia/Shanghai): prior owner decision still accurate — accept after the listed fixes. PR #484 tip
cb39adcaddresses them; Birfy self-PASS +awaiting-approval. Waiting on owner queue (not re-asking design).Export the timeline trace as OpenTelemetry spans (ThinkFlowLab#484)
Timeline: an on-demand export endpoint (#524)