mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-03-09 16:07:49 +00:00
Merge branch 'refactor/shared-and-tasks-components' of https://github.com/siteboon/claudecodeui into refactor/shared-and-tasks-components
This commit is contained in:
@@ -1490,6 +1490,23 @@ async function getCodexSessions(projectPath, options = {}) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isVisibleCodexUserMessage(payload) {
|
||||||
|
if (!payload || payload.type !== 'user_message') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Codex logs internal context (environment, instructions) as non-plain user_message kinds.
|
||||||
|
if (payload.kind && payload.kind !== 'plain') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof payload.message !== 'string' || payload.message.trim().length === 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Parse a Codex session JSONL file to extract metadata
|
// Parse a Codex session JSONL file to extract metadata
|
||||||
async function parseCodexSessionFile(filePath) {
|
async function parseCodexSessionFile(filePath) {
|
||||||
try {
|
try {
|
||||||
@@ -1525,8 +1542,8 @@ async function parseCodexSessionFile(filePath) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count messages and extract user messages for summary
|
// Count visible user messages and extract summary from the latest plain user input.
|
||||||
if (entry.type === 'event_msg' && entry.payload?.type === 'user_message') {
|
if (entry.type === 'event_msg' && isVisibleCodexUserMessage(entry.payload)) {
|
||||||
messageCount++;
|
messageCount++;
|
||||||
if (entry.payload.message) {
|
if (entry.payload.message) {
|
||||||
lastUserMessage = entry.payload.message;
|
lastUserMessage = entry.payload.message;
|
||||||
@@ -1634,24 +1651,35 @@ async function getCodexSessionMessages(sessionId, limit = null, offset = 0) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract messages from response_item
|
// Use event_msg.user_message for user-visible inputs.
|
||||||
if (entry.type === 'response_item' && entry.payload?.type === 'message') {
|
if (entry.type === 'event_msg' && isVisibleCodexUserMessage(entry.payload)) {
|
||||||
const content = entry.payload.content;
|
messages.push({
|
||||||
const role = entry.payload.role || 'assistant';
|
type: 'user',
|
||||||
const textContent = extractText(content);
|
timestamp: entry.timestamp,
|
||||||
|
message: {
|
||||||
|
role: 'user',
|
||||||
|
content: entry.payload.message
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Skip system context messages (environment_context)
|
// response_item.message may include internal prompts for non-assistant roles.
|
||||||
if (textContent?.includes('<environment_context>')) {
|
// Keep only assistant output from response_item.
|
||||||
continue;
|
if (
|
||||||
}
|
entry.type === 'response_item' &&
|
||||||
|
entry.payload?.type === 'message' &&
|
||||||
|
entry.payload.role === 'assistant'
|
||||||
|
) {
|
||||||
|
const content = entry.payload.content;
|
||||||
|
const textContent = extractText(content);
|
||||||
|
|
||||||
// Only add if there's actual content
|
// Only add if there's actual content
|
||||||
if (textContent?.trim()) {
|
if (textContent?.trim()) {
|
||||||
messages.push({
|
messages.push({
|
||||||
type: role === 'user' ? 'user' : 'assistant',
|
type: 'assistant',
|
||||||
timestamp: entry.timestamp,
|
timestamp: entry.timestamp,
|
||||||
message: {
|
message: {
|
||||||
role: role,
|
role: 'assistant',
|
||||||
content: textContent
|
content: textContent
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ const useWebSocketProviderState = (): WebSocketContextType => {
|
|||||||
try {
|
try {
|
||||||
const data = JSON.parse(event.data);
|
const data = JSON.parse(event.data);
|
||||||
setLatestMessage(data);
|
setLatestMessage(data);
|
||||||
console.log('--->Received WebSocket message:', data);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error parsing WebSocket message:', error);
|
console.error('Error parsing WebSocket message:', error);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user