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-vaidehi and Claude 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 Yang and Claude 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
Bhargav and Claude 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
udev and Harsh 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>
</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>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3 ">+47/-1</a>
</td>
</tr>
<tr>
<td><strong>ScheduledPipeline.vue</strong><dd><code>Propagate
`appendMode` and update sendToAiChat signature</code> </dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-63d8f838bb880356e7804b4a57fd9223d4f2c189de7aadc7cf33cba723b29aaf ">+10/-1</a>
</td>
</tr>
<tr>
<td><strong>MainLayout.vue</strong><dd><code>Bind `appendMode` and clear
context after send</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362 ">+13/-3</a>
</td>
</tr>
<tr>
<td><strong>DetailTable.vue</strong><dd><code>Update sendToAiChat to
accept `append` parameter</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-80552b5d25fa6cef9fbbe430b1865d761c4b132284c2d2175afceea8cbabc8c7 ">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>Index.vue</strong><dd><code>Adjust splitter when AI chat
opens or closes</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62 ">+21/-2</a>
</td>
</tr>
<tr>
<td><strong>JsonPreview.vue</strong><dd><code>Extend sendToAiChat
signature with `append`</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-3985073134d35ff074742944b114d0905524038b42e6d2ac887fef2c8436fb16 ">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>SearchBar.vue</strong><dd><code>Add toggle CSS class and
dynamic width style</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-81893de4edf186b0556f610acb280c87baa2ffe67d3b48a60a866094c7635baf ">+10/-1</a>
</td>
</tr>
<tr>
<td><strong>SearchResult.vue</strong><dd><code>Add `append` flag to
sendToAiChat emit</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-5e65533aa4754bb6d0074fda18ffc1ecacded3b9ca6bc28a161c3f6b12f20195 ">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>TenstackTable.vue</strong><dd><code>Tweak AI button position
and append flag support</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-bc3c669f5ab65a42ae378df1f7d6b35014c9c220790bdcc72b47f55d1385dc22 ">+5/-5</a>
</td>
</tr>
<tr>
<td><strong>Functions.vue</strong><dd><code>Modify sendToAiChat to
include `append` argument</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10291/files#diff-ad825ec1b8d58aec9bf5d2553ea09394a30b22ac59d708bcf9e56168ca1daaf6 ">+2/-2</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-2f7f4d7de8c794b899f5ca1d765d18a4a13e92c1e595f580068ca4a7176bda10 ">+0/-7</a>
</td>
</tr>
<tr>
<td><strong>IncidentList.spec.ts</strong><dd><code>Rename SRE chat tests
to AI chat</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-633b95716cea25470b98f260f00e6fbc641c1fbe8ed82713e346eef014ca4d50 ">+9/-17</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-012246fbc305620dd85432d34ec1fecc32c7bb377474b7a02dc6ed3b6beba78c ">+0/-14</a>
</td>
</tr>
<tr>
<td><strong>useAiChat.ts</strong><dd><code>Strip agent_type and model
from payload builder</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-830ee4f21bdbbd0fa5c5c0f43b0a1d0200831e07ccddc91982cf0371c801b046 ">+0/-8</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-955a15c7ee060f1545e82be22911dd0c14307dee5a70071a394e9fd583bd2c55 ">+0/-12</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3 ">+1/-31</a>
</td>
</tr>
<tr>
<td><strong>SREChat.vue</strong><dd><code>Delete entire SREChat
component</code>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-be3e41b823e163b226ffc270d95cc4981e59c600851e4e0d10ee5e4ee994ac8e ">+0/-9</a>
</td>
</tr>
<tr>
<td><strong>IncidentDetailDrawer.vue</strong><dd><code>Clean up logs and
remove openSREChat</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-6973d58a5f49658b07d3533d4db5d32cc6430433b51732481e7497243dadb0b0 ">+0/-18</a>
</td>
</tr>
<tr>
<td><strong>IncidentList.vue</strong><dd><code>Remove openSREChat
method</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-953ad015996758a8c86e489499cd3b0a614501b99b0c9c5c242a299e34c24ff2 ">+0/-8</a>
</td>
</tr>
<tr>
<td><strong>MainLayout.vue</strong><dd><code>Remove SREChat panel and
imports</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/10197/files#diff-91e4134141264c4624d4eb4cfa987b33ed31eb6f551e089c0b26f2610dd54362 ">+1/-29</a>
</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>
</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>
</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>
</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>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>MainLayout.vue</strong><dd><code>AI button gradient and
hover behavior update</code>
</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>
</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>
</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>
</td>
</tr>
<tr>
<td>
<details>
<summary><strong>O2AIChat.vue</strong><dd><code>Streaming UX,
cancellation, and UI enhancements</code>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-95b95a1b18db00eb9a3b4b9155cf23a078e4d54032f023d6fdf7445afb9e4661 ">+52/-0</a>
</td>
</tr>
<tr>
<td><strong>dashboardsContextProvider.ts</strong><dd><code>New
dashboards context provider with intents</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-c3323cfc4d7015b1b51ff5ec85fe3371c817dcc614e52ebb4fac76abc719b872 ">+76/-0</a>
</td>
</tr>
<tr>
<td><strong>defaultContextProvider.ts</strong><dd><code>Default app-wide
context provider</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-dedeb11e8ee3b92acda8c30cb84d2a749dec11cb1387547c613220a29744e236 ">+59/-0</a>
</td>
</tr>
<tr>
<td><strong>index.ts</strong><dd><code>Export registry and
providers</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-2f5cd69b9d0b7e1c87c1dbe6ad7cdb7b182014a03594481085561a9d694d2659 ">+36/-0</a>
</td>
</tr>
<tr>
<td><strong>logsContextProvider.ts</strong><dd><code>Logs context
provider with time and fields</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-bd6b1c67f0d9ef96110421aac3dd3e8f90115da95adf28e79c88e1c6fc594ac2 ">+198/-0</a>
</td>
</tr>
<tr>
<td><strong>pipelinesContextProvider.ts</strong><dd><code>Pipelines
editor context provider</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-9f09180c5d32d87f8c89fc0a8edc8d2153b37515dcf906123fbd8017c435fa75 ">+52/-0</a>
</td>
</tr>
<tr>
<td><strong>registry.ts</strong><dd><code>Context registry singleton
with fallback</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-771da8f6897a25741c485f6637da004e3a62f6e4b70d6dbb2a408a56ba9e3923 ">+136/-0</a>
</td>
</tr>
<tr>
<td><strong>types.ts</strong><dd><code>Context provider/core
types</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-f0c33d88011ac1afc87b85a1be56756616a2a13105537cf6f6a8090747b2beb3 ">+34/-0</a>
</td>
</tr>
<tr>
<td><strong>useAiChat.ts</strong><dd><code>Use structured context; add
default provider init</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-830ee4f21bdbbd0fa5c5c0f43b0a1d0200831e07ccddc91982cf0371c801b046 ">+62/-8</a>
</td>
</tr>
<tr>
<td><strong>main.ts</strong><dd><code>Initialize global default context
provider</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-37b29c5a3b76595194070205d9a0cdedcd717bf7c4367022d1e2667395962f2e ">+5/-0</a>
</td>
</tr>
<tr>
<td><strong>PipelineEditor.vue</strong><dd><code>Register/cleanup
pipelines context provider</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-68c21f647336067eb79737ce9aca2d49632f2fa1c0878bcfdae55607e3473a15 ">+37/-0</a>
</td>
</tr>
<tr>
<td><strong>Index.vue</strong><dd><code>Register/cleanup logs context
provider</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-0323c3da69b369843c5d72bf4df5b00ca6b5147192a213baf331659ecf92af62 ">+42/-1</a>
</td>
</tr>
<tr>
<td><strong>ViewDashboard.vue</strong><dd><code>Register/cleanup
dashboards context provider</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-052badb6758aff09ceaf1645869b9ba96125e6a0ea21abb01a8ee0a40d6467f3 ">+16/-0</a>
</td>
</tr>
<tr>
<td><strong>AddPanel.vue</strong><dd><code>Register/cleanup context for
add/edit panel</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-c9632db1ad95af95aba10161bcbc7c5608318919f228637bdafae3f3a31267e8 ">+17/-0</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3 ">+22/-2</a>
</td>
</tr>
<tr>
<td><strong>AddAlert.vue</strong><dd><code>Avoid AI chat overlap;
register alerts context</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/8697/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8 ">+15/-2</a>
</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>
</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>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-a6a125719a7b32b31b53fcfe05c12081d82c139a401699affdda0db8e73887e3 ">+2/-16</a>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8 ">+194/-4</a>
</td>
</tr>
<tr>
<td><strong>JsonEditor.vue</strong><dd><code>Add common JsonEditor
component</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-aa32894c1a38a569648ba4a666f12925bbd6dc3b8d98edfba0d29d9f05f17788 ">+331/-0</a>
</td>
</tr>
<tr>
<td><strong>ImportPipeline.vue</strong><dd><code>Use pipelines
composable for destinations</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-d57fa41169daa44551a181f21ca33882004b29ab74e3040e4c56a8c849078670 ">+3/-14</a>
</td>
</tr>
<tr>
<td><strong>Stream.vue</strong><dd><code>Use pipelines composable for
streams</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-1a17ced9dc89022502cab0a6f9b97b413c2a2c4f8219733d063fc0180d361739 ">+4/-21</a>
</td>
</tr>
<tr>
<td><strong>PipelineEditor.vue</strong><dd><code>Add JSON editor in
pipeline editor</code>
</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>
</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>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-2b9119f5a6e1ebe377af79c8a9c67f611ab3b705b072ed4361360f6e8ec71c0b ">+47/-0</a>
</td>
</tr>
<tr>
<td><strong>chat.ts</strong><dd><code>Add shared chat types</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-1d0b31a11a03e7e24551527edda8e0e652eec57c8435bd3c366d7318bc3d65a3 ">+13/-0</a>
</td>
</tr>
<tr>
<td><strong>validateAlerts.ts</strong><dd><code>Add alert JSON
validation utility</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-31dfccb7ecf243d062992787997f3e29b26579144def6a562e7f138cf3a73ed6 ">+313/-0</a>
</td>
</tr>
<tr>
<td><strong>validatePipeline.ts</strong><dd><code>Add pipeline JSON
validation utility</code>
</dd></td>
<td><a
href="https://github.com/openobserve/openobserve/pull/7304/files#diff-ed179bda61f00c79d4498e6eedb0a9d1f97cc21d490f96398d9304ea112b240b ">+320/-0</a>
</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>
</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