Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
22 changes: 0 additions & 22 deletions .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,3 @@ VITE_USE_LOCAL_PROXY=false

# VITE_PROXY_URL=http://localhost:3001
# VITE_USE_LOCAL_PROXY=true

TRACEROOT_TOKEN=your_traceroot_token_here

TRACEROOT_SERVICE_NAME=eigent

TRACEROOT_GITHUB_OWNER=eigent

TRACEROOT_GITHUB_REPO_NAME=eigent-ai

TRACEROOT_GITHUB_COMMIT_HASH=main

TRACEROOT_ENABLE_SPAN_CLOUD_EXPORT=true

TRACEROOT_ENABLE_LOG_CLOUD_EXPORT=true

TRACEROOT_ENABLE_SPAN_CONSOLE_EXPORT=false

TRACEROOT_ENABLE_LOG_CONSOLE_EXPORT=true

TRACEROOT_TRACER_VERBOSE=false

TRACEROOT_LOGGER_VERBOSE=false
15 changes: 15 additions & 0 deletions .github/workflows/build-view.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,21 @@ jobs:
- name: Install Dependencies
run: npm install

- name: Generate .env file for build
run: |
echo "TRACEROOT_TOKEN=${{ secrets.TRACEROOT_TOKEN }}" >> .env
echo "TRACEROOT_SERVICE_NAME=${{ secrets.TRACEROOT_SERVICE_NAME }}" >> .env
echo "TRACEROOT_GITHUB_OWNER=${{ secrets.TRACEROOT_GITHUB_OWNER }}" >> .env
echo "TRACEROOT_GITHUB_REPO_NAME=${{ secrets.TRACEROOT_GITHUB_REPO_NAME }}" >> .env
echo "TRACEROOT_GITHUB_COMMIT_HASH=${{ secrets.TRACEROOT_GITHUB_COMMIT_HASH }}" >> .env
echo "TRACEROOT_ENABLE_SPAN_CLOUD_EXPORT=${{ secrets.TRACEROOT_ENABLE_SPAN_CLOUD_EXPORT }}" >> .env
echo "TRACEROOT_ENABLE_LOG_CLOUD_EXPORT=${{ secrets.TRACEROOT_ENABLE_LOG_CLOUD_EXPORT }}" >> .env
echo "TRACEROOT_ENABLE_SPAN_CONSOLE_EXPORT=${{ secrets.TRACEROOT_ENABLE_SPAN_CONSOLE_EXPORT }}" >> .env
echo "TRACEROOT_ENABLE_LOG_CONSOLE_EXPORT=${{ secrets.TRACEROOT_ENABLE_LOG_CONSOLE_EXPORT }}" >> .env
echo "TRACEROOT_TRACER_VERBOSE=${{ secrets.TRACEROOT_TRACER_VERBOSE }}" >> .env
echo "TRACEROOT_LOGGER_VERBOSE=${{ secrets.TRACEROOT_LOGGER_VERBOSE }}" >> .env
echo "TRACEROOT_ENABLED=${{ secrets.TRACEROOT_ENABLED }}" >> .env

# Step for macOS builds with signing
- name: Build Release Files (macOS with signing)
if: runner.os == 'macOS'
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,21 @@ jobs:
- name: Install Dependencies
run: npm install

- name: Generate .env file for build
run: |
echo "TRACEROOT_TOKEN=${{ secrets.TRACEROOT_TOKEN }}" >> .env
echo "TRACEROOT_SERVICE_NAME=${{ secrets.TRACEROOT_SERVICE_NAME }}" >> .env
echo "TRACEROOT_GITHUB_OWNER=${{ secrets.TRACEROOT_GITHUB_OWNER }}" >> .env
echo "TRACEROOT_GITHUB_REPO_NAME=${{ secrets.TRACEROOT_GITHUB_REPO_NAME }}" >> .env
echo "TRACEROOT_GITHUB_COMMIT_HASH=${{ secrets.TRACEROOT_GITHUB_COMMIT_HASH }}" >> .env
echo "TRACEROOT_ENABLE_SPAN_CLOUD_EXPORT=${{ secrets.TRACEROOT_ENABLE_SPAN_CLOUD_EXPORT }}" >> .env
echo "TRACEROOT_ENABLE_LOG_CLOUD_EXPORT=${{ secrets.TRACEROOT_ENABLE_LOG_CLOUD_EXPORT }}" >> .env
echo "TRACEROOT_ENABLE_SPAN_CONSOLE_EXPORT=${{ secrets.TRACEROOT_ENABLE_SPAN_CONSOLE_EXPORT }}" >> .env
echo "TRACEROOT_ENABLE_LOG_CONSOLE_EXPORT=${{ secrets.TRACEROOT_ENABLE_LOG_CONSOLE_EXPORT }}" >> .env
echo "TRACEROOT_TRACER_VERBOSE=${{ secrets.TRACEROOT_TRACER_VERBOSE }}" >> .env
echo "TRACEROOT_LOGGER_VERBOSE=${{ secrets.TRACEROOT_LOGGER_VERBOSE }}" >> .env
echo "TRACEROOT_ENABLED=${{ secrets.TRACEROOT_ENABLED }}" >> .env

