Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
30a7ad1
Logs page MVP
mpcgrid Dec 20, 2025
882154e
Query fixes and removed span details from logs side panel
mpcgrid Dec 20, 2025
b632a3c
Renaming some logs variables
mpcgrid Dec 22, 2025
33a9e1b
Merge branch 'main' into feature/tri-6738-show-aggregated-logs-in-mai…
mpcgrid Dec 22, 2025
e3b9ab1
Merge branch 'main' into feature/tri-6738-show-aggregated-logs-in-mai…
mpcgrid Dec 23, 2025
58ae425
Merge branch 'main' into feature/tri-6738-show-aggregated-logs-in-mai…
mpcgrid Dec 24, 2025
80660fc
Adds custom logs icon
samejr Dec 31, 2025
2f321b1
Fix hyphenated properties
samejr Dec 31, 2025
e9848cf
Adds new Table variant for the logs style
samejr Dec 31, 2025
85411e5
Brighten the text on table row hover
samejr Dec 31, 2025
2e8eee1
Tightened up the padding slightly for the Simple Tooltip
samejr Dec 31, 2025
6c65ced
Uses remix <Link> component instead of <a>
samejr Dec 31, 2025
31c2ea1
Adds hover state color to row left border
samejr Dec 31, 2025
10955a2
Slightly smaller status badges
samejr Dec 31, 2025
54ba468
Merge remote-tracking branch 'origin/feature/tri-6738-show-aggregated…
mpcgrid Jan 2, 2026
1dbfdce
added seed reference project, mostly for generating logs right now
mpcgrid Jan 6, 2026
6be1dbd
removed time presets
mpcgrid Jan 8, 2026
16ee2db
dealy the loading spinner for logs for .5 sec
mpcgrid Jan 8, 2026
53274b7
merge kind ans status from clickhouse to log level
mpcgrid Jan 8, 2026
941dbaa
show info from attributes as message for error spans
mpcgrid Jan 8, 2026
255bec5
Changed component for attributes and metadata
mpcgrid Jan 9, 2026
1508eb6
Use packet display in logs details
mpcgrid Jan 9, 2026
9d9bdc3
Merge branch 'refs/heads/main' into feature/tri-6738-show-aggregated-…
mpcgrid Jan 9, 2026
6100b2d
updated clickhouse config for logs
mpcgrid Jan 9, 2026
075175f
in run page added timestamp filtering when jumping to view logs
mpcgrid Jan 10, 2026
9663a05
cleaned LogDetails view
mpcgrid Jan 10, 2026
2d78dde
more information cleanup
mpcgrid Jan 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions apps/webapp/app/assets/icons/LogsIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
export function LogsIcon({ className }: { className?: string }) {
return (
<svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="4" cy="10" r="1" fill="currentColor" />
<circle cx="4" cy="5" r="1" fill="currentColor" />
<circle cx="4" cy="14" r="1" fill="currentColor" />
<circle cx="4" cy="19" r="1" fill="currentColor" />
<path
d="M7 9.75L10 9.75"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M7 5L10 5"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M7 14.25H10"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M7 19H10"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M13 5H20"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M13 9.75H20"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M13 14.25H20"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
d="M13 19H20"
stroke="currentColor"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
);
}
54 changes: 52 additions & 2 deletions apps/webapp/app/components/code/CodeBlock.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ type CodeBlockProps = {

/** Whether to show the open in modal button */
showOpenInModal?: boolean;

/** Search term to highlight in the code */
searchTerm?: string;
};

const dimAmount = 0.5;
Expand Down Expand Up @@ -202,6 +205,7 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
showChrome = false,
fileName,
rowTitle,
searchTerm,
...props
}: CodeBlockProps,
ref
Expand Down Expand Up @@ -238,7 +242,7 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
[code]
);

code = code.trim();
code = code?.trim() ?? "";
const lineCount = code.split("\n").length;
const maxLineWidth = lineCount.toString().length;
let maxHeight: string | undefined = undefined;
Expand Down Expand Up @@ -340,6 +344,7 @@ export const CodeBlock = forwardRef<HTMLDivElement, CodeBlockProps>(
className="px-2 py-3"
preClassName="text-xs"
isWrapped={isWrapped}
searchTerm={searchTerm}
/>
) : (
<div
Expand Down Expand Up @@ -451,6 +456,7 @@ type HighlightCodeProps = {
className?: string;
preClassName?: string;
isWrapped: boolean;
searchTerm?: string;
};

function HighlightCode({
Expand All @@ -463,6 +469,7 @@ function HighlightCode({
className,
preClassName,
isWrapped,
searchTerm,
}: HighlightCodeProps) {
const [isLoaded, setIsLoaded] = useState(false);

Expand Down Expand Up @@ -556,6 +563,47 @@ function HighlightCode({
<div className="flex-1">
{line.map((token, key) => {
const tokenProps = getTokenProps({ token, key });

// Highlight search term matches in token
let content: React.ReactNode = token.content;
if (searchTerm && searchTerm.trim() !== "" && token.content) {
const escapedSearch = searchTerm.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const regex = new RegExp(escapedSearch, "gi");

const parts: React.ReactNode[] = [];
let lastIndex = 0;
let match;
let matchCount = 0;

while ((match = regex.exec(token.content)) !== null) {
if (match.index > lastIndex) {
parts.push(token.content.substring(lastIndex, match.index));
}
parts.push(
<span
key={`match-${matchCount}`}
style={{
backgroundColor: "#facc15",
color: "#000000",
fontWeight: "500",
}}
>
{match[0]}
</span>
);
lastIndex = regex.lastIndex;
matchCount++;
}

if (lastIndex < token.content.length) {
parts.push(token.content.substring(lastIndex));
}

if (parts.length > 0) {
content = parts;
}
}

return (
<span
key={key}
Expand All @@ -564,7 +612,9 @@ function HighlightCode({
color: tokenProps?.style?.color as string,
...tokenProps.style,
}}
/>
>
{content}
</span>
);
})}
</div>
Expand Down
Loading
Loading