feat: advance local-first conflict and search indexing
- 补齐本地 markdown 冲突处理与合并写回路径\n- 增加本地搜索索引路由、刷新与 browser smoke\n- 同步更新 current-priority checklist 的阶段进度
This commit is contained in:
@@ -3806,6 +3806,8 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
headers: { 'content-type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
workspaceId: resolveWorkspaceId(document.body),
|
||||
sourceKind: currentSourceKind() || null,
|
||||
rootUri: currentRootUri() || null,
|
||||
documentId: currentDocumentId() || null,
|
||||
query: query,
|
||||
limit: 30,
|
||||
@@ -3831,10 +3833,12 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
var title = searchText(item.title || item.name || item.documentTitle || '无标题');
|
||||
var snippet = searchText(item.snippet || (Array.isArray(item.evidence) && item.evidence[0] && item.evidence[0].snippet) || '');
|
||||
var path = searchText(item.path || item.parentTitle || item.workspaceName || currentWorkspaceName());
|
||||
return '<button type="button" class="wolai-search-result-row" data-testid="wolai-search-result-row" data-search-result-owner="rust-kernel" data-document-id="' + escapeHtml(item.documentId || item.nodeId || item.id || '') + '">' +
|
||||
var resourceType = searchText(item.resourceType || item.resourceKind || 'page');
|
||||
return '<button type="button" class="wolai-search-result-row" data-testid="wolai-search-result-row" data-search-result-owner="rust-kernel" data-document-id="' + escapeHtml(item.documentId || item.nodeId || item.id || '') + '" data-resource-type="' + escapeHtml(resourceType) + '">' +
|
||||
'<span class="material-symbols-outlined wolai-search-result-icon" data-icon="article" aria-hidden="true"></span>' +
|
||||
'<span class="wolai-search-result-main"><span class="wolai-search-result-title">' + highlightSearchTitle(title, query) + '</span>' +
|
||||
'<span class="wolai-search-result-snippet">' + (snippet ? highlightedHtml(snippet) : escapeHtml(path)) + '</span></span>' +
|
||||
'<span class="wolai-search-result-snippet">' + (snippet ? highlightedHtml(snippet) : escapeHtml(path)) + '</span>' +
|
||||
'<span class="wolai-search-result-path"><span>' + escapeHtml(path) + '</span><span class="wolai-search-result-type">' + escapeHtml(resourceType) + '</span></span></span>' +
|
||||
'</button>';
|
||||
}).join('');
|
||||
} catch (error) {
|
||||
@@ -6407,6 +6411,27 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
traceId: runTraceId,
|
||||
auditId: String(agentAudit.eventId || '')
|
||||
});
|
||||
try {
|
||||
var currentId = currentDocumentId();
|
||||
var currentPath = String(currentId || '').replace(/^local-md:/, '').replace(/~2F/g, '/');
|
||||
var touchesCurrent = changedFiles.some(function(file) {
|
||||
var path = String(file && (file.documentId || file.path || file.filePath || '') || '');
|
||||
return path === currentId || (currentPath && path.indexOf(currentPath) >= 0);
|
||||
});
|
||||
if (touchesCurrent) {
|
||||
window.dispatchEvent(new CustomEvent('mnote:page-ai-tool-write-completed', {
|
||||
detail: {
|
||||
toolName: 'agent.changed_files',
|
||||
normalizedToolName: 'agent.changed_files',
|
||||
documentId: currentId,
|
||||
workspaceId: resolveWorkspaceId(document.body),
|
||||
runId: runId,
|
||||
traceId: runTraceId,
|
||||
toolCallId: runId + ':agent.changed_files'
|
||||
}
|
||||
}));
|
||||
}
|
||||
} catch (_) {}
|
||||
}
|
||||
} catch (_) {}
|
||||
pageAiSetRunStatus('completed', runId);
|
||||
|
||||
@@ -1190,6 +1190,9 @@ a:hover {
|
||||
.wolai-search-result-title{color:#2F2D29;font-size:14px;line-height:1.35;word-break:break-word}
|
||||
.wolai-search-result-title mark,.wolai-search-result-snippet mark{padding:0 1px;border-radius:2px;background:#FFE9E6;color:#D83A32}
|
||||
.wolai-search-result-snippet,.wolai-search-empty{color:#8B8780;font-size:12px;line-height:1.35}
|
||||
.wolai-search-result-path{display:flex;align-items:center;gap:8px;color:#A09B93;font-size:11px;line-height:1.3;min-width:0}
|
||||
.wolai-search-result-path span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.wolai-search-result-type{flex:0 0 auto;padding:1px 5px;border-radius:4px;background:rgba(55,53,47,.06);color:#6F6A63;text-transform:uppercase;font-size:10px;letter-spacing:0}
|
||||
.wolai-search-empty,.wolai-search-recent{padding:28px 12px 32px;text-align:center;color:#8B8780;font-size:12px;line-height:1.35}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
@@ -2544,6 +2547,7 @@ body {
|
||||
}
|
||||
|
||||
.mnote-conflict-diff-panel pre,
|
||||
.mnote-conflict-merge-box textarea,
|
||||
.mnote-conflict-diff-status {
|
||||
min-height: 96px;
|
||||
max-height: 260px;
|
||||
@@ -2558,6 +2562,16 @@ body {
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.mnote-conflict-merge-box {
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
|
||||
.mnote-conflict-merge-box textarea {
|
||||
width: 100%;
|
||||
min-height: 132px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.mnote-conflict-diff-panel {
|
||||
grid-template-columns: 1fr;
|
||||
|
||||
Reference in New Issue
Block a user