Improve fleet control, Crucible ops, and multi-machine identity.
Use hostname-first agent names so the same forged binary on many machines stays distinct at scale. Add WebSocket RTT latency on the roster and Crucible, fleet delete and uninstall flows, live alert config reload, and non-blocking pool setup. Fix Crucible phantom agents after delete, posture scan targeting, and USB portability (config data_dir, LAUNCH sync).
This commit is contained in:
@@ -207,18 +207,26 @@ export default function BuilderPage() {
|
||||
const fileInputRef = useRef<HTMLInputElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
Promise.all([api.getConfig(), api.getServerInfo(), api.listBuilds().catch(() => [])])
|
||||
Promise.all([
|
||||
api.getConfig(),
|
||||
api.getServerInfo().catch(() => null),
|
||||
api.listBuilds().catch(() => []),
|
||||
])
|
||||
.then(([config, info, builds]) => {
|
||||
setCalibrateConfig(config);
|
||||
setServerInfo(info);
|
||||
setListenPort(config.port || info.port || 8989);
|
||||
const candidates = lanEndpointCandidates(info, config.port || info.port);
|
||||
const base = defaultsFromConfig(config, info, builds);
|
||||
setForm(applySmartForgeDefaults(base, { builds, endpointCandidates: candidates }));
|
||||
if (info) {
|
||||
setServerInfo(info);
|
||||
setListenPort(config.port || info.port || 8989);
|
||||
} else {
|
||||
setListenPort(config.port || 8989);
|
||||
}
|
||||
const candidates = info ? lanEndpointCandidates(info, config.port || info.port) : [];
|
||||
const base = defaultsFromConfig(config, info ?? { port: config.port || 8989, host: '', local_ips: [], suggested_url: '', dashboard_url: '', websocket_url: '' }, builds as BuildRecord[]);
|
||||
setForm(applySmartForgeDefaults(base, { builds: builds as BuildRecord[], endpointCandidates: candidates }));
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
setError('Failed to load server info — is the control server running?');
|
||||
setError('Failed to load server config — is the control server running?');
|
||||
})
|
||||
.finally(() => setLoadingDefaults(false));
|
||||
}, []);
|
||||
@@ -1096,7 +1104,6 @@ export default function BuilderPage() {
|
||||
tls={form.pool_tls}
|
||||
pass={form.pool_pass || 'x'}
|
||||
backups={form.backup_pools}
|
||||
showManualFields={!simpleMode}
|
||||
onChange={(next) => {
|
||||
updateField('pool_host', next.pool_host);
|
||||
updateField('pool_port', next.pool_port);
|
||||
|
||||
Reference in New Issue
Block a user