feat: Page AI Reasonix desktop session alignment, settings IA cleanup, knowledge RAG hardening

- ACP client/session manager: Reasonix desktop live session context
- Hermes tools: knowledge_rag tool manifest and skill updates
- Browser runtime: sidebar page AI permission/profile/render/session/tree modules
- Routes: hermes_client, hermes_tools, knowledge_rag, web_shell
- Scripts: reasonix ACP wrapper, LightRAG MCP, smoke tasks 159/558/559/561/562
- Skills: mnote-knowledge-rag and mnote-lightrag-bridge SKILL.md updates
This commit is contained in:
lix-2026
2026-06-13 22:20:01 +08:00
parent 2236a053c0
commit 4a7efd4a30
30 changed files with 5321 additions and 291 deletions
+298 -2
View File
@@ -2626,7 +2626,7 @@ body {
}
.mnote-main-tab {
height: 34px;
height: 36px;
max-width: 240px;
min-width: 0;
display: inline-flex;
@@ -2639,7 +2639,7 @@ body {
padding: 0 9px;
cursor: pointer;
font-size: 13px;
line-height: 1;
line-height: 20px;
}
.mnote-main-tab:hover {
@@ -2725,6 +2725,7 @@ body {
.mnote-main-tab-title {
min-width: 0;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@@ -4731,6 +4732,39 @@ html[data-mnote-page-ai-resizing="true"] {
content: "·";
}
.wolai-page-ai-runtime-strip {
display: flex;
width: 100%;
min-height: 28px;
flex-wrap: wrap;
align-items: center;
gap: 6px;
padding: 0 14px 8px;
border: 0;
background: transparent;
color: #6B6762;
cursor: pointer;
font-size: 11px;
line-height: 16px;
text-align: left;
}
.wolai-page-ai-runtime-strip:hover span {
border-color: rgba(27, 28, 28, 0.16);
background: #F1F1EF;
}
.wolai-page-ai-runtime-strip span {
max-width: 100%;
overflow: hidden;
padding: 2px 6px;
border: 1px solid rgba(27, 28, 28, 0.08);
border-radius: 6px;
background: #F8F8F7;
text-overflow: ellipsis;
white-space: nowrap;
}
.wolai-page-ai-statusvalue {
display: block;
min-width: 0;
@@ -5024,6 +5058,11 @@ html[data-mnote-page-ai-resizing="true"] {
overflow: auto;
}
.wolai-page-ai-settings-stack {
display: grid;
gap: 10px;
}
.wolai-page-ai-memory-card {
display: grid;
gap: 8px;
@@ -5396,6 +5435,228 @@ html[data-mnote-page-ai-resizing="true"] {
background: rgba(27, 28, 28, 0.12);
}
.wolai-page-ai-plan-card {
gap: 10px;
border: 1px solid rgba(14, 116, 144, 0.22);
background: #F0F9FF;
color: #0F172A;
}
.wolai-page-ai-plan-card-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 10px;
}
.wolai-page-ai-plan-card-title-wrap {
display: grid;
min-width: 0;
gap: 1px;
}
.wolai-page-ai-plan-card-kicker {
color: #0369A1;
font-size: 11px;
line-height: 16px;
font-weight: 600;
}
.wolai-page-ai-plan-card-title {
color: #0C4A6E;
font-size: 14px;
line-height: 20px;
}
.wolai-page-ai-plan-card-badge {
display: inline-flex;
flex-shrink: 0;
align-items: center;
border-radius: 999px;
padding: 2px 8px;
background: #BAE6FD;
color: #075985;
font-size: 11px;
line-height: 16px;
font-weight: 600;
}
.wolai-page-ai-plan-card-markdown {
display: grid;
gap: 6px;
color: #1E293B;
font-size: 13px;
line-height: 20px;
}
.wolai-page-ai-plan-card-markdown > * {
margin-top: 0 !important;
margin-bottom: 0 !important;
}
.wolai-page-ai-plan-card-markdown .wolai-page-ai-markdown-table-wrap {
border: 1px solid rgba(14, 116, 144, 0.16);
border-radius: 8px;
background: rgba(255, 255, 255, 0.72);
}
.wolai-page-ai-plan-step-list {
display: grid;
gap: 6px;
margin: 0;
padding: 0;
list-style: none;
}
.wolai-page-ai-plan-step-item {
display: flex;
align-items: flex-start;
gap: 8px;
min-width: 0;
padding: 8px 10px;
border: 1px solid rgba(255, 255, 255, 0.78);
border-radius: 8px;
background: rgba(255, 255, 255, 0.78);
color: #334155;
font-size: 12px;
line-height: 18px;
}
.wolai-page-ai-plan-step-item[data-status="completed"] {
border-color: rgba(16, 185, 129, 0.28);
background: rgba(236, 253, 245, 0.88);
}
.wolai-page-ai-plan-step-item[data-status="inProgress"] {
border-color: rgba(245, 158, 11, 0.28);
background: rgba(255, 251, 235, 0.9);
}
.wolai-page-ai-plan-step-status {
display: inline-flex;
width: 18px;
height: 18px;
flex: 0 0 18px;
align-items: center;
justify-content: center;
border-radius: 999px;
background: #E2E8F0;
color: #475569;
font-size: 11px;
line-height: 18px;
font-weight: 700;
}
.wolai-page-ai-plan-step-status[data-status="completed"] {
background: #BBF7D0;
color: #166534;
}
.wolai-page-ai-plan-step-status[data-status="inProgress"] {
background: #FDE68A;
color: #92400E;
}
.wolai-page-ai-plan-step-text {
min-width: 0;
overflow-wrap: anywhere;
}
.wolai-page-ai-plan-card-actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 6px;
}
.wolai-page-ai-plan-card-button {
height: 30px;
padding: 0 10px;
border: 1px solid rgba(14, 116, 144, 0.14);
border-radius: 999px;
background: rgba(255, 255, 255, 0.86);
color: #0F172A;
font-size: 12px;
font-weight: 600;
cursor: pointer;
}
.wolai-page-ai-plan-card-button--primary {
border-color: #0284C7;
background: #0284C7;
color: #FFFFFF;
}
.wolai-page-ai-plan-card-button--danger {
color: #B33A3A;
}
.wolai-page-ai-permission-card {
gap: 10px;
border: 1px solid rgba(180, 83, 9, 0.18);
background: #FFF7ED;
}
.wolai-page-ai-permission-card-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 10px;
}
.wolai-page-ai-permission-badge {
display: inline-flex;
flex-shrink: 0;
align-items: center;
border-radius: 999px;
padding: 2px 8px;
background: #FED7AA;
color: #9A3412;
font-size: 11px;
line-height: 16px;
font-weight: 600;
}
.wolai-page-ai-permission-summary {
display: grid;
gap: 6px;
}
.wolai-page-ai-permission-row {
display: grid;
grid-template-columns: 54px minmax(0, 1fr);
gap: 8px;
align-items: start;
padding: 7px 8px;
border: 1px solid rgba(180, 83, 9, 0.12);
border-radius: 8px;
background: rgba(255, 255, 255, 0.74);
}
.wolai-page-ai-permission-row span {
color: #9A3412;
font-size: 11px;
line-height: 17px;
font-weight: 600;
}
.wolai-page-ai-permission-row strong {
min-width: 0;
overflow-wrap: anywhere;
color: #1B1C1C;
font-size: 12px;
line-height: 18px;
font-weight: 600;
}
.wolai-page-ai-permission-card .wolai-page-ai-message-actions,
.wolai-page-ai-permission-dialog .wolai-page-ai-message-actions {
margin-top: 8px;
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.wolai-page-ai-markdown-table-wrap {
max-width: 100%;
overflow-x: auto;
@@ -5802,6 +6063,37 @@ button.wolai-page-ai-history-main span {
border-color: rgba(27, 28, 28, 0.32);
}
.wolai-page-ai-reasonix-controls {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
padding: 0 8px 6px;
}
.wolai-page-ai-reasonix-controls[hidden] {
display: none !important;
}
.wolai-page-ai-reasonix-control {
display: grid;
gap: 2px;
min-width: 0;
color: #8B8782;
font-size: 11px;
}
.wolai-page-ai-reasonix-control select {
width: 100%;
min-width: 0;
height: 28px;
padding: 0 8px;
border: 1px solid rgba(27, 28, 28, 0.1);
border-radius: 7px;
background: #FFF;
color: #1B1C1C;
font-size: 12px;
}
.wolai-page-ai-composer-bar {
display: flex;
min-height: 36px;
@@ -6037,6 +6329,10 @@ mod tests {
assert!(MNOTE_CSS.contains("[data-mnote-tab-badge-kind=\"code\"]"));
assert!(MNOTE_CSS.contains("[data-mnote-tab-badge-kind=\"pdf\"]"));
assert!(MNOTE_CSS.contains("[data-mnote-tab-badge-kind=\"file\"]"));
assert!(MNOTE_CSS.contains(".mnote-main-tab {\n height: 36px;"));
assert!(
MNOTE_CSS.contains(".mnote-main-tab-title {\n min-width: 0;\n line-height: 20px;")
);
assert!(MNOTE_CSS.contains("background: #e74c3c"));
}