ghagga 2.8.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/LICENSE +21 -0
  2. package/dist/commands/__tests__/review-tui.test.js +2 -2
  3. package/dist/commands/__tests__/review-tui.test.js.map +1 -1
  4. package/dist/commands/audit.d.ts +23 -0
  5. package/dist/commands/audit.d.ts.map +1 -0
  6. package/dist/commands/audit.js +282 -0
  7. package/dist/commands/audit.js.map +1 -0
  8. package/dist/commands/audit.test.d.ts +10 -0
  9. package/dist/commands/audit.test.d.ts.map +1 -0
  10. package/dist/commands/audit.test.js +110 -0
  11. package/dist/commands/audit.test.js.map +1 -0
  12. package/dist/commands/dismiss.d.ts +14 -0
  13. package/dist/commands/dismiss.d.ts.map +1 -0
  14. package/dist/commands/dismiss.js +98 -0
  15. package/dist/commands/dismiss.js.map +1 -0
  16. package/dist/commands/feedback.d.ts +18 -0
  17. package/dist/commands/feedback.d.ts.map +1 -0
  18. package/dist/commands/feedback.js +122 -0
  19. package/dist/commands/feedback.js.map +1 -0
  20. package/dist/commands/login.js +3 -3
  21. package/dist/commands/login.js.map +1 -1
  22. package/dist/commands/login.test.js +3 -4
  23. package/dist/commands/login.test.js.map +1 -1
  24. package/dist/commands/review-commit-msg.test.js +2 -2
  25. package/dist/commands/review-commit-msg.test.js.map +1 -1
  26. package/dist/commands/review-output.test.js +30 -2
  27. package/dist/commands/review-output.test.js.map +1 -1
  28. package/dist/commands/review.d.ts +16 -0
  29. package/dist/commands/review.d.ts.map +1 -1
  30. package/dist/commands/review.js +239 -3
  31. package/dist/commands/review.js.map +1 -1
  32. package/dist/commands/review.mr-exit.test.d.ts +13 -0
  33. package/dist/commands/review.mr-exit.test.d.ts.map +1 -0
  34. package/dist/commands/review.mr-exit.test.js +190 -0
  35. package/dist/commands/review.mr-exit.test.js.map +1 -0
  36. package/dist/commands/review.postback-disclosure.test.d.ts +22 -0
  37. package/dist/commands/review.postback-disclosure.test.d.ts.map +1 -0
  38. package/dist/commands/review.postback-disclosure.test.js +192 -0
  39. package/dist/commands/review.postback-disclosure.test.js.map +1 -0
  40. package/dist/commands/review.pr-exit.test.d.ts +13 -0
  41. package/dist/commands/review.pr-exit.test.d.ts.map +1 -0
  42. package/dist/commands/review.pr-exit.test.js +162 -0
  43. package/dist/commands/review.pr-exit.test.js.map +1 -0
  44. package/dist/commands/review.pr-jenkins.test.d.ts +16 -0
  45. package/dist/commands/review.pr-jenkins.test.d.ts.map +1 -0
  46. package/dist/commands/review.pr-jenkins.test.js +106 -0
  47. package/dist/commands/review.pr-jenkins.test.js.map +1 -0
  48. package/dist/commands/review.pr-nativeid-fallback.test.d.ts +15 -0
  49. package/dist/commands/review.pr-nativeid-fallback.test.d.ts.map +1 -0
  50. package/dist/commands/review.pr-nativeid-fallback.test.js +151 -0
  51. package/dist/commands/review.pr-nativeid-fallback.test.js.map +1 -0
  52. package/dist/commands/review.test.js +48 -33
  53. package/dist/commands/review.test.js.map +1 -1
  54. package/dist/commands/status.d.ts.map +1 -1
  55. package/dist/commands/status.js +15 -2
  56. package/dist/commands/status.js.map +1 -1
  57. package/dist/commands/status.test.js +31 -10
  58. package/dist/commands/status.test.js.map +1 -1
  59. package/dist/index.d.ts +3 -3
  60. package/dist/index.js +116 -23
  61. package/dist/index.js.map +1 -1
  62. package/dist/lib/cli-github-client-port.d.ts +52 -0
  63. package/dist/lib/cli-github-client-port.d.ts.map +1 -0
  64. package/dist/lib/cli-github-client-port.js +199 -0
  65. package/dist/lib/cli-github-client-port.js.map +1 -0
  66. package/dist/lib/cli-github-client-port.test.d.ts +10 -0
  67. package/dist/lib/cli-github-client-port.test.d.ts.map +1 -0
  68. package/dist/lib/cli-github-client-port.test.js +47 -0
  69. package/dist/lib/cli-github-client-port.test.js.map +1 -0
  70. package/dist/lib/cli-gitlab-client-port.d.ts +62 -0
  71. package/dist/lib/cli-gitlab-client-port.d.ts.map +1 -0
  72. package/dist/lib/cli-gitlab-client-port.js +209 -0
  73. package/dist/lib/cli-gitlab-client-port.js.map +1 -0
  74. package/dist/lib/cli-gitlab-client-port.test.d.ts +9 -0
  75. package/dist/lib/cli-gitlab-client-port.test.d.ts.map +1 -0
  76. package/dist/lib/cli-gitlab-client-port.test.js +278 -0
  77. package/dist/lib/cli-gitlab-client-port.test.js.map +1 -0
  78. package/dist/lib/config.d.ts +12 -0
  79. package/dist/lib/config.d.ts.map +1 -1
  80. package/dist/lib/config.js +14 -2
  81. package/dist/lib/config.js.map +1 -1
  82. package/dist/lib/config.test.js +22 -3
  83. package/dist/lib/config.test.js.map +1 -1
  84. package/dist/lib/forge-postback.d.ts +72 -0
  85. package/dist/lib/forge-postback.d.ts.map +1 -0
  86. package/dist/lib/forge-postback.js +39 -0
  87. package/dist/lib/forge-postback.js.map +1 -0
  88. package/dist/lib/github-api.d.ts.map +1 -1
  89. package/dist/lib/github-api.js +15 -6
  90. package/dist/lib/github-api.js.map +1 -1
  91. package/dist/lib/github-api.test.js +24 -1
  92. package/dist/lib/github-api.test.js.map +1 -1
  93. package/dist/lib/gitlab-api.d.ts +50 -0
  94. package/dist/lib/gitlab-api.d.ts.map +1 -0
  95. package/dist/lib/gitlab-api.js +75 -0
  96. package/dist/lib/gitlab-api.js.map +1 -0
  97. package/dist/lib/gitlab-api.test.d.ts +2 -0
  98. package/dist/lib/gitlab-api.test.d.ts.map +1 -0
  99. package/dist/lib/gitlab-api.test.js +79 -0
  100. package/dist/lib/gitlab-api.test.js.map +1 -0
  101. package/dist/lib/gitlab-e2e.manual.test.d.ts +24 -0
  102. package/dist/lib/gitlab-e2e.manual.test.d.ts.map +1 -0
  103. package/dist/lib/gitlab-e2e.manual.test.js +57 -0
  104. package/dist/lib/gitlab-e2e.manual.test.js.map +1 -0
  105. package/dist/lib/gitlab-token.d.ts +17 -0
  106. package/dist/lib/gitlab-token.d.ts.map +1 -0
  107. package/dist/lib/gitlab-token.js +24 -0
  108. package/dist/lib/gitlab-token.js.map +1 -0
  109. package/dist/lib/gitlab-token.test.d.ts +2 -0
  110. package/dist/lib/gitlab-token.test.d.ts.map +1 -0
  111. package/dist/lib/gitlab-token.test.js +38 -0
  112. package/dist/lib/gitlab-token.test.js.map +1 -0
  113. package/dist/lib/oauth.test.js +0 -1
  114. package/dist/lib/oauth.test.js.map +1 -1
  115. package/dist/lib/pr-postback.d.ts +42 -0
  116. package/dist/lib/pr-postback.d.ts.map +1 -0
  117. package/dist/lib/pr-postback.js +44 -0
  118. package/dist/lib/pr-postback.js.map +1 -0
  119. package/dist/lib/pr-postback.test.d.ts +9 -0
  120. package/dist/lib/pr-postback.test.d.ts.map +1 -0
  121. package/dist/lib/pr-postback.test.js +196 -0
  122. package/dist/lib/pr-postback.test.js.map +1 -0
  123. package/dist/lib/pr-token.d.ts +15 -0
  124. package/dist/lib/pr-token.d.ts.map +1 -0
  125. package/dist/lib/pr-token.js +22 -0
  126. package/dist/lib/pr-token.js.map +1 -0
  127. package/dist/lib/pr-token.test.d.ts +2 -0
  128. package/dist/lib/pr-token.test.d.ts.map +1 -0
  129. package/dist/lib/pr-token.test.js +25 -0
  130. package/dist/lib/pr-token.test.js.map +1 -0
  131. package/dist/lib/providers.d.ts +29 -0
  132. package/dist/lib/providers.d.ts.map +1 -0
  133. package/dist/lib/providers.js +41 -0
  134. package/dist/lib/providers.js.map +1 -0
  135. package/dist/lib/providers.test.d.ts +9 -0
  136. package/dist/lib/providers.test.d.ts.map +1 -0
  137. package/dist/lib/providers.test.js +60 -0
  138. package/dist/lib/providers.test.js.map +1 -0
  139. package/dist/ui/__tests__/format.test.js +2 -2
  140. package/dist/ui/__tests__/format.test.js.map +1 -1
  141. package/dist/ui/__tests__/theme.test.js +3 -2
  142. package/dist/ui/__tests__/theme.test.js.map +1 -1
  143. package/dist/ui/theme.d.ts.map +1 -1
  144. package/dist/ui/theme.js +1 -0
  145. package/dist/ui/theme.js.map +1 -1
  146. package/package.json +18 -18
