function renderModal() { if (!ui.modal) return ""; const repository = selectedRepository() || ui.repositories.find( (repo) => repo.fullName === ui.modal.repositoryFullName, ); if (ui.modal.type === "server-password") { const server = (ui.boot?.state?.servers || []).find((item) => item.id === ui.modal.serverId); if (!server) return `
No configuration changes are proposed.
${discovery ? `${escapeHtml(discovery.runtime?.containers || 0)} container(s), ${escapeHtml(discovery.runtime?.services || 0)} service(s) and ${escapeHtml(discovery.runtime?.ports?.length || 0)} port mapping(s) detected. Every imported value remains editable as an explicit override.` : "For a known folder, ForgeFlow can read Docker, Compose and DockerMan metadata. For uncertain matches, use Server inventory and select the actual running workload."}
${escapeHtml(rotation?.recovery || "")}
Plan ${escapeHtml(rotation?.id || "unavailable")}Containers remain untouched. Server pull changes to monitoring-only until restored.
Plan ${escapeHtml(revocation?.id || "unavailable")}${escapeHtml(ui.selectedFile)}
${escapeHtml(hunk.lines.join("\n"))}`).join("")}Resolve these files, then continue:
${escapeHtml(workload?.classification?.reason || "ForgeFlow needs an explicit decision for this workload.")}
| Time | Event | Repository | Result |
|---|---|---|---|
| ${formatDate(item.timestamp)} | ${escapeHtml(item.event)} | ${escapeHtml(item.details?.repository || "—")} | ${escapeHtml(item.details?.result || item.details?.note || "—")} |
Load the operational audit log.