Skip to content
Closed
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
6 changes: 6 additions & 0 deletions .ade/ade.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,9 @@ ai:
autoTitleEnabled: true
autoTitleModelId: openai/gpt-5.3-codex-spark
autoTitleRefreshOnComplete: true
localProviders:
lmstudio:
enabled: true
endpoint: http://127.0.0.1:1234
autoDetect: true
preferredModelId: null
19 changes: 11 additions & 8 deletions .ade/cto/identity.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
name: CTO
version: 3
persona: Persistent project CTO with collaborative personality.
personality: casual
version: 1
persona: >-
You are the CTO for this project inside ADE.

You are the persistent technical lead who owns architecture, execution
quality, engineering continuity, and team direction.

Use ADE's tools and project context to help the team move forward with clear,
concrete decisions.
personality: strategic
modelPreferences:
provider: claude
model: sonnet
Expand All @@ -21,8 +28,4 @@ openclawContextPolicy:
- secret
- token
- system_prompt
onboardingState:
completedSteps:
- identity
completedAt: 2026-04-02T14:20:19.124Z
updatedAt: 2026-04-02T14:20:19.127Z
updatedAt: 1970-01-01T00:00:00.000Z
14 changes: 14 additions & 0 deletions apps/desktop/src/main/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ import { createExternalConnectionAuthService } from "./services/externalMcp/exte
import { createComputerUseArtifactBrokerService } from "./services/computerUse/computerUseArtifactBrokerService";
import { createSyncService } from "./services/sync/syncService";
import { createAutoUpdateService } from "./services/updates/autoUpdateService";
import { cleanupStaleTempArtifacts } from "./services/runtime/tempCleanupService";
import type { Logger } from "./services/logging/logger";

/**
Expand Down Expand Up @@ -1454,6 +1455,15 @@ app.whenReady().then(async () => {
},
});
agentChatServiceRef = agentChatService;
setImmediate(() => {
void Promise.resolve()
.then(() => agentChatService.cleanupStaleAttachments())
.catch((err) => {
logger.warn("agent_chat.cleanup_stale_attachments_failed", {
error: err instanceof Error ? err.message : String(err),
});
});
});

// Wire agentChatService into prService for integration resolution
prService.setAgentChatService(agentChatService);
Expand Down Expand Up @@ -2772,6 +2782,10 @@ app.whenReady().then(async () => {

// --- Auto-update service (global, not per-project) ---
const updateLogger = createFileLogger(path.join(app.getPath("userData"), "ade-update.jsonl"));
cleanupStaleTempArtifacts({
tempRoot: app.getPath("temp"),
logger: updateLogger,
});
const autoUpdateService = createAutoUpdateService(updateLogger);
autoUpdateService.onUpdateAvailable((info) => {
BrowserWindow.getAllWindows().forEach((win) => {
Expand Down
Loading