@@ -0,0 +1,151 @@
1
+ /**
2
+ * FIX 4 (4vr backlog-cleanup) — CLI `--pr` flow: when the numeric repo-id
3
+ * resolution (`GET /repos/{owner}/{repo}`) fails with a NETWORK error, the
4
+ * post-back must DEGRADE gracefully:
5
+ * - it does NOT crash,
6
+ * - it warns (non-silent),
7
+ * - it proceeds with a PATH-SHAPED, opaque `RepoRef.nativeId` (`owner/repo`).
8
+ *
9
+ * This locks in the safe-degradation documented by the RepoRef.nativeId contract
10
+ * (opaque identity string, MAY be path-shaped). We mock the seams reviewCommand
11
+ * composes so the test is deterministic + offline, and capture the `RepoRef`
12
+ * handed to the post-back to assert the fallback nativeId.
13
+ */
14
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
15
+ // ─── Mock ghagga-core: only what review.ts touches on the --pr path ──
16
+ vi.mock('ghagga-core', () => ({
17
+ reviewPipeline: vi.fn(),
18
+ buildSarif: vi.fn().mockReturnValue({ version: '2.1.0', runs: [] }),
19
+ formatReviewComment: vi.fn().mockReturnValue('<!-- ghagga-review -->\nbody'),
20
+ formatBoxSummary: vi.fn().mockReturnValue([]),
21
+ REVIEW_COMMENT_MARKER: '<!-- ghagga-review -->',
22
+ DEFAULT_SETTINGS: {
23
+ enableSemgrep: true,
24
+ enableTrivy: true,
25
+ enableCpd: true,
26
+ enableMemory: true,
27
+ customRules: [],
28
+ ignorePatterns: [],
29
+ reviewLevel: 'normal',
30
+ enabledTools: [],
31
+ disabledTools: [],
32
+ },
33
+ DEFAULT_MODELS: { gateway: 'auto', 'cli-bridge': 'auto', ollama: 'llama3' },
34
+ initializeDefaultTools: vi.fn(),
35
+ toolRegistry: { getAll: vi.fn().mockReturnValue([]) },
36
+ EngramMemoryStorage: { create: vi.fn() },
37
+ SqliteMemoryStorage: { create: vi.fn() },
38
+ formatReviewResult: vi.fn(),
39
+ }));
40
+ vi.mock('node:child_process', () => ({ execSync: vi.fn() }));
41
+ vi.mock('node:fs', () => ({ readFileSync: vi.fn(), existsSync: vi.fn().mockReturnValue(false) }));
42
+ vi.mock('../lib/pr-token.js', () => ({ resolvePrToken: vi.fn() }));
43
+ // Capture the RepoRef the post-back receives so we can assert the fallback id.
44
+ vi.mock('../lib/pr-postback.js', () => ({ postSummaryComment: vi.fn() }));
45
+ vi.mock('../lib/github-api.js', () => ({
46
+ parseGitHubRemote: vi.fn().mockReturnValue({ owner: 'acme', repo: 'ci' }),
47
+ createComment: vi.fn(),
48
+ createIssue: vi.fn(),
49
+ ensureLabel: vi.fn(),
50
+ formatIssueBody: vi.fn(),
51
+ }));
52
+ vi.mock('ghagga-forge', () => ({
53
+ GitHubForgeAdapter: class {
54
+ },
55
+ StaticTokenProvider: class {
56
+ async getToken() {
57
+ return 'tok';
58
+ }
59
+ },
60
+ }));
61
+ // THE SEAM UNDER TEST: resolveGitHubRepoId throws (network failure).
62
+ vi.mock('../lib/cli-github-client-port.js', () => ({
63
+ createCliGitHubClientPort: vi.fn(),
64
+ resolveGitHubRepoId: vi.fn(),
65
+ }));
66
+ import { execSync } from 'node:child_process';
67
+ import { reviewPipeline } from 'ghagga-core';
68
+ import { resolveGitHubRepoId } from '../lib/cli-github-client-port.js';
69
+ import { postSummaryComment } from '../lib/pr-postback.js';
70
+ import { resolvePrToken } from '../lib/pr-token.js';
71
+ const mockExecSync = vi.mocked(execSync);
72
+ const mockReviewPipeline = vi.mocked(reviewPipeline);
73
+ const mockResolvePrToken = vi.mocked(resolvePrToken);
74
+ const mockResolveGitHubRepoId = vi.mocked(resolveGitHubRepoId);
75
+ const mockPostSummaryComment = vi.mocked(postSummaryComment);
76
+ function defaultOptions(overrides = {}) {
77
+ return {
78
+ mode: 'simple',
79
+ provider: 'gateway',
80
+ model: 'm',
81
+ apiKey: 'k',
82
+ semgrep: true,
83
+ trivy: true,
84
+ cpd: true,
85
+ memory: false,
86
+ verbose: false,
87
+ disableTools: [],
88
+ enableTools: [],
89
+ ...overrides,
90
+ };
91
+ }
92
+ function passedResult() {
93
+ return {
94
+ status: 'PASSED',
95
+ summary: 'ok',
96
+ findings: [],
97
+ staticAnalysis: {
98
+ semgrep: { status: 'skipped', findings: [], executionTimeMs: 0 },
99
+ trivy: { status: 'skipped', findings: [], executionTimeMs: 0 },
100
+ cpd: { status: 'skipped', findings: [], executionTimeMs: 0 },
101
+ },
102
+ memoryContext: null,
103
+ metadata: {
104
+ mode: 'simple',
105
+ provider: 'gateway',
106
+ model: 'm',
107
+ tokensUsed: 1,
108
+ executionTimeMs: 1,
109
+ toolsRun: [],
110
+ toolsSkipped: [],
111
+ fileList: [],
112
+ },
113
+ };
114
+ }
115
+ describe('reviewCommand — --pr nativeId NETWORK-FAILURE fallback (FIX 4)', () => {
116
+ // biome-ignore lint/suspicious/noExplicitAny: spy
117
+ let exitSpy;
118
+ // biome-ignore lint/suspicious/noExplicitAny: spy
119
+ let warnSpy;
120
+ beforeEach(() => {
121
+ vi.clearAllMocks();
122
+ exitSpy = vi.spyOn(process, 'exit').mockImplementation((() => { }));
123
+ warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
124
+ vi.spyOn(console, 'error').mockImplementation(() => { });
125
+ vi.spyOn(console, 'log').mockImplementation(() => { });
126
+ mockExecSync.mockReturnValue('git@github.com:acme/ci.git');
127
+ mockReviewPipeline.mockResolvedValue(passedResult());
128
+ mockResolvePrToken.mockReturnValue('gh-token');
129
+ mockPostSummaryComment.mockResolvedValue({ createdNativeId: 7, deletedNativeIds: [] });
130
+ });
131
+ afterEach(() => {
132
+ vi.restoreAllMocks();
133
+ });
134
+ it('GET /repos throws → post-back proceeds with path-shaped nativeId + warn, exit 0', async () => {
135
+ mockResolveGitHubRepoId.mockRejectedValue(new Error('ECONNRESET'));
136
+ const { reviewCommand } = await import('./review.js');
137
+ await reviewCommand('.', defaultOptions({ pr: 42, outputFormat: 'sarif' }));
138
+ // Graceful: the post-back still ran (no crash) and the job did not fail.
139
+ expect(mockPostSummaryComment).toHaveBeenCalledTimes(1);
140
+ expect(exitSpy).toHaveBeenCalledWith(0);
141
+ // The RepoRef carried the OPAQUE path-shaped fallback, NOT the numeric id.
142
+ const ref = mockPostSummaryComment.mock.calls[0]?.[1];
143
+ expect(ref.repo).toEqual({ kind: 'github', nativeId: 'acme/ci', path: 'acme/ci' });
144
+ expect(ref.iid).toBe(42);
145
+ // The degradation was surfaced (non-silent).
146
+ const warnText = warnSpy.mock.calls.map((c) => String(c[0])).join('\n');
147
+ expect(warnText).toContain('Could not resolve numeric GitHub repo id');
148
+ expect(warnText).toContain('falling back to the owner/repo path');
149
+ });
150
+ });
151
+ //# sourceMappingURL=review.pr-nativeid-fallback.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.pr-nativeid-fallback.test.js","sourceRoot":"","sources":["../../src/commands/review.pr-nativeid-fallback.test.ts"],"names":[],"mappings":"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"}
@@ -117,6 +117,10 @@ vi.mock('ghagga-core', () => {
117
117
  ];
118
118
  return {
119
119
  reviewPipeline: vi.fn(),
120
+ formatReviewComment: vi.fn().mockReturnValue('<!-- ghagga-review -->\nbody'),
121
+ formatBoxSummary: vi.fn().mockReturnValue([]),
122
+ REVIEW_COMMENT_MARKER: '<!-- ghagga-review -->',
123
+ EngramMemoryStorage: { create: vi.fn() },
120
124
  buildSarif: vi.fn().mockReturnValue({
121
125
  $schema: 'https://raw.githubusercontent.com/oasis-tcs/sarif-spec/main/sarif-2.1/schema/sarif-schema-2.1.0.json',
122
126
  version: '2.1.0',
@@ -143,9 +147,9 @@ vi.mock('ghagga-core', () => {
143
147
  disabledTools: [],
144
148
  },
145
149
  DEFAULT_MODELS: {
146
- anthropic: 'claude-sonnet-4-20250514',
147
- openai: 'gpt-4o',
148
- google: 'gemini-2.0-flash',
150
+ gateway: 'auto',
151
+ 'cli-bridge': 'auto',
152
+ ollama: 'llama3',
149
153
  },
150
154
  initializeDefaultTools: vi.fn(),
151
155
  toolRegistry: {
@@ -183,17 +187,19 @@ describe('CLI review module', () => {
183
187
  });
184
188
  describe('CLI output formatting and exit codes', () => {
185
189
  // We test the internal formatting/exit code logic by checking types/contracts
186
- it('defines valid exit codes: PASSED=0, SKIPPED=0, FAILED=1, NEEDS_HUMAN_REVIEW=1', () => {
190
+ it('defines valid exit codes: PASSED=0, SKIPPED=0, FAILED=1, NEEDS_HUMAN_REVIEW=1, PARTIAL=1', () => {
187
191
  const exitCodes = {
188
192
  PASSED: 0,
189
193
  SKIPPED: 0,
190
194
  FAILED: 1,
191
195
  NEEDS_HUMAN_REVIEW: 1,
196
+ PARTIAL: 1,
192
197
  };
193
198
  expect(exitCodes.PASSED).toBe(0);
194
199
  expect(exitCodes.SKIPPED).toBe(0);
195
200
  expect(exitCodes.FAILED).toBe(1);
196
201
  expect(exitCodes.NEEDS_HUMAN_REVIEW).toBe(1);
202
+ expect(exitCodes.PARTIAL).toBe(1);
197
203
  });
198
204
  it('ReviewResult findings have expected structure', () => {
199
205
  const finding = {
@@ -214,7 +220,7 @@ describe('CLI output formatting and exit codes', () => {
214
220
  it('ReviewResult has all required metadata fields', () => {
215
221
  const metadata = {
216
222
  mode: 'simple',
217
- provider: 'anthropic',
223
+ provider: 'gateway',
218
224
  model: 'claude-sonnet-4-20250514',
219
225
  tokensUsed: 500,
220
226
  executionTimeMs: 3200,
@@ -222,7 +228,7 @@ describe('CLI output formatting and exit codes', () => {
222
228
  toolsSkipped: ['trivy', 'cpd'],
223
229
  };
224
230
  expect(metadata.mode).toBe('simple');
225
- expect(metadata.provider).toBe('anthropic');
231
+ expect(metadata.provider).toBe('gateway');
226
232
  expect(metadata.tokensUsed).toBeGreaterThan(0);
227
233
  expect(metadata.executionTimeMs).toBeGreaterThan(0);
228
234
  expect(metadata.toolsRun).toContain('semgrep');
@@ -233,7 +239,7 @@ describe('CLI config file handling', () => {
233
239
  it('.ghagga.json config shape matches expected interface', () => {
234
240
  const config = {
235
241
  mode: 'workflow',
236
- provider: 'openai',
242
+ provider: 'gateway',
237
243
  model: 'gpt-4o',
238
244
  enableSemgrep: true,
239
245
  enableTrivy: false,
@@ -278,27 +284,13 @@ describe('CLI input validation', () => {
278
284
  expect(validModes).toContain('consensus');
279
285
  expect(validModes).not.toContain('turbo');
280
286
  });
281
- it('valid providers are: anthropic, openai, google, github, qwen, groq, cerebras, deepseek, openrouter', () => {
282
- const validProviders = [
283
- 'anthropic',
284
- 'openai',
285
- 'google',
286
- 'github',
287
- 'qwen',
288
- 'groq',
289
- 'cerebras',
290
- 'deepseek',
291
- 'openrouter',
292
- ];
293
- expect(validProviders).toContain('anthropic');
294
- expect(validProviders).toContain('openai');
295
- expect(validProviders).toContain('google');
296
- expect(validProviders).toContain('github');
297
- expect(validProviders).toContain('groq');
298
- expect(validProviders).toContain('cerebras');
299
- expect(validProviders).toContain('deepseek');
300
- expect(validProviders).toContain('openrouter');
301
- expect(validProviders).not.toContain('mistral');
287
+ it('valid providers are: gateway, cli-bridge, ollama', () => {
288
+ const validProviders = ['gateway', 'cli-bridge', 'ollama'];
289
+ expect(validProviders).toContain('gateway');
290
+ expect(validProviders).toContain('cli-bridge');
291
+ expect(validProviders).toContain('ollama');
292
+ expect(validProviders).not.toContain('anthropic');
293
+ expect(validProviders).not.toContain('openai');
302
294
  });
303
295
  it('valid formats are: markdown, json', () => {
304
296
  const validFormats = ['markdown', 'json'];
@@ -321,7 +313,7 @@ const mockReviewPipeline = vi.mocked(reviewPipeline);
321
313
  function defaultOptions(overrides = {}) {
322
314
  return {
323
315
  mode: 'simple',
324
- provider: 'anthropic',
316
+ provider: 'gateway',
325
317
  model: 'claude-sonnet-4-20250514',
326
318
  apiKey: 'test-key',
327
319
  semgrep: true,
@@ -342,7 +334,7 @@ function makeReviewResult(overrides = {}) {
342
334
  findings: [],
343
335
  metadata: {
344
336
  mode: 'simple',
345
- provider: 'anthropic',
337
+ provider: 'gateway',
346
338
  model: 'claude-sonnet-4-20250514',
347
339
  tokensUsed: 100,
348
340
  executionTimeMs: 1500,
@@ -389,7 +381,7 @@ describe('reviewCommand — functional tests', () => {
389
381
  expect(mockReviewPipeline).toHaveBeenCalledWith(expect.objectContaining({
390
382
  diff,
391
383
  mode: 'simple',
392
- provider: 'anthropic',
384
+ provider: 'gateway',
393
385
  model: 'claude-sonnet-4-20250514',
394
386
  apiKey: 'test-key',
395
387
  }));
@@ -424,6 +416,29 @@ describe('reviewCommand — functional tests', () => {
424
416
  await reviewCommand('.', defaultOptions({ outputFormat: 'json' }));
425
417
  expect(logSpy).toHaveBeenCalledWith(JSON.stringify(result, null, 2));
426
418
  });
419
+ it('json output carries semanticDiff when present — full-result serialization is a DELIBERATE contract', async () => {
420
+ // Pins the decision documented on ReviewResult.semanticDiff (types.ts):
421
+ // the field is absent from DB persistence and the HTTP API, but the CLI
422
+ // --format json path serializes the ENTIRE result, semanticDiff included.
423
+ // If this test breaks, the CLI JSON contract changed — not an accident.
424
+ mockExecSync.mockReturnValue('diff content');
425
+ const result = makeReviewResult({
426
+ semanticDiff: {
427
+ changes: [{ kind: 'function_added', name: 'newHelper', filePath: 'src/util.ts' }],
428
+ summary: '1 function added',
429
+ },
430
+ });
431
+ mockReviewPipeline.mockResolvedValue(result);
432
+ const { reviewCommand } = await import('./review.js');
433
+ await reviewCommand('.', defaultOptions({ outputFormat: 'json' }));
434
+ const printed = logSpy.mock.calls.find((c) => String(c[0]).includes('"semanticDiff"'));
435
+ expect(printed).toBeDefined();
436
+ const parsed = JSON.parse(String(printed?.[0]));
437
+ expect(parsed.semanticDiff).toEqual({
438
+ changes: [{ kind: 'function_added', name: 'newHelper', filePath: 'src/util.ts' }],
439
+ summary: '1 function added',
440
+ });
441
+ });
427
442
  it('should output markdown with status and summary for markdown format', async () => {
428
443
  mockExecSync.mockReturnValue('diff content');
429
444
  const result = makeReviewResult({
@@ -559,10 +574,10 @@ describe('reviewCommand — functional tests', () => {
559
574
  mockExecSync.mockReturnValue('diff content');
560
575
  mockReviewPipeline.mockResolvedValue(makeReviewResult());
561
576
  const { reviewCommand } = await import('./review.js');
562
- await reviewCommand('.', defaultOptions({ mode: 'workflow', provider: 'openai', model: 'gpt-4o' }));
577
+ await reviewCommand('.', defaultOptions({ mode: 'workflow', provider: 'cli-bridge', model: 'gpt-4o' }));
563
578
  const allLogCalls = logSpy.mock.calls.map((c) => String(c[0]));
564
579
  expect(allLogCalls.some((s) => s.includes('workflow'))).toBe(true);
565
- expect(allLogCalls.some((s) => s.includes('openai'))).toBe(true);
580
+ expect(allLogCalls.some((s) => s.includes('cli-bridge'))).toBe(true);
566
581
  expect(allLogCalls.some((s) => s.includes('gpt-4o'))).toBe(true);
567
582
  });
568
583
  });
@@ -1 +1 @@
1
- {"version":3,"file":"review.test.js","sourceRoot":"","sources":["../../src/commands/review.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.test.js","sourceRoot":"","sources":["../../src/commands/review.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BnD"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CnD"}
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * Status command — shows current authentication and configuration.
3
3
  */
4
+ import { DEFAULT_MODELS } from 'ghagga-core';
4
5
  import { getConfigFilePath, isLoggedIn, loadConfig } from '../lib/config.js';
5
6
  import { fetchGitHubUser } from '../lib/oauth.js';
7
+ import { remapLegacyStoredProvider } from '../lib/providers.js';
6
8
  import * as tui from '../ui/tui.js';
7
9
  export async function statusCommand() {
8
10
  const config = loadConfig();
@@ -14,9 +16,20 @@ export async function statusCommand() {
14
16
  tui.log.info('\n Run "ghagga login" to authenticate with GitHub.\n');
15
17
  return;
16
18
  }
19
+ // Read-time migration: legacy providers stored by an old "ghagga login"
20
+ // are remapped to 'gateway' everywhere else (review, audit) — show the
21
+ // value those commands will actually use, not the raw stored one.
22
+ const storedProvider = config.defaultProvider ?? 'gateway';
23
+ const remap = remapLegacyStoredProvider(storedProvider);
24
+ const defaultModel = DEFAULT_MODELS[remap.provider] ?? 'auto';
25
+ const providerLabel = remap.remapped
26
+ ? `${remap.provider} (migrated from '${storedProvider}' — run "ghagga login" to refresh)`
27
+ : remap.provider;
28
+ // A stored model belongs to the legacy provider — ignore it after remap
29
+ const modelLabel = (remap.remapped ? undefined : config.defaultModel) ?? defaultModel;
17
30
  tui.log.message(` Auth: Logged in as ${config.githubLogin ?? 'unknown'}`);
18
- tui.log.message(` Provider: ${config.defaultProvider ?? 'github'}`);
19
- tui.log.message(` Model: ${config.defaultModel ?? 'gpt-4o-mini'}`);
31
+ tui.log.message(` Provider: ${providerLabel}`);
32
+ tui.log.message(` Model: ${modelLabel}`);
20
33
  // Validate the stored credential is still valid
21
34
  if (config.githubToken) {
22
35
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;IAC9E,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,MAAM,CAAC,eAAe,IAAI,QAAQ,EAAE,CAAC,CAAC;IACtE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,MAAM,CAAC,YAAY,IAAI,aAAa,EAAE,CAAC,CAAC;IAExE,gDAAgD;IAChD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACvD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC/C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,IAAI,SAAS,CAAC;IAC3D,MAAM,KAAK,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,QAAuB,CAAC,IAAI,MAAM,CAAC;IAC7E,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ;QAClC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,oBAAoB,cAAc,oCAAoC;QACzF,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IACnB,wEAAwE;IACxE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;IAEtF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,MAAM,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;IAC9E,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,aAAa,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;IAE9C,gDAAgD;IAChD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACvD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC/C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC"}
@@ -56,8 +56,8 @@ describe('statusCommand', () => {
56
56
  mockLoadConfig.mockReturnValue({
57
57
  githubToken: 'gho_valid',
58
58
  githubLogin: 'validuser',
59
- defaultProvider: 'anthropic',
60
- defaultModel: 'claude-sonnet-4-20250514',
59
+ defaultProvider: 'ollama',
60
+ defaultModel: 'mistral',
61
61
  });
62
62
  mockFetchGitHubUser.mockResolvedValue({
63
63
  login: 'validuser',
@@ -66,8 +66,8 @@ describe('statusCommand', () => {
66
66
  });
67
67
  await statusCommand();
68
68
  expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('Logged in as validuser'));
69
- expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('anthropic'));
70
- expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('claude-sonnet-4-20250514'));
69
+ expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('ollama'));
70
+ expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('mistral'));
71
71
  expect(tui.log.success).toHaveBeenCalledWith(expect.stringContaining('Valid (validuser)'));
72
72
  expect(tui.outro).toHaveBeenCalledWith('Done');
73
73
  });
@@ -76,8 +76,8 @@ describe('statusCommand', () => {
76
76
  mockLoadConfig.mockReturnValue({
77
77
  githubToken: 'gho_expired',
78
78
  githubLogin: 'expireduser',
79
- defaultProvider: 'github',
80
- defaultModel: 'gpt-4o-mini',
79
+ defaultProvider: 'gateway',
80
+ defaultModel: 'auto',
81
81
  });
82
82
  mockFetchGitHubUser.mockRejectedValue(new Error('401 Unauthorized'));
83
83
  await statusCommand();
@@ -85,7 +85,7 @@ describe('statusCommand', () => {
85
85
  expect(tui.log.info).toHaveBeenCalledWith(expect.stringContaining('ghagga login'));
86
86
  expect(tui.outro).not.toHaveBeenCalled();
87
87
  });
88
- it('shows default provider/model when not explicitly set', async () => {
88
+ it('shows gateway/auto defaults when provider and model are not set', async () => {
89
89
  mockIsLoggedIn.mockReturnValue(true);
90
90
  mockLoadConfig.mockReturnValue({
91
91
  githubToken: 'gho_tok',
@@ -97,9 +97,30 @@ describe('statusCommand', () => {
97
97
  avatar_url: '',
98
98
  });
99
99
  await statusCommand();
100
- // Uses nullish coalescing defaults
101
- expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('github'));
102
- expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('gpt-4o-mini'));
100
+ expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('gateway'));
101
+ expect(tui.log.message).toHaveBeenCalledWith(expect.stringMatching(/Model:\s+auto/));
102
+ expect(tui.outro).toHaveBeenCalledWith('Done');
103
+ });
104
+ it('remaps a legacy stored provider for display with a migration hint', async () => {
105
+ mockIsLoggedIn.mockReturnValue(true);
106
+ mockLoadConfig.mockReturnValue({
107
+ githubToken: 'gho_tok',
108
+ githubLogin: 'legacyuser',
109
+ defaultProvider: 'github',
110
+ defaultModel: 'gpt-4o-mini',
111
+ });
112
+ mockFetchGitHubUser.mockResolvedValue({
113
+ login: 'legacyuser',
114
+ id: 3,
115
+ avatar_url: '',
116
+ });
117
+ await statusCommand();
118
+ // Shows the value review/audit will actually use, with a hint
119
+ expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining("gateway (migrated from 'github'"));
120
+ expect(tui.log.message).toHaveBeenCalledWith(expect.stringContaining('ghagga login'));
121
+ // Stored model belongs to the legacy provider — gateway default shown instead
122
+ expect(tui.log.message).toHaveBeenCalledWith(expect.stringMatching(/Model:\s+auto/));
123
+ expect(tui.log.message).not.toHaveBeenCalledWith(expect.stringContaining('gpt-4o-mini'));
103
124
  expect(tui.outro).toHaveBeenCalledWith('Done');
104
125
  });
105
126
  });