Skip to content
Open
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
442 changes: 228 additions & 214 deletions docs/releases.md

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions payload.XXXXXX.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"repo": "RunMaestro/Maestro",
"number": 495,
"title": "Fix collapsed group spacing for empty groups",
"htmlUrl": "https://github.com/RunMaestro/Maestro/pull/495",
"head": "5002a82e9a19591e7de9323fb2876e6b90989660",
"failures": [
{
"source": "check-run",
"id": 65325337465,
"name": "test",
"status": "completed",
"conclusion": "failure",
"htmlUrl": "https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337465",
"detailsUrl": "https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337465",
"summary": "",
"notes": ".github:48776:failure Process completed with exit code 1. | src/__tests__/renderer/components/TerminalOutput.test.tsx:243:failure Error: expect(received).toBeInTheDocument()\n\nreceived value must be an HTMLElement or an SVGElement.\nReceived has type: Null\nReceived has value: null\n ❯ src/__tests__/renderer/components/TerminalOutput.test.tsx:243:33\n\n",
"completedAt": "2026-03-01T21:23:04Z"
},
{
"source": "check-run",
"id": 65325337460,
"name": "lint-and-format",
"status": "completed",
"conclusion": "failure",
"htmlUrl": "https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337460",
"detailsUrl": "https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337460",
"summary": "",
"notes": ".github:10:failure Process completed with exit code 1.",
"completedAt": "2026-03-01T21:16:29Z"
}
]
}
17 changes: 17 additions & 0 deletions prompt.XXXXXX.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
You are an autonomous coding agent fixing a GitHub pull request for Maestro.

Goal:
- Fix only what is necessary to make the failing checks pass for PR #495.
- Use the failure payload below to focus changes.
- Keep changes minimal and scoped.
- Do not add broad refactors or formatting churn.
- If no safe fix exists, do not force risky behavior and return without edits.

Context:
- PR repo: RunMaestro/Maestro
- PR number: 495
- Head branch: group-css-fix
- Head SHA: 5002a82e9a19591e7de9323fb2876e6b90989660

Failing check payload:
{"repo":"RunMaestro/Maestro","number":495,"title":"Fix collapsed group spacing for empty groups","htmlUrl":"https://github.com/RunMaestro/Maestro/pull/495","head":"5002a82e9a19591e7de9323fb2876e6b90989660","failures":[{"source":"check-run","id":65325337465,"name":"test","status":"completed","conclusion":"failure","htmlUrl":"https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337465","detailsUrl":"https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337465","summary":"","notes":".github:48776:failure Process completed with exit code 1. | src/__tests__/renderer/components/TerminalOutput.test.tsx:243:failure Error: expect(received).toBeInTheDocument()\n\nreceived value must be an HTMLElement or an SVGElement.\nReceived has type: Null\nReceived has value: null\n ❯ src/__tests__/renderer/components/TerminalOutput.test.tsx:243:33\n\n","completedAt":"2026-03-01T21:23:04Z"},{"source":"check-run","id":65325337460,"name":"lint-and-format","status":"completed","conclusion":"failure","htmlUrl":"https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337460","detailsUrl":"https://github.com/RunMaestro/Maestro/actions/runs/22552813651/job/65325337460","summary":"","notes":".github:10:failure Process completed with exit code 1.","completedAt":"2026-03-01T21:16:29Z"}]}
Comment on lines +1 to +17
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Remove generated prompt artifact from the PR scope.

This file is not part of the product fix and looks like agent/tooling output. Keeping it adds review noise and can contribute to lint/format failures (notably the very long JSON on Line 17). Please drop this file from the PR.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: The official name of this software platform is spelled with a capital “H”.
Context: ...job/65325337465","summary":"","notes":".github:48776:failure Process completed with ex...

(GITHUB)


[uncategorized] ~17-~17: The official name of this software platform is spelled with a capital “H”.
Context: ...job/65325337460","summary":"","notes":".github:10:failure Process completed with exit ...

