Integrate master agent runtime orchestration updates

This commit is contained in:
kris
2026-04-16 04:41:46 +08:00
parent e0c0ea1814
commit 39be49630f
81 changed files with 9283 additions and 448 deletions

View File

@@ -39,6 +39,81 @@ test("ProjectDetailActivity keeps a rendered project snapshot for append-only re
/private boolean trySkipUnchangedRealtimeMessagesPatch\(JSONObject projectMessagesPayload\)/,
"expected chat page to expose a duplicate-payload fast path",
);
assert.match(
source,
/private boolean hasMatchingExecutionWarnings\(JSONObject currentPayload,\s*JSONObject nextPayload\)/,
"expected chat page to compare executionWarnings separately from the message list",
);
assert.match(
source,
/private boolean hasMatchingConversationTasks\(JSONObject currentPayload,\s*JSONObject nextPayload\)/,
"expected chat page to compare conversationTasks separately from the message list",
);
assert.match(
source,
/if \(!hasMatchingExecutionWarnings\(currentRenderedProjectPayload,\s*projectMessagesPayload\)\) \{\s*return false;\s*\}/,
"expected append-only realtime patches to fall back when warning payloads changed",
);
assert.match(
source,
/if \(!hasMatchingConversationTasks\(currentRenderedProjectPayload,\s*projectMessagesPayload\)\) \{\s*return false;\s*\}/,
"expected append-only realtime patches to fall back when task payloads changed",
);
assert.match(
source,
/JSONObject conversationTask = findConversationTask\(currentRenderedProjectPayload,\s*messageId\);/,
"expected each message view to look up a task summary by request message id",
);
assert.match(
source,
/if \(tryPatchRealtimeExecutionWarnings\(projectMessagesPayload\)\) \{\s*return true;\s*\}/,
"expected chat page to patch warning-only realtime changes before falling back to full rerender",
);
assert.match(
source,
/private boolean tryPatchRealtimeExecutionWarnings\(JSONObject projectMessagesPayload\)/,
"expected chat page to expose a focused warning patch helper",
);
assert.match(
source,
/replaceMessageViewById\(messageId,\s*buildMessageView\(message\)\);/,
"expected warning-only patches to rerender only the affected message view",
);
assert.match(
source,
/private void replaceMessageViewById\(String messageId,\s*View nextMessageView\)/,
"expected chat page to expose a helper for targeted message view replacement",
);
assert.match(
source,
/wrapper\.addView\(statusRow\);/,
"expected each message bubble to append a compact status row",
);
assert.match(
source,
/List<JSONObject> messageWarnings = buildMessageWarnings\(currentRenderedProjectPayload,\s*messageId\);/,
"expected message views to gather grouped warnings for the status row",
);
assert.match(
source,
/String currentFingerprint = buildStatusFingerprint\(messageId, currentRenderedProjectPayload\);/,
"expected realtime patches to compute the current status fingerprint before replacing a message view",
);
assert.match(
source,
/String nextFingerprint = buildStatusFingerprint\(messageId, projectMessagesPayload\);/,
"expected realtime patches to compute a fingerprint before replacing a message view",
);
assert.match(
source,
/if \(!TextUtils\.equals\(currentFingerprint,\s*nextFingerprint\)\) \{/,
"expected realtime warning patches to branch on status fingerprint changes before replacing views",
);
assert.match(
source,
/if \(hasMatchingExecutionWarnings\(currentRenderedProjectPayload,\s*projectMessagesPayload\)\s*&&\s*hasMatchingConversationTasks\(currentRenderedProjectPayload,\s*projectMessagesPayload\)\) \{\s*return false;\s*\}/,
"expected status-only patch path to stay idle only when both warnings and task payloads are unchanged",
);
});
test("ProjectDetailActivity suppresses intermediate layouts while rebuilding or appending chat content", async () => {