You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maka.apache.org by "liuxiaocs7 (via GitHub)" <gi...@apache.org> on 2026/08/24 03:36:40 UTC

[PR] fix(desktop): snapshot linked children for side conversations [maka]

liuxiaocs7 opened a new pull request, #3669:
URL: https://github.com/apache/maka/pull/3669

   ## Summary
   
   - carry an explicit Side Conversation intent from the renderer through Desktop IPC and the Runtime Host protocol
   - snapshot terminal linked-child results without retaining child-session ownership or control identifiers
   - copy and rewrite referenced artifacts, drop child task-ledger ownership, and preserve ordinary branch/revision safety rules
   - surface structured `session_busy` and `operation_unavailable` outcomes, retrying busy sources from the latest settled turn
   
   Closes #3654
   
   ## Verification
   
   - built `@maka/core`, `storage`, `runtime`, and `runtime-host`
   - typechecked core, storage, runtime, runtime-host, and Desktop targets
   - ran Biome checks across all changed files
   - passed targeted conversation-copy, graph-reference, protocol, artifact, task-ledger, renderer retry/cleanup/disposal, Desktop IPC, and two-client UDS integration tests
   - rebased onto current `origin/main` and ran `git diff --check origin/main...HEAD`
   
   ## AI use
   
   Select exactly one:
   
   - [ ] No generative tool made a substantive contribution
   - [x] Generative tooling made a substantive contribution
   
   Tool(s) and scope: Codex contributed implementation, tests, verification, and review; Claude performed an additional review of the completed change.
   
   ## Checklist
   
   - [x] Tests cover the change and fail without it
   - [x] Lint, format, typecheck and the affected suites pass locally
   
   Does this PR entail a change in behavior?
   
   - [x] Yes — described under Summary above
   - [ ] No
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "ARE404 (via GitHub)" <gi...@apache.org>.
ARE404 commented on code in PR #3669:
URL: https://github.com/apache/maka/pull/3669#discussion_r3840960227


