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
4640db5
feat(backend): move agent-login to Convex HTTP action
vedantb2 Mar 24, 2026
dca9aa5
fix(web-v2): handle boolean search param parsing for agent login
vedantb2 Mar 24, 2026
4fda2fb
refactor(web-v2): move agent-login to vite dev middleware
vedantb2 Mar 24, 2026
03895cc
remove hard coded
vedantb2 Mar 25, 2026
55053c4
fix(web): enable repo-level audit management from app context
vedantb2 Mar 25, 2026
c91905c
refactor(chrome-extension): move hardcoded URLs to env vars
vedantb2 Mar 25, 2026
86d6ae5
feat: use compact relative time on quick task cards
vedantb2 Mar 25, 2026
5014d7e
fix(web-v2): add inbox to KNOWN_SUB_PAGES to fix URL parsing
vedantb2 Mar 25, 2026
9464fb3
feat: show "My Team" / "{user}'s Team" instead of "Personal" for pers…
vedantb2 Mar 25, 2026
93681be
Merge pull request #278 from vedantb2/eva/task-m57apn0mz0032kqq0rn6aq…
vedantb2 Mar 25, 2026
0bf20c1
Merge pull request #277 from vedantb2/eva/task-m576axt96sv2v0capqnt2s…
vedantb2 Mar 25, 2026
3472e27
fix(users): use fullName as fallback for display when firstName/lastN…
vedantb2 Mar 26, 2026
12a5f0e
Merge pull request #279 from vedantb2/eva/task-m570xfxrvah1pd3yg8a9kq…
vedantb2 Mar 26, 2026
953f815
chore: allow any origin in dev mode for proxy environments
vedantb2 Mar 26, 2026
77f846f
rename repositories to codebases
vedantb2 Mar 26, 2026
117b761
feat: hide dev-only features in sidebar for non-development environments
vedantb2 Mar 26, 2026
fe62072
fix ext
vedantb2 Mar 26, 2026
9406fd5
fix: allow team members with repo access to execute sessions
vedantb2 Mar 26, 2026
75a0756
fix: use ActivitySteps fallback instead of Reasoning in chrome extens…
vedantb2 Mar 26, 2026
13693c9
fix: remove zod validation from agent login query param
vedantb2 Mar 27, 2026
21ae978
fix: allow Daytona proxy subdomains in allowedDevOrigins
vedantb2 Mar 27, 2026
5aa9f5c
fix: add CSP header for 4-segment session routes in web-v2
vedantb2 Mar 27, 2026
ba274f1
fix: resolve duplicate CORS headers and vite network accessibility
vedantb2 Mar 27, 2026
b93f4ef
fix: retry on Daytona command execution timeout and increase branch c…
vedantb2 Mar 27, 2026
faf08d5
fix: resolve mixed content and URL encoding issues in web preview iframe
vedantb2 Mar 27, 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
3 changes: 2 additions & 1 deletion apps/chrome-extension/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ dist/
.env.chrome
.env.development
.env
.env.production
.env.production
.env.staging
1 change: 1 addition & 0 deletions apps/chrome-extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"scripts": {
"dev": "vite build --watch --mode development",
"build": "vite build",
"build:staging": "vite build --mode staging",
"preview": "vite preview"
},
"dependencies": {
Expand Down
6 changes: 1 addition & 5 deletions apps/chrome-extension/src/shared/messaging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,11 +224,7 @@ export type ExtensionMessage =
| RequestAnnotationsMessage
| RequestToolbarStateMessage;

export const EVA_URL =
typeof chrome !== "undefined" &&
chrome.runtime?.getManifest?.()?.version_name === "development"
? "http://localhost:3000"
: "https://eva-git-staging-vedantb.vercel.app";
export const EVA_URL = import.meta.env.VITE_EVA_URL;

export function isSessionId(value: unknown): value is Id<"sessions"> {
return typeof value === "string" && value.length > 0;
Expand Down
7 changes: 2 additions & 5 deletions apps/chrome-extension/src/sidepanel/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,6 @@ if (!PUBLISHABLE_KEY) {
}

const EXTENSION_URL = chrome.runtime.getURL(".");
const SYNC_HOST = import.meta.env.DEV
? "http://localhost:3000"
: "https://eva-git-staging-vedantb.vercel.app";

function getHostFromUrl(url: string): string | null {
try {
Expand Down Expand Up @@ -847,7 +844,7 @@ function AuthenticatedApp() {

function SignInScreen() {
const handleOpenWebApp = () => {
chrome.tabs.create({ url: SYNC_HOST });
chrome.tabs.create({ url: EVA_URL });
};

return (
Expand Down Expand Up @@ -876,7 +873,7 @@ export default function App() {
afterSignOutUrl={`${EXTENSION_URL}/sidepanel.html`}
signInFallbackRedirectUrl={`${EXTENSION_URL}/sidepanel.html`}
signUpFallbackRedirectUrl={`${EXTENSION_URL}/sidepanel.html`}
syncHost={SYNC_HOST}
syncHost={EVA_URL}
>
<ConvexProvider>
<TooltipProvider>
Expand Down
84 changes: 26 additions & 58 deletions apps/chrome-extension/src/sidepanel/components/ChatPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ import {
Message as AIMessage,
MessageContent,
MessageResponse,
Reasoning,
ReasoningTrigger,
PromptInput,
PromptInputTextarea,
PromptInputFooter,
Expand Down Expand Up @@ -209,7 +207,6 @@ export function ChatPanel({
mode: "ask",
model,
responseLength,
installationId: selectedRepo.installationId,
});
} catch (error) {
await appendMessage({
Expand Down Expand Up @@ -409,33 +406,21 @@ export function ChatPanel({
}
>
{message.role === "assistant" && !message.content ? (
(() => {
const steps = parseActivitySteps(streamingActivity);
return steps ? (
<ActivitySteps
steps={steps}
isStreaming
name="Eva"
icon={evaIcon}
startedAt={message.timestamp}
/>
) : (
<Reasoning isStreaming defaultOpen>
<ReasoningTrigger
getThinkingMessage={(streaming) =>
streaming ? "Working..." : "Processing complete"
}
/>
<CollapsibleContent className="mt-4 text-sm text-muted-foreground">
<pre className="whitespace-pre-wrap font-mono text-xs">
{streamingActivity ||
message.activityLog ||
"Starting..."}
</pre>
</CollapsibleContent>
</Reasoning>
);
})()
<ActivitySteps
steps={
parseActivitySteps(streamingActivity) ?? [
{
type: "thinking",
label: "Working...",
status: "active",
},
]
}
isStreaming
name="Eva"
icon={evaIcon}
startedAt={message.timestamp}
/>
) : (
<>
{message.role === "assistant" ? (
Expand All @@ -453,18 +438,7 @@ export function ChatPanel({
startedAt={message.timestamp}
duration={duration}
/>
) : (
<Reasoning defaultOpen={false}>
<ReasoningTrigger
getThinkingMessage={() => "View logs"}
/>
<CollapsibleContent className="mt-4 text-sm text-muted-foreground">
<pre className="whitespace-pre-wrap font-mono text-xs max-h-64 overflow-y-auto">
{message.activityLog}
</pre>
</CollapsibleContent>
</Reasoning>
);
) : null;
})()}
{"imageUrl" in message && message.imageUrl && (
<img
Expand Down Expand Up @@ -533,7 +507,6 @@ export function ChatPanel({
<AIMessage from="assistant" className="max-w-full">
<MessageContent className="px-1 py-2">
{(() => {
const steps = parseActivitySteps(streamingActivity);
const loadingEvaIcon = (
<img
src="/icons/icon.png"
Expand All @@ -542,27 +515,22 @@ export function ChatPanel({
/>
);
const lastMsg = messages[messages.length - 1];
return steps ? (
return (
<ActivitySteps
steps={steps}
steps={
parseActivitySteps(streamingActivity) ?? [
{
type: "thinking",
label: "Working...",
status: "active",
},
]
}
isStreaming
name="Eva"
icon={loadingEvaIcon}
startedAt={lastMsg.timestamp}
/>
) : (
<Reasoning isStreaming defaultOpen>
<ReasoningTrigger
getThinkingMessage={(streaming) =>
streaming ? "Working..." : "Processing complete"
}
/>
<CollapsibleContent className="mt-4 text-sm text-muted-foreground">
<pre className="whitespace-pre-wrap font-mono text-xs">
{streamingActivity || "Starting..."}
</pre>
</CollapsibleContent>
</Reasoning>
);
})()}
</MessageContent>
Expand Down
1 change: 1 addition & 0 deletions apps/web-v2/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"@tabler/icons-react": "^3.33.0",
"@tanstack/react-hotkeys": "^0.3.2",
"@tanstack/react-router": "^1.120.0",
"@tanstack/router-zod-adapter": "^1.81.5",
"@tiptap/core": "^3.20.1",
"@tiptap/extension-underline": "^3.20.1",
"@tiptap/pm": "^3.20.1",
Expand Down
5 changes: 3 additions & 2 deletions apps/web-v2/src/lib/components/PreviewNavBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ function getPathFromUrl(fullUrl: string): string {
function buildUrlWithPath(baseUrl: string, path: string): string {
try {
const parsed = new URL(baseUrl);
parsed.pathname = path.startsWith("/") ? path : `/${path}`;
return parsed.toString();
if (parsed.protocol === "http:") parsed.protocol = "https:";
const fullPath = path.startsWith("/") ? path : `/${path}`;
return `${parsed.origin}${fullPath}`;
} catch {
return baseUrl;
}
Expand Down
Loading
Loading