diff --git a/frontend/src/HealthCheckPanel.jsx b/frontend/src/HealthCheckPanel.jsx
index 05a10f1..eb7277f 100644
--- a/frontend/src/HealthCheckPanel.jsx
+++ b/frontend/src/HealthCheckPanel.jsx
@@ -7,7 +7,6 @@ import { syncWaterScenesFromDisk } from './api/water';
import { listEngines, runWslCheck } from './api/dinsarProduction';
import { getOrbitStatus, syncOrbitPools } from './api/orbit';
import LogManagementPanel from './LogManagementPanel.clean';
-import DinsarCatalogPanel from './components/DinsarCatalogPanel';
const toNumber = (value) => {
const parsed = Number(value);
@@ -39,6 +38,29 @@ const formatIntegerText = (value) => {
return Number.isFinite(parsed) ? parsed.toLocaleString() : '0';
};
+const isCatalogHealthy = (catalog) => {
+ if (!catalog || typeof catalog !== 'object') {
+ return false;
+ }
+ if (catalog.enabled === false) {
+ return true;
+ }
+ return Boolean(catalog.ok) && !catalog.needs_rebuild;
+};
+
+const formatCatalogStatusLabel = (catalog, en = false) => {
+ if (!catalog || typeof catalog !== 'object') {
+ return en ? 'Unknown' : '未知';
+ }
+ if (catalog.enabled === false) {
+ return en ? 'Disabled' : '已禁用';
+ }
+ if (catalog.needs_rebuild) {
+ return en ? 'Rebuild required' : '需要重建';
+ }
+ return catalog.catalog_status || (en ? 'Unknown' : '未知');
+};
+
const getOrbitSourcePath = (item) => item?.source || item?.source_path || '';
const hasOrbitCorruptionSignal = (item) => Boolean(
@@ -312,6 +334,9 @@ const HealthCheckPanel = ({ language = 'zh', currentUser }) => {
const formatPathText = (value) => value || (en ? 'Not configured' : '未配置');
const databaseStatus = status?.database || {};
const dinsarBridge = asObject(status?.dinsar_bridge);
+ const dinsarResultCatalog = asObject(status?.dinsar_result_catalog || status?.result_catalog);
+ const dinsarCatalogNeedsRebuild =
+ typeof dinsarResultCatalog.needs_rebuild === 'boolean' ? dinsarResultCatalog.needs_rebuild : null;
const sourceRoots = asObject(status?.source_roots);
const pairingSystem = asObject(status?.pairing_system);
const sourceRootItems = asArray(sourceRoots.items);
@@ -556,7 +581,40 @@ const HealthCheckPanel = ({ language = 'zh', currentUser }) => {
)}
-