Add AI auto-check worker, share link message/link fields, and update journal/settings UI

This commit is contained in:
dev
2026-09-11 10:29:49 +03:00
parent 3850fe35e4
commit b7e798b867
20 changed files with 1403 additions and 127 deletions
+29
View File
@@ -232,6 +232,9 @@ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;b
.page-head h2{font-size:1.3rem;font-weight:600;margin:0}
.page-sub{color:var(--muted);font-size:.85rem}
.settings-stack{display:flex;flex-direction:column;gap:20px;max-width:680px}
.link-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.link-fields > .full{grid-column:1/-1}
@media(max-width:600px){.link-fields{grid-template-columns:1fr}}
.settings-stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;max-width:1200px}
.settings-stack-grid > .settings-card{max-width:none;height:100%}
.settings-stack-grid > .settings-card.wide{grid-column:1/-1}
@@ -352,3 +355,29 @@ body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;b
.ai-btn:hover{color:var(--accent);background:rgba(37,99,235,.1)}
.ai-btn:disabled{opacity:.5;cursor:not-allowed}
#aiSuggestion{font-size:.9rem;line-height:1.5}
/* --- AI auto-check --- */
.ai-badge{display:inline-block;font-size:.68rem;font-weight:600;padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:middle;background:rgba(37,99,235,.1);color:var(--accent);white-space:nowrap}
.ai-badge-done{background:rgba(22,163,74,.12);color:#16a34a}
.ai-badge-error{background:rgba(239,68,68,.12);color:#ef4444}
.ai-badge-skipped,.ai-badge-reverted{background:rgba(148,163,184,.18);color:var(--muted)}
.ai-status{margin-top:6px;font-size:.78rem;color:var(--muted)}
.ai-queue{margin-top:8px;font-size:.78rem;color:var(--muted)}
/* --- AI worker monitor --- */
.worker-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0;background:#94a3b8}
.worker-dot.on{background:#16a34a;animation:wpulse 1.6s infinite}
.worker-dot.busy{background:#f59e0b;animation:wpulse 1.2s infinite}
.worker-dot.err{background:#ef4444}
@keyframes wpulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}70%{box-shadow:0 0 0 7px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.worker-state{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600}
.worker-counts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.worker-counts .chip{background:var(--card);border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:.8rem;color:var(--text);display:inline-flex;align-items:center;gap:6px}
.worker-counts .chip b{font-weight:700}
.worker-counts .chip.pending b{color:#f59e0b}
.worker-counts .chip.done b{color:#16a34a}
.worker-counts .chip.error b{color:#ef4444}
.worker-counts .chip.skipped b{color:var(--muted)}
.worker-counts .chip.reverted b{color:var(--accent)}