Commit Graph
49 Commits
Author SHA1 Message Date
ktx-vaidehi f8249d341c fix: ux revamp search input component (#12383) 2026-06-01 12:03:44 +00:00
424425ce1d fix: o2 ai assistant revamp (#12343)
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 17:06:33 +00:00
76959751f7 fix: FE shortcut support (#11866)
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 17:05:44 +00:00
ktx-vaidehiandClaude Sonnet 4.6 1d60431204 fix: ux revamp toast design (#12336)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 15:49:12 +00:00
+5 ae22a74e62 feat: ux improvement main (#11838)
#11720

Design at:

https://github.com/openobserve/designs/blob/main/dashboards/ux-improvement-dialog/design.md

---------

---------

Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com>
Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com>
Co-authored-by: Sai Nikhil <nikhil@openobserve.ai>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
Co-authored-by: ktx-mihir <mihir.patel@kiara.tech>
Co-authored-by: ktx-riya <riya.kukadiya@kiara.tech>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <127078473+omkarK06@users.noreply.github.com>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2026-05-28 11:00:49 +00:00
ktx-kirtan 1829cd46f8 fix: ux improvement dialog - Revert (#11824)
Reverts openobserve/openobserve#11644
2026-05-14 14:35:28 +00:00
be427039f0 feat: ux improvement dialog (#11644)
#11720

Design at:
https://github.com/openobserve/designs/blob/main/dashboards/ux-improvement-dialog/design.md

---------

Co-authored-by: ktx-riya <riya.kukadiya@kiara.tech>
Co-authored-by: ktx-mihir <mihir.patel@kiara.tech>
Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 12:00:25 +00:00
87da57db50 feat: ux improvement tabs and buttons (#11595)
Design at:
https://github.com/openobserve/designs/blob/main/dashboards/ux-improvement-tabs-buttons/design.md

---------

Co-authored-by: Kirtan Thakkar <kirtan@kiara.tech>
Co-authored-by: ktx-mihir <mihir.patel@kiara.tech>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: ktx-riya <riya.kukadiya@kiara.tech>
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
2026-05-06 15:00:37 +00:00
Bhargav 4f881c513f fix: home page UI fix (#11585) 2026-05-04 13:08:49 +00:00
Sai Nikhil 729ff5181d fix: o2 assistant changes (#11544) 2026-04-30 09:47:54 +00:00
Bhargav 4a36ac75d4 fix: O2 aichatbot fullscreen (#11530) 2026-04-29 09:12:26 +00:00
cc466132a7 chore: new home page (#11458)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Ashish Kolhe <undefined@users.noreply.github.com>
2026-04-25 19:18:21 +00:00
Hengfei YangandClaude Opus 4.7 f897aa2cb2 feat(o2ai): render CLI tool_result summary and command (#11449)
## Summary
- Render `summary.return_code`, `stdout_lines`, `stderr_lines`, and
`truncated` in the chat tool-call details panel so CLI tool results show
parsed info like MCP tools do.
- Whitelist `command` in `getToolCallDisplayData` and add a "Command"
row with a copy button so the actual CLI command the agent ran is
visible.

## Context
The o2-ai server already emits a uniform `tool_result` shape for CLI
tools (see openobserve/o2-ai#96 — wait for that to merge):
```json
{
  "type": "tool_result",
  "tool": "cli_kubectl",
  "success": true,
  "message": "Exited 0 (12 lines stdout)",
  "summary": { "return_code": 0, "stdout_lines": 12, "stderr_lines": 0 },
  "call_args": { "command": "get pods -n default" },
  "call_id": "call-uuid-v7"
}
```
`ContentBlock.summary` was already being captured from the event — the
template just had no conditionals for the CLI fields. This PR adds them.

## What this does NOT do
- Does not show raw `stdout`/`stderr` text (server currently only sends
line counts). If we want inline output, that's a separate backend
change.
- Does not add a custom header format for CLI — the default
`block.message` ("Exited 0 (12 lines stdout)") renders fine as plain
text.

## Test plan
- [x] `npm run type-check` — clean
- [ ] Manually verify in dev chat that a CLI tool call (`kubectl get
pods`) shows the Exit code / Stdout / Stderr rows and the Command row
with copy button
- [ ] MCP tools (SearchSQL, StreamList) still render the existing
Results / Duration rows unchanged

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 15:32:07 +00:00
85d261b5d0 fix: vulnerability scan fixes (#11249)
| # | Severity | Category | File |
| :--- | :--- | :--- | :--- |
| 1 | **High** | SSRF bypass (IPv6) | `ssrf_guard.rs` |
| 2 | **High** | SSRF bypass (retry) | `enrichment_table/mod.rs` |
| 3 | **High** | SSRF defense-in-depth | `alert.rs` |
| 4 | **Critical** | CORS + credentials | `router/mod.rs` |
| 5 | **Critical** | SQL Injection | `postgres.rs`, `sqlite.rs` |
| 6 | **High** | Privilege escalation (token) | `users.rs` |
| 7 | **Medium** | Panic/DoS | `users.rs` |
| 8 | **Low** | Integer overflow | `alerts/mod.rs` |
| 9 | **Medium** | XSS | `alertSummaryGenerator.ts`, `colorizeQuery.ts`
|
| 10 | **Medium** | Credential exposure in logs | `validator.rs`,
`organization.rs`, `users.rs` |

---------

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
Co-authored-by: Prabhat Sharma <hi.prabhat@gmail.com>
2026-04-14 07:22:11 +00:00
f4d148ea65 fix: evaluations as a tab in traces clean (#10988)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Ashish Kolhe <undefined@users.noreply.github.com>
2026-04-08 07:02:38 +00:00
BhargavandClaude Opus 4.6 4dccaa377a fix: O2 AI session response issue (#11111)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:03:15 +00:00
d9ae7c2860 fix: created a single button toggle with Spans | Traces | Search Graph (#11048)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Omkar Kesarkhane <undefined@users.noreply.github.com>
2026-03-30 23:15:11 +05:30
udev 1c7a3135de feat: add patch panel apis (#11025) 2026-03-28 03:15:34 +05:30
Bhargav f8b2e5e9fa fix: persist up and down vote in o2ai (#11037) 2026-03-27 09:52:30 +05:30
Bhargav c0d9fc49de fix: Ai logo enhancement (#11006) 2026-03-25 11:37:48 +05:30
udev d3f6a333f9 feat: summary for tool responses (#10955) 2026-03-20 18:22:22 +05:30
udevandHarsh Mahajan 32fdd60b2d fix: assistant issues (#10893)
- **require confirmation to update_stream_settings**
- **fix: adding query param into doc**
- ** fix: partial text rendering and traces search**

---------

Co-authored-by: Harsh Mahajan <007harshmahajan@gmail.com>
2026-03-13 17:25:50 +05:30
udev a1ba8b1b71 feat: Ai metering for cloud (#10824) 2026-03-13 00:57:31 +05:30
udev 876c6b2686 fix: tool calls for get schema and navigation button (#10801) 2026-03-10 13:23:43 +08:00
418ccaa01e fix: llm evaluations (#10612)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-04 17:55:01 +05:30
Bhargav 72b90a93e3 fix: Feat nlp mode (#10638) 2026-02-27 18:26:36 +08:00
e486ef27f9 fix: navigation and improve sql skills (#10622)
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: udev <undefined@users.noreply.github.com>
2026-02-25 16:23:04 +05:30
udev f59382dea1 feat: navigation for o2 assistant (#10564)
- **improve dashbaord tool prompt**
- **fix: pipeline create handler to return a pipeline ID and name**
- **feat: navigation event handler, button rendering**
2026-02-18 21:46:21 +05:30
Ashish Kolhe e9785af1f0 fix: ai chat telemetry (#10546) 2026-02-17 17:37:59 +05:30
udev b0eac49a3a fix: [ITER 2] O2 Assistant improvements (#10473) 2026-02-13 17:53:05 +05:30
udev c64197b2af fix: O2A title and tool call improvements (#10385) 2026-02-05 23:55:12 +05:30
Harsh Mahajan 2e6d970946 fix: sre-agent error propogation (#10383)
### **PR Type**
Bug fix


___

### **Description**
- Display streamed `error` events in chat

- Finalize active tool calls on errors

- Persist error messages to history

- Stop further stream processing on error


___

### Diagram Walkthrough


```mermaid
flowchart LR
  stream["Streamed event payloads"] 
  toolcall["Active tool call state"] 
  chat["Assistant chat message"] 
  history["Saved chat history"] 
  stream -- "type=error" --> toolcall
  toolcall -- "finalize tool_call block" --> chat
  stream -- "format error + suggestion" --> chat
  chat -- "saveToHistory()" --> history
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>O2AIChat.vue</strong><dd><code>Handle streamed errors
and finalize tool calls</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/O2AIChat.vue

<ul><li>Add <code>data.type === 'error'</code> handling in stream
loops<br> <li> Convert any <code>activeToolCall</code> into a completed
<code>tool_call</code> block<br> <li> Append/create assistant message
with formatted error and optional <br>suggestion<br> <li> Save error to
history, scroll, then return</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10383/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+112/-0</a>&nbsp;
</td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2026-02-05 15:20:33 +05:30
udev b23f6273b7 fix: o2 assistant issues (#10315) 2026-02-02 02:23:36 +05:30
Sai Nikhil ec2a9cc771 fix: o2 ai issues when enabled (#10291)
### **User description**
This PR fixes the issue in E: 1216 (1 & 3) , E: 1218 , along with append
the fields when sending to ai chat


___

### **PR Type**
Enhancement


___

### **Description**
- Add `appendMode` prop for AI Chat

- Auto-scroll input on append

- Propagate and clear chat context

- UI tweaks: widths, toggle styles, splitter


___

### Diagram Walkthrough


```mermaid
flowchart LR
  SP["ScheduledPipeline.vue"] -- "sendToAiChat(value,append)" --> O2AIChat
  ML["MainLayout.vue"] -- "sendToAiChat(value,append)" --> O2AIChat
  O2AIChat["O2AIChat.vue"] --> AM["appendMode prop"]
  AM -- "true" --> APPEND["append input with separator"]
  AM -- "false" --> REPLACE["replace input"]
  APPEND --> SCROLL["scrollInputToBottom()"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>10
files</summary><table>
<tr>
<td><strong>O2AIChat.vue</strong><dd><code>Add `appendMode` prop and
scroll input enhancements</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+47/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ScheduledPipeline.vue</strong><dd><code>Propagate
`appendMode` and update sendToAiChat signature</code>&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-63d8f838bb880356e7804b4a57fd9223d4f2c189de7aadc7cf33cba723b29aaf">+10/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>MainLayout.vue</strong><dd><code>Bind `appendMode` and clear
context after send</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362">+13/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>DetailTable.vue</strong><dd><code>Update sendToAiChat to
accept `append` parameter</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Index.vue</strong><dd><code>Adjust splitter when AI chat
opens or closes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+21/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>JsonPreview.vue</strong><dd><code>Extend sendToAiChat
signature with `append`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>SearchBar.vue</strong><dd><code>Add toggle CSS class and
dynamic width style</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf">+10/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SearchResult.vue</strong><dd><code>Add `append` flag to
sendToAiChat emit</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>TenstackTable.vue</strong><dd><code>Tweak AI button position
and append flag support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22">+5/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Functions.vue</strong><dd><code>Modify sendToAiChat to
include `append` argument</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-ad825ec1b8d58aec9bf5d2553ea09394a30b22ac59d708bcf9e56168ca1daaf6">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___
2026-01-30 20:06:25 +05:30
udev 32e6ac9831 fix: add session id and traceparent to ai calls (#10230) 2026-01-30 00:02:24 +05:30
Sai Nikhil 67928b9c16 fix: remove sre chat completely (#10197)
### **User description**
1. Remove SRE chat completely , use existing ai component


___

### **PR Type**
Enhancement


___

### **Description**
- Remove SRE chat and related state/actions

- Consolidate AI chat integration across components

- Update tests to dispatch AI chat actions

- Prune unused payload fields and optional context injections


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>IncidentDetailDrawer.spec.ts</strong><dd><code>Remove SRE
chat mocks in tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-2f7f4d7de8c794b899f5ca1d765d18a4a13e92c1e595f580068ca4a7176bda10">+0/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>IncidentList.spec.ts</strong><dd><code>Rename SRE chat tests
to AI chat</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-633b95716cea25470b98f260f00e6fbc641c1fbe8ed82713e346eef014ca4d50">+9/-17</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>incidentsContextProvider.ts</strong><dd><code>Remove
optional context fields injection</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-012246fbc305620dd85432d34ec1fecc32c7bb377474b7a02dc6ed3b6beba78c">+0/-14</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useAiChat.ts</strong><dd><code>Strip agent_type and model
from payload builder</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-830ee4f21bdbbd0fa5c5c0f43b0a1d0200831e07ccddc91982cf0371c801b046">+0/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>index.ts</strong><dd><code>Remove SRE chat state and
mutations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-955a15c7ee060f1545e82be22911dd0c14307dee5a70071a394e9fd583bd2c55">+0/-12</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Refactoring</strong></td><td><details><summary>6
files</summary><table>
<tr>
<td><strong>O2AIChat.vue</strong><dd><code>Remove model selector UI and
logic</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+1/-31</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SREChat.vue</strong><dd><code>Delete entire SREChat
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-a24e3f6392181aa741979fe1c0cbc6f0f02337de20e6ad2fd6668dd7abe9bada">+0/-2074</a></td>

</tr>

<tr>
<td><strong>AlertList.vue</strong><dd><code>Remove openSREChat
handler</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e">+0/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>IncidentDetailDrawer.vue</strong><dd><code>Clean up logs and
remove openSREChat</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-6973d58a5f49658b07d3533d4db5d32cc6430433b51732481e7497243dadb0b0">+0/-18</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>IncidentList.vue</strong><dd><code>Remove openSREChat
method</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-953ad015996758a8c86e489499cd3b0a614501b99b0c9c5c242a299e34c24ff2">+0/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>MainLayout.vue</strong><dd><code>Remove SREChat panel and
imports</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362">+1/-29</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___
2026-01-27 18:10:53 +05:30
udev 8ed1bba28b feat: ai agent phase 2 (#10054) 2026-01-22 22:11:05 +05:30
Bhargav 890e8d7669 fix: Node package upgrade v1.8 (#9773)
### **PR Type**
Enhancement


___

### **Description**
- Upgrade Tailwind CSS from v3.4.4 to v4.1.18

- Bump rudder-sdk-js from 2.48.43 to 2.52.7


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Bump dependency versions
in package.json</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/package.json

<ul><li>Updated <code>tailwindcss</code> version to ^4.1.18<br> <li>
Updated <code>rudder-sdk-js</code> version to ^2.52.7</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9773/files#diff-b861012a5dd72b8a9f3281b7cf09f5a779c98569d040b1bbc1db50f1b15e7cce">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-12-29 20:00:34 +05:30
5fbdbe4f46 fix: traces, alert insights charts render issue (#8977)
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
2025-11-06 18:38:13 +08:00
348ec6914d fix: 8928 UI revamp issues (#8940)
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
2025-11-03 23:25:53 +05:30
db7f947089 fix: UI design implementation (#8841)
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: omkark06 <omkar@zinclabs.io>
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
2025-11-01 21:22:27 +05:30
Sai Nikhil 97f6cb078f fix: o2 UI updates (#8737)
### **User description**
1. store user input in local storage and use shortcuts to explore (up
and down arrow keys)
2. changed bg icon for o2 ai icon
3. added scroll to bottom button


___

### **PR Type**
Enhancement


___

### **Description**
- Add scroll-to-bottom button with smooth scroll

- Persist last 10 queries in localStorage

- Keyboard history navigation via arrows

- Update AI button gradient and hover/rotate


___

### Diagram Walkthrough


```mermaid
flowchart LR
  UI["Chat UI"]
  ScrollBtn["Scroll-to-bottom button"]
  History["LocalStorage query history"]
  Keys["ArrowUp/Down navigation"]
  Styles["AI button gradient/animations"]

  UI -- "shows when scrolled up" --> ScrollBtn
  ScrollBtn -- "click" --> UI
  UI -- "save on send" --> History
  Keys -- "navigate history" --> UI
  UI -- "visual tweaks" --> Styles
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>O2AIChat.vue</strong><dd><code>Scroll control and
persistent query history</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/O2AIChat.vue

<ul><li>Add scroll-to-bottom button and styles.<br> <li> Implement
auto-visibility and smooth scrolling.<br> <li> Add query history with
localStorage (max 10).<br> <li> Add ArrowUp/Down history navigation
logic.</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8737/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+224/-2</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>MainLayout.vue</strong><dd><code>AI button gradient and
hover behavior update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/layouts/MainLayout.vue

<ul><li>Update AI button to gradient background.<br> <li> Adjust hover
transition timing and effect.<br> <li> Reverse icon rotation direction
on hover.</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8737/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-10-07 08:52:41 +05:30
Sai Nikhil f96b90e15f fix: o2 ai updates (#8734)
### **User description**
Loading Indicator will be visible everytime user hits the generate
before it was hidden
Implemented abort functionality for responses, allowing users to stop
generation mid-way.
Fixed the issue where empty messages appeared before actual responses,
ensuring a cleaner chat log.
when there is so much content incoming and if I try to stop it , it
should stop scroll

UI Enhancements:
Differentiated user messages and AI responses visually for better
clarity.
Updated the Send button with a gradient color and added styling for the
Stop button.
Improved the input experience by automatically focusing the input and
highlighting its border when clicking anywhere in the chat area.


___

### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add abortable streaming for AI chat

- Improve UI: send/stop buttons, avatars, gradients

- Auto-scroll to loading indicator on generate

- Prevent empty assistant messages during stream


___

### Diagram Walkthrough


```mermaid
flowchart LR
  UI["Chat UI (O2AIChat.vue)"]
  Fetch["fetchAiChat with AbortSignal (useAiChat.ts)"]
  AbortCtrl["AbortController lifecycle"]
  Stream["Streaming parser & message updates"]
  History["Save to history"]
  Styles["Theming, gradients, layout"]
  UI -- "Send -> creates AbortController" --> AbortCtrl
  AbortCtrl -- "signal" --> Fetch
  Fetch -- "stream chunks" --> Stream
  Stream -- "append assistant content" --> UI
  UI -- "Stop click" --> AbortCtrl
  AbortCtrl -- "abort()" --> Fetch
  Stream -- "on complete/error" --> History
  UI -- "focus + auto-scroll to loading" --> Styles
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>useAiChat.ts</strong><dd><code>Abortable fetch with
streaming support and docs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/composables/useAiChat.ts

<ul><li>Add JSDoc and AbortSignal param to <code>fetchAiChat</code><br>
<li> Include optional <code>signal</code> in fetch options<br> <li>
Handle <code>AbortError</code> distinctly; return <code>{ cancelled:
true }</code><br> <li> Generalize error handling and null fallback</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8734/files#diff-830ee4f21bdbbd0fa5c5c0f43b0a1d0200831e07ccddc91982cf0371c801b046">+38/-9</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>O2AIChat.vue</strong><dd><code>Streaming UX,
cancellation, and UI enhancements</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

web/src/components/O2AIChat.vue

<ul><li>Implement AbortController lifecycle and Stop button<br> <li>
Avoid pre-creating empty assistant messages during stream<br> <li>
Auto-scroll to loading indicator; focus input on click<br> <li> UI/UX:
themed avatars, gradient backgrounds, send/stop styles</ul>


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8734/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+382/-39</a></td>

</tr>
</table></td></tr></tr></tbody></table>

</details>

___
2025-10-06 15:49:30 +05:30
Sai Nikhil 1b0098f93a fix: pass additional context to the AI depending on the page (#8697)
### **User description**
1. This PR adds the additional context to the following pages 
  - logs, dashboards , pipelines ,  alerts
2. fixed auto scrolling when user trying to stop the scroll in ai chat 
3. in add alert page when user opens the ai chat it was overlapping the
buttons of generate


___

### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Introduce global AI context provider system

- Add page-specific context providers

- Fix AI chat auto-scroll behavior

- Prevent AI chat overlap on Add Alert


___

### Diagram Walkthrough


```mermaid
flowchart LR
  Registry["ContextRegistry singleton"] -- "register/setActive" --> LogsProv["Logs context provider"]
  Registry -- "register/setActive" --> PipesProv["Pipelines context provider"]
  Registry -- "register/setActive" --> AlertsProv["Alerts context provider"]
  Registry -- "register/setActive" --> DashProv["Dashboards context provider"]
  Registry -- "fallback" --> DefaultProv["Default context provider"]
  UIChat["AI Chat"] -- "getActiveContext()" --> Registry
  Pages["Pages (Logs/Pipelines/Alerts/Dashboards)"] -- "mount/unmount" --> Registry
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>14
files</summary><table>
<tr>
<td><strong>alertsContextProvider.ts</strong><dd><code>New alerts page
context provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-95b95a1b18db00eb9a3b4b9155cf23a078e4d54032f023d6fdf7445afb9e4661">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>dashboardsContextProvider.ts</strong><dd><code>New
dashboards context provider with intents</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-c3323cfc4d7015b1b51ff5ec85fe3371c817dcc614e52ebb4fac76abc719b872">+76/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>defaultContextProvider.ts</strong><dd><code>Default app-wide
context provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-dedeb11e8ee3b92acda8c30cb84d2a749dec11cb1387547c613220a29744e236">+59/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export registry and
providers</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-2f5cd69b9d0b7e1c87c1dbe6ad7cdb7b182014a03594481085561a9d694d2659">+36/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>logsContextProvider.ts</strong><dd><code>Logs context
provider with time and fields</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-bd6b1c67f0d9ef96110421aac3dd3e8f90115da95adf28e79c88e1c6fc594ac2">+198/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>pipelinesContextProvider.ts</strong><dd><code>Pipelines
editor context provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-9f09180c5d32d87f8c89fc0a8edc8d2153b37515dcf906123fbd8017c435fa75">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>registry.ts</strong><dd><code>Context registry singleton
with fallback</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-771da8f6897a25741c485f6637da004e3a62f6e4b70d6dbb2a408a56ba9e3923">+136/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>types.ts</strong><dd><code>Context provider/core
types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-f0c33d88011ac1afc87b85a1be56756616a2a13105537cf6f6a8090747b2beb3">+34/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useAiChat.ts</strong><dd><code>Use structured context; add
default provider init</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-830ee4f21bdbbd0fa5c5c0f43b0a1d0200831e07ccddc91982cf0371c801b046">+62/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>main.ts</strong><dd><code>Initialize global default context
provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-37b29c5a3b76595194070205d9a0cdedcd717bf7c4367022d1e2667395962f2e">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>PipelineEditor.vue</strong><dd><code>Register/cleanup
pipelines context provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+37/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>Index.vue</strong><dd><code>Register/cleanup logs context
provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62">+42/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ViewDashboard.vue</strong><dd><code>Register/cleanup
dashboards context provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-052badb6758aff09ceaf1645869b9ba96125e6a0ea21abb01a8ee0a40d6467f3">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>AddPanel.vue</strong><dd><code>Register/cleanup context for
add/edit panel</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>2 files</summary><table>
<tr>
<td><strong>O2AIChat.vue</strong><dd><code>Add auto-scroll control and
event handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+22/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>AddAlert.vue</strong><dd><code>Avoid AI chat overlap;
register alerts context</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+15/-2</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr></tr></tbody></table>

</details>

___
2025-10-01 11:45:06 +05:30
Sai Nikhil 31b0e7e97d fix: show unauthorised error in o2 ai chat (#7450)
### **User description**
1.show unauthorised error when we get 403 status code in the o2 ai chat


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Separate 403 unauthorized error handling

- Remove empty assistant placeholder messages

- Standardize generic chat error messaging


___

### **Changes diagram**

```mermaid
flowchart LR
  Fetch["Fetch AI Chat"] -- "get response" --> CheckOK["Check response.ok"]
  CheckOK -- "ok" --> Stream["Process response stream"]
  CheckOK -- "not ok" --> ThrowResp["Throw response object"]
  ThrowResp --> Catch["Catch error"]
  Catch -- "status 403" --> Unauthorized["Push unauthorized message"]
  Catch -- "other error" --> Generic["Push generic error message"]
  Stream --> Save["Save to history"]
  Unauthorized --> Save
  Generic --> Save
```


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Error
handling</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>O2AIChat.vue</strong><dd><code>Enhance AI chat error
handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/O2AIChat.vue

<li>use response object for error throwing<br> <li> refine catch to
remove empty assistant messages<br> <li> add specific 403 unauthorized
message handling


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7450/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+18/-9</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-07-13 21:48:40 +05:30
Sai Nikhil e98edbcb74 feat: json editor for pipeline and alert (#7304)
### **User description**
this PR fixes the issue #6927


___

### **PR Type**
Enhancement


___

### **Description**
- Add JSON editor modal for alerts

- Add JSON editor modal for pipelines

- Implement JSON validation and save handlers

- Enable multi-select and bulk pipeline export


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Miscellaneous</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>O2AIChat.vue</strong><dd><code>Refactor chat types
import</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+2/-16</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>10
files</summary><table>
<tr>
<td><strong>AddAlert.vue</strong><dd><code>Add JSON editor dialog in
alerts</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+194/-4</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>JsonEditor.vue</strong><dd><code>Add common JsonEditor
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-aa32894c1a38a569648ba4a666f12925bbd6dc3b8d98edfba0d29d9f05f17788">+331/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ImportPipeline.vue</strong><dd><code>Use pipelines
composable for destinations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-d57fa41169daa44551a181f21ca33882004b29ab74e3040e4c56a8c849078670">+3/-14</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>Stream.vue</strong><dd><code>Use pipelines composable for
streams</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-1a17ced9dc89022502cab0a6f9b97b413c2a2c4f8219733d063fc0180d361739">+4/-21</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PipelineEditor.vue</strong><dd><code>Add JSON editor in
pipeline editor</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15">+169/-16</a></td>

</tr>

<tr>
<td><strong>PipelinesList.vue</strong><dd><code>Enable selection and
bulk export</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-85e3ef322f3eea0fc6d74d89431ba338a1153cb82ee06bef0f7c5f439c04267d">+154/-85</a></td>

</tr>

<tr>
<td><strong>usePipelines.ts</strong><dd><code>Add usePipelines
composable</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-2b9119f5a6e1ebe377af79c8a9c67f611ab3b705b072ed4361360f6e8ec71c0b">+47/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>chat.ts</strong><dd><code>Add shared chat types</code>&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-1d0b31a11a03e7e24551527edda8e0e652eec57c8435bd3c366d7318bc3d65a3">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>validateAlerts.ts</strong><dd><code>Add alert JSON
validation utility</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-31dfccb7ecf243d062992787997f3e29b26579144def6a562e7f138cf3a73ed6">+313/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>validatePipeline.ts</strong><dd><code>Add pipeline JSON
validation utility</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-ed179bda61f00c79d4498e6eedb0a9d1f97cc21d490f96398d9304ea112b240b">+320/-0</a>&nbsp;
</td>

</tr>
</table></details></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-07-11 08:00:53 +05:30
Sai Nikhil 72c1968e73 fix: O2 ai add info (#7451)
1. This adds additional info  to the o2 ai chat
Add short cut at row to send the event to O2-ai

On inline expand of log row , add short cut at row to send the event to
O2-ai

On Side panel with details of logs line , add short cut at row to send
the event to O2-ai

On pipelines page send selected stream context

On functions creation page send the event to O2-ai
2025-07-07 06:45:23 +05:30
Sai Nikhil 61c23fb416 fix: o2 ai changes (#7397)
### **User description**
1. This PR added beta text to o2 ai
2. added search history functionality to the chat history 
3. added clearing of history functionality so here it will delete the
history that was stored in indexDB if it reaches 100 so it will delete
the old history
4. now we only show top 100 history to the users.


___

### **PR Type**
Enhancement


___

### **Description**
- Add "Beta" label to O2 AI chat header

- Introduce searchable chat history menu

- Limit history to latest 100 entries

- Auto-delete excess history from IndexedDB


___

### **Changes diagram**

```mermaid
flowchart LR
  A["User clicks history icon"] --> B["Load history from IndexedDB"]
  B --> C["Trim history to 100 entries"]
  C --> D["Delete older entries in DB"]
  D --> E["Assign to chatHistory.value"]
  E --> F["Show history menu"]
  F --> G["Filter via search input"]
  G --> H["Display filteredChatHistory"]
```


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>O2AIChat.vue</strong><dd><code>Chat component UI
enhancements</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

web/src/components/O2AIChat.vue

<li>Added "Beta" badge next to O2 AI title<br> <li> Replaced static
history list with search-enabled menu<br> <li> Limited history to top
100 items and auto-deletion<br> <li> Defined
<code>historySearchTerm</code> and <code>filteredChatHistory</code>
computed<br> <li> Added CSS classes for beta badge and history menu
layout


</details>


  </td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7397/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3">+133/-25</a></td>

</tr>
</table></td></tr></tr></tbody></table>

___

> <details> <summary> Need help?</summary><li>Type <code>/help how to
...</code> in the comments thread for any questions about PR-Agent
usage.</li><li>Check out the <a
href="https://qodo-merge-docs.qodo.ai/usage-guide/">documentation</a>
for more information.</li></details>
2025-06-30 15:11:17 +05:30
31703cc9d2 feat: o2 AI Agent (#6899)
this PR introduces o2 ai agent with this user able to ask o2 ai about
sql query , vrl query and logs

---------

Co-authored-by: Subhradeep Chakraborty <chakrabortysubhradeep556@gmail.com>
Co-authored-by: Taiming Liu <liutaiming3@gmail.com>
2025-05-27 15:09:19 +05:30