bugfixes; research subproc; higher sandbox limits

This commit is contained in:
2026-04-16 18:11:26 -04:00
parent f80c943dc3
commit 3153e89d4f
54 changed files with 1947 additions and 498 deletions

View File

@@ -22,6 +22,7 @@ import { AgentHarness, type HarnessSessionConfig } from './harness/agent-harness
import { OHLCService } from './services/ohlc-service.js';
import { SymbolIndexService } from './services/symbol-index-service.js';
import { SymbolRoutes } from './routes/symbol-routes.js';
import { AdminRoutes } from './routes/admin-routes.js';
// Catch unhandled promise rejections for better debugging
process.on('unhandledRejection', (reason: any, promise) => {
@@ -309,6 +310,7 @@ const k8sClient = new KubernetesClient({
const containerManager = new ContainerManager({
k8sClient,
userService,
sandboxImage: config.kubernetes.sandboxImage,
sidecarImage: config.kubernetes.sidecarImage,
storageClass: config.kubernetes.storageClass,
@@ -439,6 +441,9 @@ const getSymbolService = () => symbolIndexService;
const symbolRoutes = new SymbolRoutes({ getSymbolIndexService: getSymbolService });
symbolRoutes.register(app);
// Register admin routes
new AdminRoutes(containerManager, userService).register(app);
app.log.debug('All routes registered');
// Health check
@@ -715,7 +720,6 @@ try {
icebergClient,
logger: app.log,
});
await indexService.initialize();
// Assign to module-level variable so onMetadataUpdate callback can use it
symbolIndexService = indexService;
@@ -723,7 +727,17 @@ try {
// Update websocket handler's config so it can use the service
(websocketHandler as any).config.symbolIndexService = indexService;
app.log.info({ stats: symbolIndexService.getStats() }, 'Symbol index service initialized');
// Retry until we get at least some symbol metadata
while (true) {
await indexService.initialize();
const stats = indexService.getStats();
if (stats.symbolCount > 0) {
app.log.info({ stats }, 'Symbol index service initialized');
break;
}
app.log.warn('Symbol index has no metadata yet, retrying in 5 seconds...');
await new Promise(resolve => setTimeout(resolve, 5000));
}
} catch (error) {
app.log.warn({ error }, 'Failed to initialize symbol index service - symbol search will not be available');
}