##########
apps/desktop/src/renderer/features/workbar/tools/side-chat/use-quote-companion.ts:
##########
@@ -298,9 +299,19 @@ export function useQuoteCompanion(input: UseQuoteCompanionInput): UseQuoteCompan
       })
         .then((result) => {
           if (result.status === 'ready' && mountedRef.current) {
+            setForkRetryPending(false);
+            setError(null);
             commitFork(result.session);
           } else if (result.status === 'error' && mountedRef.current) {
-            setError(copyRef.current.errors.forkSetupFailed);
+            setForkRetryPending(result.code === 'fork_source_busy');

Review Comment:
   **[P3] Add the CONTRIBUTING-required before/after UI evidence.** This branch introduces user-visible busy/unsupported banners, automatic retry state, and clearing of a stale banner on success (`:300-362`), while the PR body contains no screenshot or recording. The repository standard says UI changes must include before/after screenshots or a recording; the story/test evidence proves behavior but does not show reviewers the rendered states.



##########
packages/runtime-host/src/protocol/session-revision.ts:
##########
@@ -40,6 +46,7 @@ export interface SessionConversationCopyInput {
   readonly targetSessionId: string;
   readonly sourceTurnId: string;
   readonly expectedSourceRevision: number;
+  readonly intent?: 'side_conversation';

Review Comment:
   **[P3] Give copy purpose one discriminated domain representation.** The same concept is currently `sideConversation: true` in Renderer ports, optional `intent` here and in durable/cleanup records, `ConversationCopySemanticKind` in Host, and `mode:side_conversation` as a label. Host then reconstructs a third kind and repeats `kind === 'side_conversation'` through validation, artifact policy, ledger policy, labels, and fingerprinting. A shared `branch | revision | side_conversation` copy mode (with a legacy decode adapter if stored compatibility requires it) would make the interface truthful and centralize the derived label/policy; roughly 20 conversion/comparison branches across six production files become deletable. This is design debt, not a correctness blocker.



##########
packages/runtime/src/conversation-copy.ts:
##########
@@ -87,6 +87,11 @@ export type ConversationCopyArtifactReferenceMap =
       readonly relativePaths: ReadonlyMap<string, string>;
       readonly linkedChildren:
         | { readonly mode: 'reject' }
+        | {
+            readonly mode: 'snapshot';
+            readonly archivedResults: ReadonlyMap<string, string>;
+            readonly artifactIds: ReadonlyMap<string, string>;

Review Comment:
   **[P3] Delete the nested `artifactIds` map.** In exact mode the outer object already carries the source→target artifact map at `:86`; Host passes that exact same `artifactCopy.artifactIds` value both there and here. `rewriteSnapshotArtifactIds` can read `references.artifactIds` directly once it has established `linkedChildren.mode === 'snapshot'`. Removing this field eliminates a duplicate representation and prevents the two maps from ever drifting.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "liuxiaocs7 (via GitHub)" <gi...@apache.org>.
liuxiaocs7 commented on PR #3669:
URL: https://github.com/apache/maka/pull/3669#issuecomment-5392664711

   Fixed the retry flicker in `af3b5bc92`. The 2-second busy retry loop no longer re-enters the foreground `preparing` state, so the panel keeps the actionable busy banner and composer stable while retrying in the background. The initial creation still shows the preparing state, and a successful retry clears the banner. Added a regression assertion that holds a retry in flight and verifies `preparing=false`; focused Desktop tests pass.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "liuxiaocs7 (via GitHub)" <gi...@apache.org>.
liuxiaocs7 commented on code in PR #3669:
URL: https://github.com/apache/maka/pull/3669#discussion_r3841745544


##########
apps/desktop/src/renderer/features/workbar/tools/side-chat/use-quote-companion.ts:
##########
@@ -298,9 +299,19 @@ export function useQuoteCompanion(input: UseQuoteCompanionInput): UseQuoteCompan
       })
         .then((result) => {
           if (result.status === 'ready' && mountedRef.current) {
+            setForkRetryPending(false);
+            setError(null);
             commitFork(result.session);
           } else if (result.status === 'error' && mountedRef.current) {
-            setError(copyRef.current.errors.forkSetupFailed);
+            setForkRetryPending(result.code === 'fork_source_busy');

Review Comment:
   The existing UI failure screenshot is already attached to the linked issue #3654: https://github.com/apache/maka/issues/3654. Per the author direction, we are keeping that evidence there rather than duplicating it in this PR. No additional code change is needed for this thread.



##########
packages/runtime-host/src/protocol/session-revision.ts:
##########
@@ -40,6 +46,7 @@ export interface SessionConversationCopyInput {
   readonly targetSessionId: string;
   readonly sourceTurnId: string;
   readonly expectedSourceRevision: number;
+  readonly intent?: 'side_conversation';

Review Comment:
   Agreed that a single discriminated copy-purpose representation would be a useful cleanup. It spans Renderer, Desktop IPC, Host protocol, durable cleanup records, and compatibility decoding, so I am leaving this non-blocking P3 out of the focused bug-fix PR rather than expanding its migration surface. The current representation remains strictly decoded and included in the idempotency fingerprint.



##########
packages/runtime/src/conversation-copy.ts:
##########
@@ -87,6 +87,11 @@ export type ConversationCopyArtifactReferenceMap =
       readonly relativePaths: ReadonlyMap<string, string>;
       readonly linkedChildren:
         | { readonly mode: 'reject' }
+        | {
+            readonly mode: 'snapshot';
+            readonly archivedResults: ReadonlyMap<string, string>;
+            readonly artifactIds: ReadonlyMap<string, string>;

Review Comment:
   Addressed in `a21b59922`. Snapshot mode no longer carries a nested `artifactIds` alias; `rewriteSnapshotArtifactIds` now reads the outer exact `references.artifactIds` map after checking the snapshot discriminant, and the focused tests were updated.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "liuxiaocs7 (via GitHub)" <gi...@apache.org>.
liuxiaocs7 commented on code in PR #3669:
URL: https://github.com/apache/maka/pull/3669#discussion_r3842204472


##########
packages/runtime/src/conversation-copy.ts:
##########
@@ -1124,12 +1146,21 @@ function rewriteToolResultContent(
     };
   }
   if (content.kind === 'json' && isArchivedToolResultPlaceholder(content.value)) {
+    const snapshot = rewriteArchivedSnapshot(content.value, references);
+    if (snapshot) return snapshot;
     return {
       ...content,
       value: rewriteArchivedToolResult(content.value, references),
     };
   }
   if (content.kind === 'subagent') {
+    if (linkedChildrenAreSnapshots(references)) {
+      const { childSessionId: _childSessionId, runId: _runId, ...snapshot } = content;

Review Comment:
   已在 `6551f9b8f` 修复。snapshot 重写现在按 `childSessionId` 区分:真正的 linked child 才会剥离 child/run/resume identity;没有 `childSessionId` 的 source-owned `subagent` / `agent_swarm` 继续通过现有 run/artifact 映射重写。新增了两条 side-mode 回归测试,覆盖 `runId`、`resumedFromRunId` 和 artifact 映射;`conversation-copy` 17/17、Runtime typecheck、Biome 与 `git diff --check` 均通过。



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "liuxiaocs7 (via GitHub)" <gi...@apache.org>.
liuxiaocs7 commented on code in PR #3669:
URL: https://github.com/apache/maka/pull/3669#discussion_r3841745544


##########
apps/desktop/src/renderer/features/workbar/tools/side-chat/use-quote-companion.ts:
##########
@@ -298,9 +299,19 @@ export function useQuoteCompanion(input: UseQuoteCompanionInput): UseQuoteCompan
       })
         .then((result) => {
           if (result.status === 'ready' && mountedRef.current) {
+            setForkRetryPending(false);
+            setError(null);
             commitFork(result.session);
           } else if (result.status === 'error' && mountedRef.current) {
-            setError(copyRef.current.errors.forkSetupFailed);
+            setForkRetryPending(result.code === 'fork_source_busy');

Review Comment:
   The existing UI failure screenshot is already attached to the linked issue #3654: https://github.com/apache/maka/issues/3654. Per the author direction, we are keeping that evidence there rather than duplicating it in this PR. No additional code change is needed for this thread.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on PR #3669:
URL: https://github.com/apache/maka/pull/3669#issuecomment-5395188852

   LGTM. `test` is green on the current head, and `main` is green again now that the ASF header gap is fixed, so the merge result is readable. The compatibility epoch here is 48 against 47 on `main`, with the matching `> 47` assertion — no conflict. Merging.
   
   <details>
   <summary>简体中文</summary>
   
   已确认。当前 head 上 `test` 通过;ASF header 缺失修复后 `main` 也恢复绿色,因此合并结果是可读的。这里的兼容性 epoch 是 48,`main` 上是 47,断言写法 `> 47` 与之匹配,没有冲突。合并。
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on code in PR #3669:
URL: https://github.com/apache/maka/pull/3669#discussion_r3842111004


##########
packages/runtime/src/conversation-copy.ts:
##########
@@ -1124,12 +1146,21 @@ function rewriteToolResultContent(
     };
   }
   if (content.kind === 'json' && isArchivedToolResultPlaceholder(content.value)) {
+    const snapshot = rewriteArchivedSnapshot(content.value, references);
+    if (snapshot) return snapshot;
     return {
       ...content,
       value: rewriteArchivedToolResult(content.value, references),
     };
   }
   if (content.kind === 'subagent') {
+    if (linkedChildrenAreSnapshots(references)) {
+      const { childSessionId: _childSessionId, runId: _runId, ...snapshot } = content;

Review Comment:
   [P3] The snapshot branch strips `runId` unconditionally based on `linkedChildrenAreSnapshots(references)`, but that condition asks whether the *linked children* are snapshots — not whether *this item* has a child session at all.
   
   An item with no `childSessionId` but a source-owned `runId` is a shape this same file explicitly recognises: `archivedToolResultContainsConversationOwnedReferences` at `:520-535` treats `!item.childSessionId && (item.runId !== undefined || item.resumedFromRunId !== undefined || ...)` as a conversation-owned reference. The `agent_swarm` branch at `:1189-1197` has the same problem and additionally drops `resumedFromRunId`.
   
   Consequence: a side snapshot clones fresh AgentRun/Artifact mappings for the source ledger, but these two branches throw away the source's own run identity. The side transcript keeps the summary and artifacts while losing run/resume provenance, and the CLI agent-swarm view loses its run marker. Execution and security are unaffected, and linked-child navigation still works, hence P3.
   
   Suggested direction: branch on `childSessionId`. Only a real linked child should lose child/run/resume identity and use the snapshot artifact map; a source-owned item without `childSessionId` should go through the existing owned-id rewrite (`rewriteLinkedRunId(..., undefined, ...)` plus the owned artifact map). For coverage, `packages/runtime/src/__tests__/conversation-copy.test.ts:549-562` already has a fixture with no `childSessionId` carrying `runId`/`resumedFromRunId` — a side-mode case could reuse it.
   
   <details>
   <summary>中文</summary>
   
   [P3] snapshot 分支按 `linkedChildrenAreSnapshots(references)` 一刀切地删掉 `runId`,但这个条件判断的是"链接的子会话是不是快照",而不是"这个 item 有没有子会话"。
   
   没有 `childSessionId` 但带 source-owned `runId` 的 item 是这个文件自己承认的合法形态:`:520-535` 的 `archivedToolResultContainsConversationOwnedReferences` 明确把 `!item.childSessionId && (item.runId !== undefined || item.resumedFromRunId !== undefined || ...)` 判为 conversation-owned reference。`agent_swarm` 分支(`:1189-1197`)同理,还多删了一个 `resumedFromRunId`。
   
   后果:side snapshot 会为 source ledger 克隆新的 AgentRun/Artifact 映射,但这两处直接把 source 自有的 run identity 丢掉,侧会话 transcript 保留了 summary 和 artifact,却没有了 run/resume 来源,CLI 的 agent-swarm 视图也会少掉 run 标记。这不影响执行,也不影响安全,链接子会话的导航同样不受影响,所以是 P3。
   
   建议改成按 `childSessionId` 分支:真正的 linked child 才去掉 child/run/resume identity 并用 snapshot artifact 映射;没有 `childSessionId` 的 source-owned item 走已有的自有 ID 重写路径。测试可以参考 `packages/runtime/src/__tests__/conversation-copy.test.ts:549-562` 那个 fixture 补一个 side-mode 用例。
   
   </details>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han merged PR #3669:
URL: https://github.com/apache/maka/pull/3669


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on code in PR #3669:
URL: https://github.com/apache/maka/pull/3669#discussion_r3842111004


##########
packages/runtime/src/conversation-copy.ts:
##########
@@ -1124,12 +1146,21 @@ function rewriteToolResultContent(
     };
   }
   if (content.kind === 'json' && isArchivedToolResultPlaceholder(content.value)) {
+    const snapshot = rewriteArchivedSnapshot(content.value, references);
+    if (snapshot) return snapshot;
     return {
       ...content,
       value: rewriteArchivedToolResult(content.value, references),
     };
   }
   if (content.kind === 'subagent') {
+    if (linkedChildrenAreSnapshots(references)) {
+      const { childSessionId: _childSessionId, runId: _runId, ...snapshot } = content;

Review Comment:
   [P3] snapshot 分支按 `linkedChildrenAreSnapshots(references)` 一刀切地删掉 `runId`,但这个条件判断的是"链接的子会话是不是快照",而不是"这个 item 有没有子会话"。
   
   没有 `childSessionId` 但带 source-owned `runId` 的 item 是这个文件自己承认的合法形态:`:520-535` 的 `archivedToolResultContainsConversationOwnedReferences` 明确把 `!item.childSessionId && (item.runId !== undefined || item.resumedFromRunId !== undefined || ...)` 判为 conversation-owned reference。`agent_swarm` 分支(`:1189-1197`)同理,还多删了一个 `resumedFromRunId`。
   
   后果:side snapshot 会为 source ledger 克隆新的 AgentRun/Artifact 映射,但这两处直接把 source 自有的 run identity 丢掉,侧会话 transcript 保留了 summary 和 artifact,却没有了 run/resume 来源,CLI 的 agent-swarm 视图也会少掉 run 标记。这不影响执行,也不影响安全,链接子会话的导航同样不受影响,所以是 P3。
   
   建议改成按 `childSessionId` 分支:真正的 linked child 才去掉 child/run/resume identity 并用 snapshot artifact 映射;没有 `childSessionId` 的 source-owned item 走已有的自有 ID 重写路径(`rewriteLinkedRunId(..., undefined, ...)` 加 owned artifact 映射)。测试可以参考 `packages/runtime/src/__tests__/conversation-copy.test.ts:549-562` 那个无 `childSessionId`、带 `runId`/`resumedFromRunId` 的 fixture,补一个 side-mode 的用例。



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "Astro-Han (via GitHub)" <gi...@apache.org>.
Astro-Han commented on code in PR #3669:
URL: https://github.com/apache/maka/pull/3669#discussion_r3842111004


##########
packages/runtime/src/conversation-copy.ts:
##########
@@ -1124,12 +1146,21 @@ function rewriteToolResultContent(
     };
   }
   if (content.kind === 'json' && isArchivedToolResultPlaceholder(content.value)) {
+    const snapshot = rewriteArchivedSnapshot(content.value, references);
+    if (snapshot) return snapshot;
     return {
       ...content,
       value: rewriteArchivedToolResult(content.value, references),
     };
   }
   if (content.kind === 'subagent') {
+    if (linkedChildrenAreSnapshots(references)) {
+      const { childSessionId: _childSessionId, runId: _runId, ...snapshot } = content;

Review Comment:
   [P3] The snapshot branch strips `runId` unconditionally based on `linkedChildrenAreSnapshots(references)`, but that condition asks whether the *linked children* are snapshots — not whether *this item* has a child session at all.
   
   An item with no `childSessionId` but a source-owned `runId` is a shape this same file explicitly recognises: `archivedToolResultContainsConversationOwnedReferences` at `:520-535` treats `!item.childSessionId && (item.runId !== undefined || item.resumedFromRunId !== undefined || ...)` as a conversation-owned reference. The `agent_swarm` branch at `:1189-1197` has the same problem and additionally drops `resumedFromRunId`.
   
   Consequence: a side snapshot clones fresh AgentRun/Artifact mappings for the source ledger, but these two branches throw away the source's own run identity. The side transcript keeps the summary and artifacts while losing run/resume provenance, and the CLI agent-swarm view loses its run marker. Execution and security are unaffected, and linked-child navigation still works, hence P3.
   
   Suggested direction: branch on `childSessionId`. Only a real linked child should lose child/run/resume identity and use the snapshot artifact map; a source-owned item without `childSessionId` should go through the existing owned-id rewrite (`rewriteLinkedRunId(..., undefined, ...)` plus the owned artifact map). For coverage, `packages/runtime/src/__tests__/conversation-copy.test.ts:549-562` already has a fixture with no `childSessionId` carrying `runId`/`resumedFromRunId` — a side-mode case could reuse it.
   
   <details>
   <summary>简体中文</summary>
   
   [P3] snapshot 分支按 `linkedChildrenAreSnapshots(references)` 一刀切地删掉 `runId`,但这个条件判断的是"链接的子会话是不是快照",而不是"这个 item 有没有子会话"。
   
   没有 `childSessionId` 但带 source-owned `runId` 的 item 是这个文件自己承认的合法形态:`:520-535` 的 `archivedToolResultContainsConversationOwnedReferences` 明确把 `!item.childSessionId && (item.runId !== undefined || item.resumedFromRunId !== undefined || ...)` 判为 conversation-owned reference。`agent_swarm` 分支(`:1189-1197`)同理,还多删了一个 `resumedFromRunId`。
   
   后果:side snapshot 会为 source ledger 克隆新的 AgentRun/Artifact 映射,但这两处直接把 source 自有的 run identity 丢掉,侧会话 transcript 保留了 summary 和 artifact,却没有了 run/resume 来源,CLI 的 agent-swarm 视图也会少掉 run 标记。这不影响执行,也不影响安全,链接子会话的导航同样不受影响,所以是 P3。
   
   建议改成按 `childSessionId` 分支:真正的 linked child 才去掉 child/run/resume identity 并用 snapshot artifact 映射;没有 `childSessionId` 的 source-owned item 走已有的自有 ID 重写路径。测试可以参考 `packages/runtime/src/__tests__/conversation-copy.test.ts:549-562` 那个 fixture 补一个 side-mode 用例。
   
   </details>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org


Re: [PR] fix(desktop): snapshot linked children for side conversations [maka]

Posted by "liuxiaocs7 (via GitHub)" <gi...@apache.org>.
liuxiaocs7 commented on PR #3669:
URL: https://github.com/apache/maka/pull/3669#issuecomment-5394092722

   Updated on top of current main and addressed the latest review follow-ups:
   
   - source-owned items without childSessionId now preserve and rewrite runId and resumedFromRunId; true linked-child snapshots still remove control identity
   - the busy message now covers either the main conversation or a linked task
   - persisted copy-kind mapping and fingerprint construction are consolidated
   - all six AI-authored commits now include Generated-by: Codex
   - the rebase conflict with the new main protocol change is resolved by assigning Side Conversation epoch 48 while retaining project-registration epoch 47, with a regression assertion
   
   Validation on head 5f3c31fb6:
   
   - Runtime Host: 1143/1143
   - Desktop: 1386/1386
   - focused protocol and session-revision tests: 68/68
   - root typecheck, lint, format check, Desktop/UI knip: passed
   - protocol epoch guard: 47 -> 48 passed
   - final Standards review: 0 findings
   - final Spec review: 0 findings
   
   The conditional 2-second fallback remains intentional. It starts only after session_busy, stops after success or unmount, and covers linked child or Graph completion that is not guaranteed to arrive through the source Session subscription.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@maka.apache.org
For additional commands, e-mail: commits-help@maka.apache.org