Download MD no histórico, relatórios externos e service systemd

- Botão de download .md no modal de detalhe do histórico (agente e pipeline)
- Relatórios de execução gravados também em ~/agent_reports/ (configurável via AGENT_REPORTS_DIR)
- Service systemd (user) para iniciar o orchestrator no boot com auto-restart
This commit is contained in:
Frederico Castro
2026-02-27 04:19:10 -03:00
parent 9b66a415ff
commit a2a1aa2c7a
12 changed files with 499 additions and 12 deletions

View File

@@ -2813,6 +2813,118 @@ tbody tr:hover td {
margin-top: 4px;
}
.dropzone {
border: 2px dashed var(--border-secondary);
border-radius: 10px;
padding: 20px;
text-align: center;
transition: all 0.2s;
cursor: pointer;
background: var(--bg-primary);
}
.dropzone:hover,
.dropzone.dragover {
border-color: var(--accent);
background: rgba(139, 92, 246, 0.05);
}
.dropzone-content {
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
color: var(--text-muted);
}
.dropzone-content i,
.dropzone-content svg {
width: 28px;
height: 28px;
color: var(--text-muted);
opacity: 0.6;
}
.dropzone-content p {
font-size: 13px;
margin: 0;
}
.dropzone-browse {
background: none;
border: none;
color: var(--accent);
cursor: pointer;
font-size: 13px;
text-decoration: underline;
padding: 0;
}
.dropzone-hint {
font-size: 11px;
color: var(--text-muted);
opacity: 0.7;
}
.dropzone-list {
list-style: none;
padding: 0;
margin: 8px 0 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.dropzone-list:empty {
display: none;
}
.dropzone-list + .dropzone-content {
display: none;
}
.dropzone-file {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 10px;
background: var(--bg-secondary);
border-radius: 6px;
font-size: 12px;
}
.dropzone-file-name {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text-primary);
text-align: left;
}
.dropzone-file-size {
color: var(--text-muted);
font-size: 11px;
flex-shrink: 0;
}
.dropzone-file-remove {
background: none;
border: none;
color: var(--text-muted);
cursor: pointer;
padding: 2px;
line-height: 1;
border-radius: 4px;
flex-shrink: 0;
}
.dropzone-file-remove:hover {
color: var(--error);
background: rgba(239, 68, 68, 0.1);
}
.form-actions {
display: flex;
gap: 8px;