Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
a371d45
[Symphony] Start contribution for #373
jeffscottward Mar 1, 2026
97910f0
MAESTRO: memoize SessionListItem rendering
jeffscottward Mar 1, 2026
5f994f3
MAESTRO: optimize AutoRun regex and match memoization
jeffscottward Mar 1, 2026
0c0f213
MAESTRO: Memoize FilePreview regex and date computations
jeffscottward Mar 1, 2026
246494c
MAESTRO: memoize SessionListItem inline styles
jeffscottward Mar 1, 2026
b773e45
MAESTRO: asyncify history session listing and rename flow
jeffscottward Mar 1, 2026
a4d3e02
MAESTRO: await async history-manager handlers
jeffscottward Mar 1, 2026
17ef23b
MAESTRO: cache Codex parser config reads asynchronously
jeffscottward Mar 1, 2026
5852f98
MAESTRO: parallelize getDefaultBranch git fallback checks
jeffscottward Mar 1, 2026
a5e9c43
MAESTRO: optimize queryBySource aggregation for compound index
jeffscottward Mar 1, 2026
0caad06
MAESTRO: Optimize session row selection prop passing
jeffscottward Mar 1, 2026
1febc49
chore: checkpoint local changes before gup
jeffscottward Mar 1, 2026
99c78bc
MAESTRO: memoize toast item container
jeffscottward Mar 1, 2026
3b2db74
perf: optimize SessionListItem style recalculation
jeffscottward Mar 1, 2026
81e9939
MAESTRO: memoize expensive preview parsing in FilePreview
jeffscottward Mar 1, 2026
db0f382
MAESTRO: memoize csv table regex helpers
jeffscottward Mar 1, 2026
eb9424a
MAESTRO: memoize session list item inline styles
jeffscottward Mar 1, 2026
61991b5
MAESTRO: Add agent-time index for filtered query_events scans
jeffscottward Mar 1, 2026
a1a2fc7
MAESTRO: Add source-time index for stats query optimization
jeffscottward Mar 1, 2026
dda5c63
MAESTRO: add project-path time index for stats query filter
jeffscottward Mar 1, 2026
7d0d17d
chore: update git stats and AutoRun related changes
jeffscottward Mar 1, 2026
4177417
fix: apply PR 496 manual review fixes
jeffscottward Mar 3, 2026
6dc77ea
fix: include missing web-server callbacks in CallbackRegistry
jeffscottward Mar 3, 2026
afd54ae
fix: sync CallbackRegistry getHistory signature with web types
jeffscottward Mar 3, 2026
01527f2
fix: remove escaped tab before sizes type field
jeffscottward Mar 3, 2026
ce663bd
fix: address failing checks for PR #496
Mar 3, 2026
1b3a748
fix: resolve remaining PR #496 check failures
jeffscottward Mar 3, 2026
b2de281
fix: address failing checks for PR #496
Mar 3, 2026
040dc31
fix: address failing checks for PR #496
Mar 3, 2026
a859b0c
fix: address failing checks for PR #496
Mar 3, 2026
34eb82e
fix: address failing checks for PR #496
Mar 3, 2026
95a17cd
fix: address failing checks for PR #496
Mar 3, 2026
8950b06
fix: clean PR 496 lint artifacts and formatting
Mar 3, 2026
c6803f3
fix: resolve PR 496 ci regressions and remove temp artifacts
jeffscottward Mar 3, 2026
7180af2
fix: stabilize session discovery cache behavior for PR 496
jeffscottward Mar 3, 2026
2fb6391
test: stabilize opencode parser integration assertion
jeffscottward Mar 3, 2026
b586652
fix: align release notes formatting and modal nav test
jeffscottward Mar 3, 2026
3a8c320
fix: align lint types after upstream sync
jeffscottward Mar 3, 2026
594b8c3
chore: align PR 496 branch with validation gate
jeffscottward Mar 14, 2026
865c3df
fix: address session list review feedback
jeffscottward Mar 14, 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
550 changes: 282 additions & 268 deletions docs/releases.md

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion src/__tests__/cli/services/agent-spawner.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ vi.mock('child_process', async (importOriginal) => {
// Mock fs module
vi.mock('fs', async (importOriginal) => {
const actual = await importOriginal<typeof import('fs')>();
return {
const mockFsModule = {
...actual,
readFileSync: vi.fn(),
writeFileSync: vi.fn(),
Expand All @@ -60,6 +60,10 @@ vi.mock('fs', async (importOriginal) => {
X_OK: 1,
},
};
return {
...mockFsModule,
default: mockFsModule,
};
});

// Mock os module
Expand Down
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