Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0ea9da8
feat: add Arena leaderboard page for AI coding agents and LLMs
idoshamun Feb 25, 2026
7fe269d
fix(arena): use rolling 24h window for last sparkline point and clean…
idoshamun Feb 25, 2026
dd5c3d4
feat(arena): add tooltips for D-Index metrics and enhance controversy…
idoshamun Feb 25, 2026
2079169
fix(arena): update brand logos and colors for Copilot, Codex, Qwen, L…
idoshamun Feb 25, 2026
2ae4282
feat(arena): add mobile responsive layout with expandable rankings
idoshamun Feb 25, 2026
e0e5099
fix(arena): remove mentions/hr metric, crown hover effects, and fix C…
idoshamun Feb 25, 2026
fba8ef4
fix(arena): migrate logo URLs to daily.dev CDN
idoshamun Feb 25, 2026
96df9cc
feat(arena): improve highlights feed behavior for laptop and mobile v…
idoshamun Feb 25, 2026
91074e5
fix(arena): pause polling on background tabs and cap highlights in me…
idoshamun Feb 26, 2026
cae6668
feat(arena): replace emoji with design system icons for crowns and ra…
idoshamun Feb 26, 2026
24424c7
feat(arena): polish crown cards, rankings layout, and highlights feed
idoshamun Feb 26, 2026
4035892
fix(arena): unify 7d trend sparkline color to neutral text-tertiary
idoshamun Feb 26, 2026
ef8d31d
feat(arena): refine crown microinteractions and polish leaderboard UI
idoshamun Feb 26, 2026
4ea9ac5
fix(arena): add responsive padding and fix layout on smaller desktop …
idoshamun Feb 26, 2026
24e187a
fix(arena): update arena icon with outlined/filled variants and remov…
idoshamun Feb 26, 2026
d2b9983
fix(arena): enlarge arena icon size for improved header visibility
idoshamun Feb 26, 2026
3807de3
refactor(arena): load entity metadata from API
idoshamun Feb 26, 2026
5ccbc86
Refactor Arena UI and clean up maintainability issues
idoshamun Feb 26, 2026
55706c6
Refactor Arena d-index rollup to weighted average
idoshamun Feb 26, 2026
4edf48c
Merge origin/main into feat/arena-leaderboard
idoshamun Feb 26, 2026
a5623cd
fix(arena): resolve shared/webapp lint blockers
idoshamun Feb 26, 2026
6769bc9
chore(ci): retrigger pipeline
idoshamun Feb 26, 2026
c968656
test(webapp): stabilize post downvote flow assertions
idoshamun Feb 26, 2026
1c4733b
revert(webapp): undo PostPage test changes
idoshamun Feb 26, 2026
05524b7
feat(arena): consume backend dIndex from sentiment time series
idoshamun Feb 26, 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
23 changes: 0 additions & 23 deletions .claude/hooks/auto-lint.sh

This file was deleted.

11 changes: 0 additions & 11 deletions .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -112,17 +112,6 @@
}
]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/auto-lint.sh"
}
]
}
]
},
"enabledPlugins": {
Expand Down
7 changes: 7 additions & 0 deletions packages/shared/src/components/icons/Arena/filled.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions packages/shared/src/components/icons/Arena/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type { ReactElement } from 'react';
import React from 'react';
import type { IconProps } from '../../Icon';
import Icon from '../../Icon';
import OutlinedIcon from './outlined.svg';
import FilledIcon from './filled.svg';

export const ArenaIcon = (props: IconProps): ReactElement => (
<Icon {...props} IconPrimary={OutlinedIcon} IconSecondary={FilledIcon} />
);
7 changes: 7 additions & 0 deletions packages/shared/src/components/icons/Arena/outlined.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
54 changes: 54 additions & 0 deletions packages/shared/src/features/agents/arena/ArenaAnimatedCounter.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import type { ReactElement } from 'react';
import React, { useEffect, useRef, useState } from 'react';

interface ArenaAnimatedCounterProps {
value: number;
format?: (n: number) => string;
className?: string;
duration?: number;
}

export const ArenaAnimatedCounter = ({
value,
format,
className,
duration = 800,
}: ArenaAnimatedCounterProps): ReactElement => {
const [display, setDisplay] = useState(value);
const prevRef = useRef(value);
const frameRef = useRef<number>(0);

useEffect(() => {
const from = prevRef.current;
const to = value;
prevRef.current = value;

if (from === to) {
return undefined;
}

const startTime = performance.now();
const animate = (now: number) => {
const elapsed = now - startTime;
const progress = Math.min(elapsed / duration, 1);
// ease-out cubic
const eased = 1 - (1 - progress) * (1 - progress) * (1 - progress);
const current = Math.round(from + (to - from) * eased);
setDisplay(current);

if (progress < 1) {
frameRef.current = requestAnimationFrame(animate);
}
};

frameRef.current = requestAnimationFrame(animate);

return () => {
cancelAnimationFrame(frameRef.current);
};
}, [value, duration]);

const formatted = format ? format(display) : display.toLocaleString();

return <span className={className}>{formatted}</span>;
};
Loading