# Step for macOS builds with signing
- name: Build Release Files (macOS with signing)
if: runner.os == 'macOS'
Expand Down
4 changes: 4 additions & 0 deletions electron-builder.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
{
"from": "utils",
"to": "utils"
},
{
"from": ".env",
"to": "backend/.env"
}
],
"protocols": [
Expand Down
49 changes: 45 additions & 4 deletions electron/main/init.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ export function getMainWindow(): BrowserWindow | null {
export async function checkToolInstalled() {
return new Promise<PromiseReturnType>(async (resolve, reject) => {
if (!(await isBinaryExists('uv'))) {
resolve({success: false, message: "uv doesn't exist"})
resolve({ success: false, message: "uv doesn't exist" })
return
}

if (!(await isBinaryExists('bun'))) {
resolve({success: false, message: "Bun doesn't exist"})
resolve({ success: false, message: "Bun doesn't exist" })
return
}

resolve({success: true, message: "Tools exist already"})
resolve({ success: true, message: "Tools exist already" })
})

}
Expand Down Expand Up @@ -152,14 +152,55 @@ export async function startBackend(setPort?: (port: number) => void): Promise<an
if (setPort) {
setPort(port);
}

const npmCacheDir = path.join(venvPath, '.npm-cache');
if (!fs.existsSync(npmCacheDir)) {
fs.mkdirSync(npmCacheDir, { recursive: true });
}

// Read .env file and parse it into an object
let envFileContent = {};
try {
// Try multiple paths for .env file
let envPath: string;

if (app.isPackaged) {
// In packaged app, .env is in resources/backend/.env
envPath = path.join(process.resourcesPath || '', 'backend', '.env');
} else {
// In development, .env is in project root
envPath = path.join(backendPath, '..', '.env');
}

if (fs.existsSync(envPath)) {
const envContent = fs.readFileSync(envPath, 'utf-8');
log.info('Reading .env file from:', envPath);

// Parse .env file content into an object
// Use \r?\n to handle both Windows and Unix line endings
const lines = envContent.split(/\r?\n/);

envFileContent = lines
.filter(line => line.trim() && !line.trim().startsWith('#')) // Filter empty lines and comments
.reduce((acc, line) => {
const equalIndex = line.indexOf('=');
if (equalIndex > 0) {
const key = line.substring(0, equalIndex).trim();
const value = line.substring(equalIndex + 1).trim();
if (key && value !== undefined) {
acc[key] = value;
}
}
return acc;
}, {} as Record<string, string>);

}
} catch (error) {
console.log('error reading .env file:', error)
}

const env = {
...process.env,
...envFileContent, // Merge environment variables from .env file
SERVER_URL: "https://dev.eigent.ai/api",
PYTHONIOENCODING: 'utf-8',
UV_PROJECT_ENVIRONMENT: venvPath,
Expand Down
5 changes: 3 additions & 2 deletions src/components/ChatBox/TaskCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -333,9 +333,10 @@ export function TaskCard({
if (task.agent) {
// Switch to the chatStore that owns this task card (for multi-turn conversations)
if (chatId && projectStore.activeProjectId) {
const activeProjectId = projectStore.activeProjectId;
const activeChatStore = projectStore.getActiveChatStore();
const currentChatId = activeChatStore ? Object.keys(projectStore.projects[projectStore.activeProjectId].chatStores).find(
id => projectStore.projects[projectStore.activeProjectId].chatStores[id] === activeChatStore
const currentChatId = activeChatStore ? Object.keys(projectStore.projects[activeProjectId].chatStores).find(
id => projectStore.projects[activeProjectId]?.chatStores[id] === activeChatStore
) : null;

// Only switch if this is a different chat
Expand Down
1 change: 1 addition & 0 deletions src/store/chatStore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1102,6 +1102,7 @@ const chatStore = (initial?: Partial<ChatStore>) => createStore<ChatStore>()(
role: "agent",
content: `❌ **Error**: ${errorMessage}`,
});
console.log(' tasks[currentTaskId].messages', tasks[currentTaskId].messages)
uploadLog(currentTaskId, type)
return
}
Expand Down
Binary file modified utils/__pycache__/__init__.cpython-310.pyc
Binary file not shown.
Binary file modified utils/__pycache__/traceroot_wrapper.cpython-310.pyc
Binary file not shown.
2 changes: 1 addition & 1 deletion utils/traceroot_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def is_enabled() -> bool:
# Log successful initialization
module_name = _get_module_name()
_init_logger = _get_traceroot_logger("traceroot_wrapper")
_init_logger.info("TraceRoot initialized successfully", extra={"backend": "traceroot", "service_module": module_name})
_init_logger.info("TraceRoot initialized successfully", extra={"backend": "traceroot", "module_name": module_name})
else:
# No-op implementations when TraceRoot is not configured
def trace(*args, **kwargs):
Expand Down