Skip to content
Open
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
33a1e0a
[Symphony] Start contribution for #373
jeffscottward Mar 1, 2026
9a3cd5e
MAESTRO: memoize SessionListItem rendering
jeffscottward Mar 1, 2026
8f2cc4a
MAESTRO: optimize AutoRun regex and match memoization
jeffscottward Mar 1, 2026
eba4637
MAESTRO: Memoize FilePreview regex and date computations
jeffscottward Mar 1, 2026
3614781
MAESTRO: memoize SessionListItem inline styles
jeffscottward Mar 1, 2026
00dfa2d
MAESTRO: asyncify history session listing and rename flow
jeffscottward Mar 1, 2026
1656f73
MAESTRO: await async history-manager handlers
jeffscottward Mar 1, 2026
4ea02e8
MAESTRO: cache Codex parser config reads asynchronously
jeffscottward Mar 1, 2026
143b328
MAESTRO: parallelize getDefaultBranch git fallback checks
jeffscottward Mar 1, 2026
dc668ee
MAESTRO: optimize queryBySource aggregation for compound index
jeffscottward Mar 1, 2026
461d6fe
MAESTRO: Optimize session row selection prop passing
jeffscottward Mar 1, 2026
982defe
chore: checkpoint local changes before gup
jeffscottward Mar 1, 2026
1c48200
MAESTRO: memoize toast item container
jeffscottward Mar 1, 2026
d6bd0bc
perf: optimize SessionListItem style recalculation
jeffscottward Mar 1, 2026
e8f7a76
MAESTRO: memoize expensive preview parsing in FilePreview
jeffscottward Mar 1, 2026
030baa8
MAESTRO: memoize csv table regex helpers
jeffscottward Mar 1, 2026
0f94ea6
MAESTRO: memoize session list item inline styles
jeffscottward Mar 1, 2026
e79b670
MAESTRO: Memoize SessionList inline loop styles
jeffscottward Mar 1, 2026
117a782
MAESTRO: Add agent-time index for filtered query_events scans
jeffscottward Mar 1, 2026
105e097
MAESTRO: Add source-time index for stats query optimization
jeffscottward Mar 1, 2026
8157b10
MAESTRO: add project-path time index for stats query filter
jeffscottward Mar 1, 2026
ddb318c
MAESTRO: memoize live overlay styles in SessionList
jeffscottward Mar 1, 2026
c228521
chore: update git stats and AutoRun related changes
jeffscottward Mar 1, 2026
149bbf9
fix: apply PR 496 manual review fixes
jeffscottward Mar 3, 2026
cf46e41
fix: include missing web-server callbacks in CallbackRegistry
jeffscottward Mar 3, 2026
5be38f3
fix: sync CallbackRegistry getHistory signature with web types
jeffscottward Mar 3, 2026
485533c
chore: apply prettier formatting
jeffscottward Mar 3, 2026
8df014c
fix: remove escaped tab before sizes type field
jeffscottward Mar 3, 2026
5bf641f
fix: address failing checks for PR #496
Mar 3, 2026
04437d0
fix: resolve remaining PR #496 check failures
jeffscottward Mar 3, 2026
aaf09b6
fix: address failing checks for PR #496
Mar 3, 2026
92e3d31
fix: address failing checks for PR #496
Mar 3, 2026
6ee5587
fix: address failing checks for PR #496
Mar 3, 2026
81d8951
fix: address failing checks for PR #496
Mar 3, 2026
f5d323b
fix: address failing checks for PR #496
Mar 3, 2026
f33e3e4
fix: clean PR 496 lint artifacts and formatting
Mar 3, 2026
456e59d
fix: resolve PR 496 ci regressions and remove temp artifacts
jeffscottward Mar 3, 2026
4923b03
fix: stabilize session discovery cache behavior for PR 496
jeffscottward Mar 3, 2026
ae6127d
test: stabilize opencode parser integration assertion
jeffscottward Mar 3, 2026
0ea09ba
Merge remote-tracking branch 'upstream/main' into symphony/issue-373-…
jeffscottward Mar 3, 2026
4fad286
style: apply prettier formatting for session modal hooks
jeffscottward Mar 3, 2026
1c17151
Merge remote-tracking branch 'upstream/main' into symphony/issue-373-…
jeffscottward Mar 3, 2026
5deb587
fix: align release notes formatting and modal nav test
jeffscottward Mar 3, 2026
e76ca1a
fix: align lint types after upstream sync
jeffscottward Mar 3, 2026
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.

2 changes: 1 addition & 1 deletion src/__tests__/integration/group-chat.integration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ function createMockProcessManager(): IProcessManager & {
toolType: config.toolType,
prompt: config.prompt,
});
return { pid: Math.floor(Math.random() * 10000), success: true };
return Promise.resolve({ pid: Math.floor(Math.random() * 10000), success: true });
},

write(sessionId: string, data: string) {
Expand Down
17 changes: 10 additions & 7 deletions src/__tests__/main/debug-package/collectors.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ vi.mock('fs', () => ({
statSync: vi.fn(() => ({ size: 0, isDirectory: () => false })),
readdirSync: vi.fn(() => []),
readFileSync: vi.fn(() => ''),
promises: {
stat: vi.fn(() => Promise.resolve({ size: 0, isDirectory: () => false })),
readdir: vi.fn(() => Promise.resolve([])),
readFile: vi.fn(() => Promise.resolve('')),
},
}));

// Mock cliDetection
Expand Down Expand Up @@ -817,14 +822,13 @@ describe('Debug Package Collectors', () => {
const { app } = await import('electron');

vi.mocked(app.getPath).mockReturnValue('/mock/userData');
vi.mocked(fs.existsSync).mockReturnValue(true);
vi.mocked(fs.statSync).mockImplementation((path: any) => {
vi.mocked(fs.promises.stat).mockImplementation(async (path: any) => {
if (path.includes('maestro-sessions.json')) {
return { size: 1024, isDirectory: () => false } as any;
}
return { size: 0, isDirectory: () => true } as any;
});
vi.mocked(fs.readdirSync).mockReturnValue([]);
vi.mocked(fs.promises.readdir).mockResolvedValue([]);

const { collectStorage } = await import('../../../main/debug-package/collectors/storage');

Expand Down Expand Up @@ -867,13 +871,12 @@ describe('Debug Package Collectors', () => {
const { app } = await import('electron');

vi.mocked(app.getPath).mockReturnValue('/mock/userData');
vi.mocked(fs.existsSync).mockReturnValue(true);
vi.mocked(fs.readdirSync).mockReturnValue([
vi.mocked(fs.promises.readdir).mockResolvedValue([
'chat-1.json',
'chat-1.log.json',
'chat-2.json',
] as any);
vi.mocked(fs.readFileSync).mockImplementation((path: any) => {
vi.mocked(fs.promises.readFile).mockImplementation(async (path: any) => {
if (path.includes('chat-1.json') && !path.includes('.log')) {
return JSON.stringify({
id: 'chat-1',
Expand Down Expand Up @@ -930,7 +933,7 @@ describe('Debug Package Collectors', () => {
it('should handle missing group chats directory', async () => {
const fs = await import('fs');

vi.mocked(fs.existsSync).mockReturnValue(false);
vi.mocked(fs.promises.readdir).mockRejectedValue(new Error('Directory does not exist'));

const { collectGroupChats } =
await import('../../../main/debug-package/collectors/group-chats');
Expand Down
Loading