Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
53d2426
feat: add shared integration base types
StillKnotKnown Mar 13, 2026
8e29eb0
feat: add shared pagination utilities
StillKnotKnown Mar 13, 2026
c14e2fb
feat: add shared filter utilities
StillKnotKnown Mar 13, 2026
11299f5
feat: add GitLab issues store
StillKnotKnown Mar 13, 2026
42469a7
feat: add GitLab sync status and investigation stores
StillKnotKnown Mar 13, 2026
b470b36
feat: update GitLab store index
StillKnotKnown Mar 13, 2026
13c07f0
feat: add GitLab IPC channel constants for feature parity
StillKnotKnown Mar 13, 2026
9a11866
feat: add GitLab MR handlers for feature parity
StillKnotKnown Mar 13, 2026
011a242
feat: add GitLab preload API methods for feature parity
StillKnotKnown Mar 13, 2026
f21610a
fix: correct async config access in GitLab MR handlers
StillKnotKnown Mar 13, 2026
11ed335
fix: add IPCResult import and fix status polling handler
StillKnotKnown Mar 13, 2026
e4c517c
feat: add GitLab error parser utility
StillKnotKnown Mar 13, 2026
571bf51
feat: add new MR methods to useGitLabMRs hook return type
StillKnotKnown Mar 13, 2026
a911632
feat: add stub UI components for GitLab feature parity
StillKnotKnown Mar 13, 2026
63c608b
feat: add useGitLabMRFiltering hook
StillKnotKnown Mar 13, 2026
5324585
fix: correct TypeScript type usage in GitLab components
StillKnotKnown Mar 13, 2026
d5a276e
fix: resolve GitLab feature parity TypeScript errors
StillKnotKnown Mar 13, 2026
efce7cd
test: fix phase-config test environment variable bleed
StillKnotKnown Mar 13, 2026
74d95d1
fix: resolve validation issues from pre-PR review
StillKnotKnown Mar 13, 2026
3558505
fix: resolve TypeScript type errors for GitLab feature parity
StillKnotKnown Mar 13, 2026
fb6c666
fix: resolve Biome lint errors for CI
StillKnotKnown Mar 13, 2026
be78dc6
fix: resolve PR review comments for GitLab feature parity
claude Mar 13, 2026
7af1c57
fix: resolve more PR review comments for GitLab feature parity
claude Mar 13, 2026
0d727a3
fix: resolve more PR review comments for GitLab feature parity
claude Mar 13, 2026
f64d5de
fix: resolve more PR review comments for GitLab feature parity
claude Mar 13, 2026
94621fd
fix: add stale request guarding to GitLab stores
StillKnotKnown Mar 13, 2026
1869409
fix: path alias and error parser recoverable flag
StillKnotKnown Mar 13, 2026
5236d62
fix: remove unused projectId prop and display approvalError
StillKnotKnown Mar 13, 2026
d45c203
fix: error handling and i18n improvements
StillKnotKnown Mar 13, 2026
5d50a87
fix: path alias, comment clarity, and test naming
StillKnotKnown Mar 13, 2026
cd3fb11
fix: correct type for progress parameter in useGitLabMRFiltering
StillKnotKnown Mar 13, 2026
af4c7fe
test: add coverage for checkGitLabConnection async helper
StillKnotKnown Mar 13, 2026
228a58a
fix: pagination reliability and i18n improvements
StillKnotKnown Mar 13, 2026
86da9ee
fix: address 13 CodeRabbit review comments for GitLab parity
StillKnotKnown Mar 13, 2026
9492440
fix: address 14 CodeRabbit review comments (round 2)
StillKnotKnown Mar 13, 2026
8b279bf
test: fix gitlab-error-parser test expectations
StillKnotKnown Mar 13, 2026
f2d2b0b
fix: replace unknown with concrete types for memory infrastructure APIs
StillKnotKnown Mar 13, 2026
de04b81
fix: implement memory infrastructure IPC handlers with proper constants
StillKnotKnown Mar 13, 2026
7fd0b4b
fix: treat 'all' status as wildcard in GitLab MR filtering
StillKnotKnown Mar 13, 2026
b188fed
fix: update MRLogs translation paths from mrReview.logs to mrFilterin…
StillKnotKnown Mar 13, 2026
db5eff4
fix: implement saveTerminalBuffer IPC handler with constant
StillKnotKnown Mar 13, 2026
4e2a614
fix: parameter shadowing and pagination test coverage
StillKnotKnown Mar 13, 2026
8017056
fix: move GitLab types to shared, add test coverage, deprecation notice
StillKnotKnown Mar 13, 2026
302233b
fix: clear error on import success and enable noNonNullAssertion warning
StillKnotKnown Mar 13, 2026
a8f7519
fix: mock signatures and replace @ts-expect-error with typed partial
StillKnotKnown Mar 13, 2026
dfa08dc
fix: consistent type guards, clear stale data, correct GitHub auth type
StillKnotKnown Mar 13, 2026
2e56176
fix: strengthen type guard and fix translation namespace
StillKnotKnown Mar 13, 2026
b437dc6
fix: clamp polling interval and stop orphaned pollers
StillKnotKnown Mar 13, 2026
60bdf51
feat: add onGitLabMRStatusUpdate listener to preload API
StillKnotKnown Mar 13, 2026
7a39253
fix: use vi.stubGlobal for test isolation and prevent stale async res…
StillKnotKnown Mar 13, 2026
7a1db87
fix: avoid rendering empty status container in StatusIndicator
StillKnotKnown Mar 13, 2026
5eac6d8
fix: add missing GitLab detailed_merge_status values to StatusIndicator
StillKnotKnown Mar 13, 2026
be83ad4
fix: add hasCommitsAfterPosting field to GitLab new commits check
StillKnotKnown Mar 13, 2026
7896be5
refactor: use path aliases in GitLab store test files
StillKnotKnown Mar 13, 2026
dcc6afa
chore: mark all PR #1942 items as resolved or skipped
StillKnotKnown Mar 13, 2026
13a48e2
fix: resolve CodeRabbit, Gemini, and Sentry review feedback for GitLa…
StillKnotKnown Mar 13, 2026
7705c56
fix: resolve CI test failures from upstream merge
StillKnotKnown Mar 13, 2026
7da21d1
chore: remove fix-pr tracking data
StillKnotKnown Mar 13, 2026
8f3ea8f
fix: resolve CI test failures and address review feedback
StillKnotKnown Mar 13, 2026
eb20eed
chore: remove fix-pr tracking data after processing all review items
StillKnotKnown Mar 13, 2026
33107fc
fix: resolve BatchReviewWizard index bug
StillKnotKnown Mar 13, 2026
48f8396
chore: remove fix-pr tracking data after processing all review items
StillKnotKnown Mar 13, 2026
dcdd753
fix: use secure home directory path instead of /tmp for session persi…
StillKnotKnown Mar 13, 2026
d6360e4
Merge branch 'develop' into feat-gitlab-parity
StillKnotKnown Mar 13, 2026
86dadb3
Merge branch 'develop' into feat-gitlab-parity
StillKnotKnown Mar 14, 2026
92b7534
Merge branch 'develop' into feat-gitlab-parity
AndyMik90 Mar 18, 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
3 changes: 2 additions & 1 deletion apps/desktop/biome.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@
"noProcessEnv": "off",
"useNodejsImportProtocol": "off",
"useImportType": "off",
"useTemplate": "off"
"useTemplate": "off",
"noNonNullAssertion": "warn"
},
"suspicious": {
"recommended": true,
Expand Down
11 changes: 7 additions & 4 deletions apps/desktop/src/__mocks__/electron.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@ import { EventEmitter } from 'events';
// Mock app
export const app = {
getPath: vi.fn((name: string) => {
const os = require('os');
const path = require('path');
const paths: Record<string, string> = {
userData: '/tmp/test-app-data',
home: '/tmp/test-home',
temp: '/tmp'
userData: path.join(os.homedir(), '.aperant-test-data'),
home: os.homedir(),
temp: os.tmpdir()
};
return paths[name] || '/tmp';
return paths[name] || path.join(os.homedir(), '.aperant-test');
}),
getAppPath: vi.fn(() => '/tmp/test-app'),
getVersion: vi.fn(() => '0.1.0'),
isPackaged: false,
on: vi.fn(),
whenReady: vi.fn(() => Promise.resolve()),
quit: vi.fn()
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,6 @@ describe('Claude Profile IPC Integration', () => {

await handleProfileSave?.(null, profile);

// biome-ignore lint/style/noNonNullAssertion: Test file - configDir is set in createTestProfile
expect(existsSync(profile.configDir!)).toBe(true);
});

Expand All @@ -224,7 +223,6 @@ describe('Claude Profile IPC Integration', () => {

await handleProfileSave?.(null, profile);

// biome-ignore lint/style/noNonNullAssertion: Test file - configDir is set in createTestProfile
expect(existsSync(profile.configDir!)).toBe(false);
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ describe('resolveModelId', () => {

beforeEach(() => {
process.env = { ...originalEnv };
// Clear model override env vars to ensure consistent test results
delete process.env.ANTHROPIC_DEFAULT_OPUS_MODEL;
delete process.env.ANTHROPIC_DEFAULT_SONNET_MODEL;
delete process.env.ANTHROPIC_DEFAULT_HAIKU_MODEL;
});

afterEach(() => {
Expand Down
1 change: 0 additions & 1 deletion apps/desktop/src/main/changelog/changelog-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,6 @@ export class ChangelogService extends EventEmitter {
this.debug('Error in AI version suggestion, falling back to patch bump', error);
// Fallback to patch bump if AI fails
// currentVersion is guaranteed non-empty: the try block returns early if falsy or invalid
// biome-ignore lint/style/noNonNullAssertion: guarded by early returns in try block
const [major, minor, patch] = currentVersion!.split('.').map(Number);
return {
version: `${major}.${minor}.${patch + 1}`,
Expand Down
10 changes: 10 additions & 0 deletions apps/desktop/src/main/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,16 @@ function createWindow(): void {
agentManager?.killAll?.()?.catch((err: unknown) => {
console.warn('[main] Error killing agents on window close:', err);
});
// Clear GitLab MR polling intervals for all projects
import('./ipc-handlers/gitlab/mr-review-handlers').then(({ clearPollingForProject }) => {
const { projectStore } = require('./project-store');
const projects = projectStore.getProjects();
for (const project of projects) {
clearPollingForProject(project.id);
}
}).catch((err: unknown) => {
console.warn('[main] Error clearing GitLab polling on window close:', err);
});
mainWindow = null;
});
}
Expand Down
5 changes: 3 additions & 2 deletions apps/desktop/src/main/ipc-handlers/gitlab/autofix-handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -304,9 +304,10 @@ function sendProgress(
function sendError(
mainWindow: BrowserWindow,
projectId: string,
issueIid: number,
error: string
): void {
mainWindow.webContents.send(IPC_CHANNELS.GITLAB_AUTOFIX_ERROR, projectId, error);
mainWindow.webContents.send(IPC_CHANNELS.GITLAB_AUTOFIX_ERROR, projectId, issueIid, error);
}

/**
Expand Down Expand Up @@ -498,7 +499,7 @@ export function registerAutoFixHandlers(
});
} catch (error) {
debugLog('Auto-fix failed', { issueIid, error: error instanceof Error ? error.message : error });
sendError(mainWindow, projectId, error instanceof Error ? error.message : 'Failed to start auto-fix');
sendError(mainWindow, projectId, issueIid, error instanceof Error ? error.message : 'Failed to start auto-fix');
}
}
);
Expand Down
Loading
Loading