diff --git a/dashcaddy-api/src/app.js b/dashcaddy-api/src/app.js
index b9655cf..adefee2 100644
--- a/dashcaddy-api/src/app.js
+++ b/dashcaddy-api/src/app.js
@@ -95,6 +95,7 @@ const workflowsRoutes = require('../routes/workflows');
const dependenciesRoutes = require('../routes/dependencies');
const securityRoutes = require('../routes/security');
const diskSettingsRoutes = require('../routes/disk-settings');
+const aiIntentRoutes = require('../routes/ai-intent');
const logInsightsRoutes = require('../routes/log-insights');
const billingRoutes = require('../routes/billing');
const DependencyManager = require('./managers/dependency-manager');
@@ -759,6 +760,7 @@ async function createApp() {
// Log Insights โ plain English activity summary + safe log disposal
apiRouter.use('/disk-settings', diskSettingsRoutes);
+ apiRouter.use(aiIntentRoutes({ asyncHandler: ctx.asyncHandler }));
apiRouter.use(logInsightsRoutes({
asyncHandler: ctx.asyncHandler,
ok: ctx.ok,
diff --git a/dashcaddy-api/src/utilities/i18n.js b/dashcaddy-api/src/utilities/i18n.js
index 2390f6c..ad73096 100644
--- a/dashcaddy-api/src/utilities/i18n.js
+++ b/dashcaddy-api/src/utilities/i18n.js
@@ -483,7 +483,7 @@ const DEFAULT_LANGUAGE = 'en';
// Language metadata for UI dropdowns
const LANGUAGE_META = {
- en: { name: 'English', flag: '๐ฌ๐ง', rtl: false },
+ en: { name: 'English', flag: '๐บ๐ธ', rtl: false },
ar: { name: 'ุงูุนุฑุจูุฉ', flag: '๐ธ๐ฆ', rtl: true },
bn: { name: 'เฆฌเฆพเฆเฆฒเฆพ', flag: '๐ง๐ฉ', rtl: false },
cs: { name: 'ฤeลกtina', flag: '๐จ๐ฟ', rtl: false },
diff --git a/dashcaddy-api/src/utilities/nesting-guard.js b/dashcaddy-api/src/utilities/nesting-guard.js
index 74d523c..a18f1bd 100644
--- a/dashcaddy-api/src/utilities/nesting-guard.js
+++ b/dashcaddy-api/src/utilities/nesting-guard.js
@@ -10,11 +10,11 @@
const fs = require('fs');
const path = require('path');
-const log = require('./logging');
module.exports = function nestingGuard() {
try {
- const dataDir = require('../config/paths').dataDir;
+ const paths = require('../config/paths');
+ const dataDir = paths.dataDir;
const dataDataPath = path.join(dataDir, 'data');
// If data/data exists, it's a recursive duplicate โ remove it
@@ -25,17 +25,14 @@ module.exports = function nestingGuard() {
const markerFile = path.join(dataDataPath, 'config.json');
const parentMarker = path.join(dataDir, 'config.json');
if (fs.existsSync(markerFile) && fs.existsSync(parentMarker)) {
- const size = require('child_process')
- .execSync(`du -sh '${dataDataPath}' 2>/dev/null | cut -f1`)
- .toString().trim();
- log.warn('startup', `Removing recursive data nesting: ${dataDataPath} (${size})`);
+ console.log('[nesting-guard] Removing recursive data nesting: ' + dataDataPath);
fs.rmSync(dataDataPath, { recursive: true, force: true });
- log.info('startup', 'Recursive nesting removed');
+ console.log('[nesting-guard] Recursive nesting removed');
}
}
}
} catch (e) {
// Non-fatal โ don't crash startup over cleanup
- log.warn('startup', `Nesting guard skipped: ${e.message}`);
+ console.warn('[nesting-guard] Skipped: ' + e.message);
}
};
diff --git a/status/index.html b/status/index.html
index 58a060b..2e9f31f 100644
--- a/status/index.html
+++ b/status/index.html
@@ -954,6 +954,7 @@
+
@@ -962,6 +963,8 @@
+
+