chore(align): sync Git with running container as authoritative source
One-time alignment to close drift between the running container (qihu-aiflow / image qihuaiflow:with-deps) and this Git repository. Container hotfixes previously persisted only via `docker commit` are now captured in Git so Git becomes the single source of truth. Backend: - chat_service.py: accumulated fixes incl. EigenFlux README guidance - chat_context.py / chat_media.py: URL/web-repo context injection - api/url_reader.py: NEW SSRF-safe web/README reader (Issue #725) - skills_admin.py & Skills.tsx: 14-scene capability unification - pgvector_search.py, orchestrator.py, platform_knowledge.py, market.py, admin/models.py: drift sync Frontend: - ChatPage.tsx: collapsible AI think/act block (Issue #724) - MarketPage / EvolutionDashboard / TokenDashboard styling sync Migrations: - 018_normalize_marketapp_scene.sql: fixed capability allowlist (prevents capability wipe on restart) Alignment performed 2026-07-23 16:04:25. No deletions; secrets/venv/node_modules/ caches were not touched (tracked-source-only copy).
This commit is contained in:
1 parent
d3d8d62b94
commit
4a95657030
2 files changed
+125
-2
No files matched your search
@@ -1664,3 +1664,74 @@ html.dark .ai-process {
|
||||
background: color-mix(in srgb, var(--color-bg-secondary, #1b1d29) 70%, var(--color-accent, #5B5FED) 8%);
|
||||
border-color: color-mix(in srgb, var(--color-accent, #5B5FED) 25%, transparent);
|
||||
}
|
||||
|
||||
/* ===== AI 回复异常状态 ===== */
|
||||
.ai-error-bubble {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
background: color-mix(in srgb, var(--color-error, #e74c3c) 8%, var(--color-bg-primary, #fff));
|
||||
border: 1px solid color-mix(in srgb, var(--color-error, #e74c3c) 30%, transparent);
|
||||
border-radius: 12px;
|
||||
padding: 14px 16px;
|
||||
}
|
||||
|
||||
.ai-error-icon {
|
||||
font-size: 18px;
|
||||
margin-bottom: -6px;
|
||||
}
|
||||
|
||||
.ai-error-text {
|
||||
font-size: var(--text-sm, 13px);
|
||||
color: var(--color-text-secondary, #555);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.ai-error-text p {
|
||||
margin: 0 0 4px;
|
||||
}
|
||||
|
||||
.ai-error-retry {
|
||||
align-self: flex-start;
|
||||
padding: 5px 14px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: #fff;
|
||||
background: var(--color-accent, #5B5FED);
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s, transform 0.15s;
|
||||
}
|
||||
|
||||
.ai-error-retry:hover {
|
||||
background: var(--color-accent-hover, #4A4ECC);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.ai-error-retry:active {
|
||||
transform: scale(0.97);
|
||||
}
|
||||
|
||||
/* 暗色主题 */
|
||||
[data-theme="dark"] .ai-error-bubble,
|
||||
html.dark .ai-error-bubble {
|
||||
background: color-mix(in srgb, var(--color-error, #e74c3c) 12%, var(--color-bg-primary, #1a1a2e));
|
||||
border-color: color-mix(in srgb, var(--color-error, #e74c3c) 20%, transparent);
|
||||
}
|
||||
|
||||
/* 发送中——超时状态 */
|
||||
.ai-sending-timeout {
|
||||
border-color: color-mix(in srgb, #f39c12 30%, transparent) !important;
|
||||
background: color-mix(in srgb, #f39c12 5%, var(--color-bg-primary, #fff)) !important;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .ai-sending-timeout,
|
||||
html.dark .ai-sending-timeout {
|
||||
border-color: color-mix(in srgb, #f39c12 25%, transparent) !important;
|
||||
background: color-mix(in srgb, #f39c12 8%, var(--color-bg-primary, #1a1a2e)) !important;
|
||||
}
|
||||
|
||||
.ai-cancel-btn:hover {
|
||||
background: color-mix(in srgb, #e74c3c 15%, var(--color-bg-tertiary)) !important;
|
||||
}
|
||||
Reference in new issue
Block a user