(GITHUB)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@prompt.XXXXXX.txt` around lines 1 - 17, Delete the generated artifact file
"prompt.XXXXXX.txt" from the branch (remove it from the PR changes) so it is no
longer tracked or part of the commit set; locate the file by name in the
diff/commit and remove it (git rm / delete and commit/push) and ensure it is not
reintroduced (optionally add the filename pattern to .gitignore) so lint/format
and tests no longer fail due to this non-product file.

12 changes: 7 additions & 5 deletions src/renderer/components/FilePreview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -999,9 +999,7 @@ export const FilePreview = React.memo(
// Strip event handler attributes (e.g. onToggle) that rehype-raw may
// pass through as strings from AI-generated HTML, which React rejects.
// Fixes MAESTRO-8Q
details: ({ node: _node, onToggle: _onToggle, ...props }: any) => (
<details {...props} />
),
details: ({ node: _node, onToggle: _onToggle, ...props }: any) => <details {...props} />,
}),
[onFileClick, theme, cwd, file, showRemoteImages, sshRemoteId]
);
Expand Down Expand Up @@ -1502,13 +1500,17 @@ export const FilePreview = React.memo(
} else {
// Fallback: copy the data URL if image copy fails
const fallbackOk = await safeClipboardWrite(file.content);
setCopyNotificationMessage(fallbackOk ? 'Image URL Copied to Clipboard' : 'Failed to Copy Image');
setCopyNotificationMessage(
fallbackOk ? 'Image URL Copied to Clipboard' : 'Failed to Copy Image'
);
}
} catch (err) {
captureException(err);
// Fallback: copy the data URL if fetch/blob fails
const fallbackOk = await safeClipboardWrite(file.content);
setCopyNotificationMessage(fallbackOk ? 'Image URL Copied to Clipboard' : 'Failed to Copy Image');
setCopyNotificationMessage(
fallbackOk ? 'Image URL Copied to Clipboard' : 'Failed to Copy Image'
);
}
} else {
// For text files, copy the content
Expand Down
17 changes: 8 additions & 9 deletions src/renderer/components/SessionList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2539,6 +2539,7 @@ function SessionListInner(props: SessionListProps) {
{/* GROUPS */}
{sortedGroups.map((group) => {
const groupSessions = sortedGroupSessionsById.get(group.id) || [];
const groupCollapsedPills = groupSessions.filter((session) => !session.parentSessionId);
return (
<div key={group.id} className="mb-1">
<div
Expand Down Expand Up @@ -2622,21 +2623,19 @@ function SessionListInner(props: SessionListProps) {
})
)}
</div>
) : (
) : groupCollapsedPills.length > 0 ? (
/* Collapsed Group Palette - uses subdivided pills for worktrees */
<div
className="ml-8 mr-3 mt-1 mb-2 flex gap-1 h-1.5 cursor-pointer"
onClick={() => toggleGroup(group.id)}
>
{groupSessions
.filter((s) => !s.parentSessionId)
.map((s) =>
renderCollapsedPill(s, `group-collapsed-${group.id}`, () =>
toggleGroup(group.id)
)
)}
{groupCollapsedPills.map((s) =>
renderCollapsedPill(s, `group-collapsed-${group.id}`, () =>
toggleGroup(group.id)
)
)}
</div>
)}
) : null}
</div>
);
})}
Expand Down
5 changes: 1 addition & 4 deletions src/renderer/hooks/batch/useBatchProcessor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1164,10 +1164,7 @@ export function useBatchProcessor({
timeSpent: timeTracking.getElapsedTime(sessionId),
})
.catch((err: unknown) => {
console.warn(
'[BatchProcessor] Failed to update Symphony progress:',
err
);
console.warn('[BatchProcessor] Failed to update Symphony progress:', err);
});
}

Expand Down