This pr fixes the issue #11450
We observed that during auto UDF execution, the _timestamp field was
being included both in the schema and the user-defined schema. The UI
was not designed to handle this duplication. This issue does not occur
when users manually add fields through the Stream page, as _timestamp is
not added to the user-defined schema in that flow. We have now handled
this scenario.
---------
Co-authored-by: Bhargav <BJP232004@GMAIL.COM>
#11446
Traces in the Logs correlation panel were showing wrong durations
because they were read from /latest (cached summaries). Using
/latest_stream delivers the actual trace records with correct duration
data.
#11463
Updated FlameGraphView.vue so that spans with a computed width below
0.1% of the total trace duration are rendered with a minimum 0.1% width
instead of being dropped — ensuring all spans remain visible regardless
of how short they are.
## 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>
1. search across folders is not working
2. when enabling search across or disabling it calling an api which is
not needed
3. while creating report the add folder is not there
4. while edigint the report user is able to change the folder which is
not consistent with alerts
5. when clicking on any folder if it still loading and user is moved
another folder it shoudl display that folder but it is redirecting user
to the previous folder that was clicked
check all labels and static text to get camel case or first letter
capital
update static text to use from language file
when you click on view query arrow beside filter, the graph disappears
icons size to be consistent on alert list when checkboxes are selected
Add folder in alert import needs to be consistent with other Add folder
UI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This fixes issues
1. on cloud FE would not do case insensitive comparison when checking
user's role
2. in invites flow BE would not do case insensitive comparison for
checking user's invites
---------
Signed-off-by: Yashodhan Joshi <yjdoc2@gmail.com>
Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai>
Co-authored-by: Yashodhan Joshi <yjdoc2@gmail.com>
Field-value search in expanded field panels was gated by page-size
thresholds, so it disappeared when returned values were fewer than the
requested size. This update makes search visibility data-driven: show it
whenever values exist; hide it only when there are no values.
- **Shared UI behavior update (logs/traces/pipeline/alerts)**
- Updated `FieldValuesPanel` search visibility logic to depend on value
presence rather than `defaultValuesCount` threshold.
- This applies everywhere the shared panel is used, including logs,
traces, pipeline, and alerts field lists.
- **Targeted spec updates**
- Revised `FieldValuesPanel.spec.ts` to reflect intended behavior:
- search hidden when no values exist
- search visible when values exist even below default fetch size
- search remains visible when a search response is empty but cached
values still exist
- **Code snippet (behavior change)**
```ts
const showValueSearch = computed(
() =>
cachedValues.value.length > 0 ||
(props.fieldValues?.values?.length ?? 0) > 0,
);
```
- **screenshot**
- No suitable UI screenshot is included: the available capture is a
login screen and does not demonstrate the field-values panel behavior.
> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `download.cypress.io`
> - Triggering command:
`/home/REDACTED/work/_temp/ghcca-node/node/bin/node node dist/index.js
--exec install` (dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/openobserve/openobserve/settings/copilot/coding_agent)
(admins only)
>
> </details>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bjp232004 <551527+bjp232004@users.noreply.github.com>
In cloud builds, the user identity tooltip in the header truncates/wraps
long email addresses, making the logged-in user hard to read on hover.
This change updates the tooltip to size to content and keep the value on
a single line.
- **Tooltip rendering update (`web/src/components/Header.vue`)**
- Applied a dedicated class to the profile tooltip
(`header-user-tooltip`).
- Moved sizing behavior into component styles (instead of inline styles)
for maintainability.
- Ensured long identities are displayed fully with:
- `width: auto`
- `max-width: none`
- `white-space: nowrap`
- **Targeted coverage (`web/src/components/Header.spec.ts`)**
- Added a focused assertion that the profile tooltip uses the new class,
locking in the intended styling hook.
- **Visual reference**
- Reported issue screenshot:
https://github.com/user-attachments/assets/c416a4e3-787c-43fe-af37-28723753f3e3
```vue
<q-tooltip
anchor="top middle"
self="bottom middle"
class="header-user-tooltip"
>
{{ user.given_name ? user.given_name + " " + user.family_name : user.email }}
</q-tooltip>
<style scoped lang="scss">
:deep(.header-user-tooltip) {
width: auto;
max-width: none;
white-space: nowrap;
}
</style>
```
> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `download.cypress.io`
> - Triggering command:
`/home/REDACTED/work/_temp/ghcca-node/node/bin/node node dist/index.js
--exec install` (dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/openobserve/openobserve/settings/copilot/coding_agent)
(admins only)
>
> </details>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bjp232004 <551527+bjp232004@users.noreply.github.com>
1. When "Apply VRL" or "Run Query" is clicked, now calls _search
(normal) when no multi-time-range windows are configured, and
_search_multi only when multi-windows are present.
2. "Query Result" pane now shows a "results across all time windows"
badge only when multi-windows are configured, so users know the results
are aggregated across multiple time ranges.