Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

### Added

- #574:新增工作区级 Markdown 笔记库、跨岗位引用、会话结论沉淀与实际上下文出处;支持中文路径、全文搜索、授权图片附件、手动 Mem 双向同步、冲突副本和基于版本校验的历史恢复。

- 项目任务新增持久化人工验收:逐项核对验收标准,绑定原会话、执行和产出摘要版本;接受后任务完成,拒绝保留原因并回到待验收。验收与任务状态原子保存,过期计划和产出拒绝裁决,网络重试保留幂等记录。
- 文档支持目录树及键盘导航,会话记忆准确继续原会话;关系图默认提供员工、来源、资源与证据的逐步浏览。
- #549:按已确认设计更新收件箱审批工作台,提供请求列表、风险与岗位筛选、裁决操作、执行证据与异常详情、可追溯审计和运行时间线;断线保留只读快照,不确定的审批重试先核验权限,如实展示未观测用量和实际预算比例。
Expand Down
14 changes: 14 additions & 0 deletions apps/desktop/packaging/runtime-layout.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const DESKTOP_RUNTIME_FILES = [
"src/wsl-bootstrap.cjs",
"src/docs-ipc.cjs",
"src/drive-ipc.cjs",
"src/vault-ipc.cjs",
"src/experiments-ipc.cjs",
"src/goal-ipc.cjs",
"src/group-ipc.cjs",
Expand Down Expand Up @@ -151,6 +152,17 @@ const SERVER_RUNTIME_FILES = [
"dist/src/turns/running.js",
"dist/src/turns/store.js",
"dist/src/turns/thread-context.js",
"dist/src/vault/attachments.js",
"dist/src/vault/context.js",
"dist/src/vault/extensions.js",
"dist/src/vault/file-read.js",
"dist/src/vault/from-turn.js",
"dist/src/vault/history.js",
"dist/src/vault/receipts.js",
"dist/src/vault/routes.js",
"dist/src/vault/store.js",
"dist/src/vault/sync-plan.js",
"dist/src/vault/sync.js",
"dist/src/windows-launcher.js",
"dist/src/workbuddy-binary.js",
"dist/src/workbuddy-runtime.js",
Expand Down Expand Up @@ -199,6 +211,8 @@ const SHARED_RUNTIME_FILES = [
"dist/turn-progress.js",
"dist/turns.js",
"dist/updates.js",
"dist/vault-sync.js",
"dist/vault.js",
"dist/workflows.js",
];

Expand Down
12 changes: 12 additions & 0 deletions apps/desktop/renderer/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2266,6 +2266,14 @@ function AppInner({
}
setActiveModule("conversation");
}}
onOpenSource={(source) => {
if (!source.positionId || !source.sessionId) return;
const samePosition = selectedIdRef.current === source.positionId;
selectedSessions.current[JSON.stringify([workspacePathRef.current, source.positionId])] = source.sessionId;
selectPosition(source.positionId);
if (samePosition) { selectedSessionIdRef.current = source.sessionId; setSelectedSessionId(source.sessionId); }
setSessionFocusTurnId(source.turnId ?? null); setActiveModule("conversation");
}}
workspaceOpen={workspaceInfo?.open === true}
positions={positions}
selectedPositionId={selectedId}
Expand Down Expand Up @@ -2416,6 +2424,10 @@ function AppInner({
cancelling={turnCancelling}
focusTurnId={sessionFocusTurnId}
onOpenResource={(positionId, path) => {
if (path.startsWith("vault://notes/")) {
setResourceRequest({ positionId, path, nonce: Date.now() });
setMemorySource("docs"); setActiveModule("docs"); return;
}
if (!/^knowledge\//i.test(path) && path !== "SKILL.md") {
const workspacePath = workspacePathRef.current;
const relativePath = workspaceResourcePath(workspacePath, path);
Expand Down
5 changes: 4 additions & 1 deletion apps/desktop/renderer/src/docs/DocViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { useId, type ReactNode } from "react";
import { Tag } from "antd";
import { useT } from "@roleweave/ui";
import { Markdown, markdownHeadings } from "../markdown/Markdown";
import type { ImageResourceLoader } from "../markdown/Markdown";
import { splitFrontmatter } from "./frontmatter";

function stripExtension(filename: string): string {
Expand All @@ -21,6 +22,7 @@ export interface DocViewerProps {
editor?: ReactNode;
showEditor?: boolean;
onNavigateDoc?: (target: string, kind: "wikilink" | "relative") => void;
imageResourceLoader?: ImageResourceLoader;
}
const META_LABEL_KEYS: Record<string, string> = {
name: "docs.metaName",
Expand All @@ -37,6 +39,7 @@ export function DocViewer({
editor,
showEditor = true,
onNavigateDoc,
imageResourceLoader,
}: DocViewerProps) {
const t = useT();
const headingPrefix = `document-${useId().replaceAll(":", "")}`;
Expand Down Expand Up @@ -127,7 +130,7 @@ export function DocViewer({
)}
<div className="owb-doc-viewer__body">
{isMarkdown ? (
<Markdown content={body} headingPrefix={headingPrefix} onNavigateDoc={onNavigateDoc} />
<Markdown content={body} headingPrefix={headingPrefix} onNavigateDoc={onNavigateDoc} imageResourceLoader={imageResourceLoader} />
) : extension === "txt" ? (
<div className="owb-doc-viewer__text">{source}</div>
) : (
Expand Down
Loading
Loading