@ranger-testing/ranger-cli 1.1.7 → 2.0.1
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.
- package/README.md +47 -45
- package/build/cli.js +649 -277
- package/build/cli.js.map +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/addEnv.js.map +1 -1
- package/build/commands/authEncrypt.js +5 -10
- package/build/commands/authEncrypt.js.map +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/clean.js.map +1 -1
- package/build/commands/config.js +9 -15
- package/build/commands/config.js.map +1 -1
- package/build/commands/env.js +10 -13
- package/build/commands/env.js.map +1 -1
- package/build/commands/feature.js +174 -123
- package/build/commands/feature.js.map +1 -1
- package/build/commands/hooks/autoPrompt.js +1 -1
- package/build/commands/hooks/disable.js +1 -1
- package/build/commands/hooks/enable.js +9 -4
- package/build/commands/hooks/enable.js.map +1 -1
- package/build/commands/hooks/exitPlanMode.js +8 -8
- package/build/commands/hooks/planReminder.js +7 -7
- package/build/commands/hooks/planStart.js +4 -4
- package/build/commands/hooks/postEdit.js +4 -4
- package/build/commands/hooks/postEdit.js.map +1 -1
- package/build/commands/hooks/preCompact.js +3 -3
- package/build/commands/hooks/preCompact.js.map +1 -1
- package/build/commands/hooks/sessionStart.js +19 -5
- package/build/commands/hooks/sessionStart.js.map +1 -1
- package/build/commands/hooks/stopHook.js +114 -20
- package/build/commands/hooks/stopHook.js.map +1 -1
- package/build/commands/index.js +1 -2
- package/build/commands/index.js.map +1 -1
- package/build/commands/login.js +2 -5
- package/build/commands/login.js.map +1 -1
- package/build/commands/setupCi.js +189 -0
- package/build/commands/setupCi.js.map +1 -0
- package/build/commands/skillup.js +16 -68
- package/build/commands/skillup.js.map +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/start.js.map +1 -1
- package/build/commands/status.js +14 -13
- package/build/commands/status.js.map +1 -1
- package/build/commands/update.js +52 -5
- package/build/commands/update.js.map +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/updateEnv.js.map +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/useEnv.js.map +1 -1
- package/build/commands/utils/activeProfile.js +76 -0
- package/build/commands/utils/activeProfile.js.map +1 -0
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/browserSessionsApi.js.map +1 -1
- package/build/commands/utils/deviceAuth.js +53 -5
- package/build/commands/utils/deviceAuth.js.map +1 -1
- package/build/commands/utils/environment.js +11 -12
- package/build/commands/utils/environment.js.map +1 -1
- package/build/commands/utils/featureApi.js +55 -30
- package/build/commands/utils/featureApi.js.map +1 -1
- package/build/commands/utils/featureReportGenerator.js +6 -6
- package/build/commands/utils/featureReportGenerator.js.map +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/profileMessages.js +8 -0
- package/build/commands/utils/profileMessages.js.map +1 -0
- package/build/commands/utils/profileSetupBanner.js +167 -0
- package/build/commands/utils/profileSetupBanner.js.map +1 -0
- package/build/commands/utils/settings.js +20 -2
- package/build/commands/utils/settings.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/telemetry.js +254 -0
- package/build/commands/utils/telemetry.js.map +1 -0
- package/build/commands/utils/userApi.js +4 -4
- package/build/commands/utils/userApi.js.map +1 -1
- package/build/commands/verifyFeature.js +816 -526
- package/build/commands/verifyFeature.js.map +1 -1
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/commands/verifyInBrowser.js.map +1 -1
- package/build/skills/ranger/SKILL.md +65 -64
- package/build/skills/ranger/create.md +31 -31
- package/build/skills/ranger/feedback.md +25 -17
- package/build/skills/ranger/start.md +37 -37
- package/build/skills/ranger/verify.md +59 -55
- package/package.json +1 -1
- package/scripts/postinstall.js +1 -1
- package/build/commands/dataMcpServer.js +0 -1
- package/build/commands/dataMcpServer.js.map +0 -1
- package/build/commands/utils/cliSecret.js +0 -1
- package/build/commands/utils/cliSecret.js.map +0 -1
- package/build/skills/bug-bash.md +0 -329
- package/build/skills/e2e-test-recommender.md +0 -168
|
@@ -3,11 +3,14 @@ import { join } from 'path';
|
|
|
3
3
|
import { existsSync } from 'fs';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
5
|
import inquirer from 'inquirer';
|
|
6
|
-
import { createFeature, listFeatures, getFeature, updateFeature, getFeatureReportMarkdown, listFeatureSessions, startSession, concludeSession, createChecklistItem, getActionItems, getItemFeedback, softDeleteFeature, restoreFeature, } from './utils/featureApi.js';
|
|
6
|
+
import { createFeature, listFeatures, getFeature, updateFeature, getFeatureReportMarkdown, listFeatureSessions, startSession, concludeSession, createChecklistItem, getActionItems, getItemFeedback, softDeleteFeature, restoreFeature, updateChecklistItem, } from './utils/featureApi.js';
|
|
7
7
|
import { getRangerDir } from './utils/rangerRoot.js';
|
|
8
8
|
import { registerSession } from './utils/sessionCache.js';
|
|
9
|
+
import { getEnvNames } from './env.js';
|
|
10
|
+
import { formatProfileRequiredMessage } from './utils/profileMessages.js';
|
|
9
11
|
// Active feature file name (relative to .ranger dir)
|
|
10
12
|
const ACTIVE_FEATURE_FILE = 'active-feature.txt';
|
|
13
|
+
const bold = (text) => `\x1b[1m${text}\x1b[0m`;
|
|
11
14
|
/**
|
|
12
15
|
* Get the current git remote URL
|
|
13
16
|
*/
|
|
@@ -69,60 +72,40 @@ async function setActiveFeatureId(featureId) {
|
|
|
69
72
|
await writeFile(filePath, featureId, 'utf-8');
|
|
70
73
|
}
|
|
71
74
|
/**
|
|
72
|
-
* Get
|
|
75
|
+
* Get a text-based progress display for a feature's stats
|
|
73
76
|
*/
|
|
74
|
-
function
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
function getProgressDisplay(stats) {
|
|
78
|
+
const verified = stats.verifiedItems || 0;
|
|
79
|
+
const inProgress = stats.verificationInProgressItems || 0;
|
|
80
|
+
const blocked = stats.blockedItems || 0;
|
|
81
|
+
const incomplete = stats.incompleteItems || 0;
|
|
82
|
+
const pending = stats.pendingItems || 0;
|
|
83
|
+
const nonCancelled = verified + inProgress + blocked + incomplete + pending;
|
|
84
|
+
if (nonCancelled === 0) {
|
|
85
|
+
return '-';
|
|
86
|
+
}
|
|
87
|
+
// Build a 10-char progress bar
|
|
88
|
+
const barWidth = 10;
|
|
89
|
+
const filledCount = Math.round((verified / nonCancelled) * barWidth);
|
|
90
|
+
const bar = '\u2588'.repeat(filledCount) + '\u2591'.repeat(barWidth - filledCount);
|
|
91
|
+
// Build breakdown of non-verified issues
|
|
92
|
+
const parts = [];
|
|
93
|
+
if (blocked > 0)
|
|
94
|
+
parts.push(`${blocked} blocked`);
|
|
95
|
+
if (incomplete > 0)
|
|
96
|
+
parts.push(`${incomplete} incomplete`);
|
|
97
|
+
if (inProgress > 0)
|
|
98
|
+
parts.push(`${inProgress} in progress`);
|
|
99
|
+
const suffix = parts.length > 0 ? ` (${parts.join(', ')})` : '';
|
|
100
|
+
return `${bar} ${verified}/${nonCancelled} verified${suffix}`;
|
|
91
101
|
}
|
|
92
102
|
/**
|
|
93
|
-
*
|
|
94
|
-
*/
|
|
95
|
-
function getReviewStatusDisplay(feature) {
|
|
96
|
-
const { latestReview, currentSession, completedAt } = feature;
|
|
97
|
-
// Determine review status
|
|
98
|
-
if (completedAt) {
|
|
99
|
-
return { emoji: '\u2705', label: 'Approved' };
|
|
100
|
-
}
|
|
101
|
-
if (latestReview) {
|
|
102
|
-
if (!latestReview.submittedAt) {
|
|
103
|
-
return { emoji: '\ud83d\udcdd', label: 'In Review' }; // 📝
|
|
104
|
-
}
|
|
105
|
-
if (latestReview.overallVerdict === 'approved') {
|
|
106
|
-
return { emoji: '\u2705', label: 'Approved' };
|
|
107
|
-
}
|
|
108
|
-
return { emoji: '\ud83d\udd04', label: 'Changes Needed' }; // 🔄
|
|
109
|
-
}
|
|
110
|
-
if (currentSession?.status === 'completed') {
|
|
111
|
-
return { emoji: '\u23f3', label: 'Awaiting Review' }; // ⏳
|
|
112
|
-
}
|
|
113
|
-
// Not ready for review
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Display a feature with its checklist (current session items only)
|
|
103
|
+
* Display a feature with its scenarios (current session items only)
|
|
118
104
|
*/
|
|
119
105
|
function displayFeature(feature, checklistItems) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
console.log(` Dev Status: ${devStatus.label}`);
|
|
124
|
-
if (reviewStatus) {
|
|
125
|
-
console.log(` Review Status: ${reviewStatus.emoji} ${reviewStatus.label}`);
|
|
106
|
+
console.log(`\n${feature.name} (${feature.dashboardUrl})`);
|
|
107
|
+
if (feature.stats) {
|
|
108
|
+
console.log(` Progress: ${getProgressDisplay(feature.stats)}`);
|
|
126
109
|
}
|
|
127
110
|
if (feature.description) {
|
|
128
111
|
console.log(` Description: ${feature.description}`);
|
|
@@ -138,7 +121,7 @@ function displayFeature(feature, checklistItems) {
|
|
|
138
121
|
console.log(` Completed: ${new Date(feature.completedAt).toLocaleString()}`);
|
|
139
122
|
}
|
|
140
123
|
if (checklistItems && checklistItems.length > 0) {
|
|
141
|
-
console.log('\n
|
|
124
|
+
console.log('\n Scenarios:');
|
|
142
125
|
for (let i = 0; i < checklistItems.length; i++) {
|
|
143
126
|
const item = checklistItems[i];
|
|
144
127
|
let itemEmoji;
|
|
@@ -192,14 +175,18 @@ function displayFeature(feature, checklistItems) {
|
|
|
192
175
|
* Create a new feature
|
|
193
176
|
*/
|
|
194
177
|
export async function featureCreate(name, options) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
178
|
+
const { envNames } = await getEnvNames();
|
|
179
|
+
if (envNames.length === 0) {
|
|
180
|
+
console.warn(`\n${formatProfileRequiredMessage((text) => bold(text))}`);
|
|
181
|
+
}
|
|
182
|
+
// Get scenarios from array (each -c/--scenario flag is one scenario)
|
|
183
|
+
const checklistItems = options.scenarios
|
|
184
|
+
? options.scenarios.map((s) => s.trim())
|
|
198
185
|
: [];
|
|
199
186
|
// Auto-detect git context
|
|
200
187
|
const gitRepoUrl = getGitRepoUrl();
|
|
201
188
|
const gitBranch = getGitBranch();
|
|
202
|
-
console.log('\nCreating feature...');
|
|
189
|
+
console.log('\nCreating feature review...');
|
|
203
190
|
const feature = await createFeature({
|
|
204
191
|
name,
|
|
205
192
|
description: options.description,
|
|
@@ -216,9 +203,9 @@ export async function featureCreate(name, options) {
|
|
|
216
203
|
if (claudeSessionId) {
|
|
217
204
|
registerSession(claudeSessionId, feature.id);
|
|
218
205
|
}
|
|
219
|
-
console.log(`\n\u2705 Feature created: ${feature.id}`);
|
|
206
|
+
console.log(`\n\u2705 Feature review created: ${feature.id}`);
|
|
220
207
|
displayFeature(feature, feature.checklistItems);
|
|
221
|
-
console.log(`\n\u27a1\ufe0f Set as active feature`);
|
|
208
|
+
console.log(`\n\u27a1\ufe0f Set as active feature review`);
|
|
222
209
|
}
|
|
223
210
|
/**
|
|
224
211
|
* List features
|
|
@@ -235,25 +222,23 @@ export async function featureList(options) {
|
|
|
235
222
|
}
|
|
236
223
|
const result = await listFeatures(filters);
|
|
237
224
|
if (result.items.length === 0) {
|
|
238
|
-
console.log('\nNo
|
|
225
|
+
console.log('\nNo feature reviews found.');
|
|
239
226
|
return;
|
|
240
227
|
}
|
|
241
228
|
const showing = result.totalCount > result.items.length
|
|
242
229
|
? `Showing ${result.items.length} of ${result.totalCount}`
|
|
243
|
-
: `${result.totalCount} feature(s) found`;
|
|
230
|
+
: `${result.totalCount} feature review(s) found`;
|
|
244
231
|
console.log(`\n${showing}:\n`);
|
|
245
232
|
for (const feature of result.items) {
|
|
246
|
-
|
|
247
|
-
const reviewStatus = getReviewStatusDisplay(feature);
|
|
248
|
-
console.log(`${devStatus.emoji} ${feature.name}`);
|
|
233
|
+
console.log(`${feature.name}`);
|
|
249
234
|
console.log(` ID: ${feature.id}`);
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
console.log(` Review Status: ${reviewStatus.emoji} ${reviewStatus.label}`);
|
|
235
|
+
if (feature.stats) {
|
|
236
|
+
console.log(` Progress: ${getProgressDisplay(feature.stats)}`);
|
|
253
237
|
}
|
|
254
238
|
if (feature.gitBranch) {
|
|
255
239
|
console.log(` Branch: ${feature.gitBranch}`);
|
|
256
240
|
}
|
|
241
|
+
console.log(` Created: ${new Date(feature.createdAt).toLocaleDateString()}`);
|
|
257
242
|
console.log('');
|
|
258
243
|
}
|
|
259
244
|
// Show next page command if there are more items
|
|
@@ -263,7 +248,7 @@ export async function featureList(options) {
|
|
|
263
248
|
const limitFlag = currentLimit !== 10 ? ` --limit ${currentLimit}` : '';
|
|
264
249
|
const branchFlag = options.currentBranch ? ' --current-branch' : '';
|
|
265
250
|
const deletedFlag = options.includeDeleted ? ' --include-deleted' : '';
|
|
266
|
-
console.log(`Next page: ranger
|
|
251
|
+
console.log(`Next page: ranger list --offset ${nextOffset}${limitFlag}${branchFlag}${deletedFlag}`);
|
|
267
252
|
}
|
|
268
253
|
}
|
|
269
254
|
/**
|
|
@@ -272,9 +257,7 @@ export async function featureList(options) {
|
|
|
272
257
|
export async function featureShow(id) {
|
|
273
258
|
const featureId = id || (await getActiveFeatureId());
|
|
274
259
|
if (!featureId) {
|
|
275
|
-
|
|
276
|
-
console.error('Run: ranger feature resume <id> to set an active feature');
|
|
277
|
-
process.exit(1);
|
|
260
|
+
throw new Error('No feature review ID provided and no active feature review set. Run: ranger resume <id> to set an active feature review');
|
|
278
261
|
}
|
|
279
262
|
const feature = await getFeature(featureId);
|
|
280
263
|
displayFeature(feature, feature.checklistItems);
|
|
@@ -294,7 +277,7 @@ export async function featureResume(id) {
|
|
|
294
277
|
await updateFeature(feature.id, { gitBranch: currentBranch });
|
|
295
278
|
console.log(` Updated branch to: ${currentBranch}`);
|
|
296
279
|
}
|
|
297
|
-
console.log(`\n\u2705 Resumed feature: ${feature.name} (${feature.id})`);
|
|
280
|
+
console.log(`\n\u2705 Resumed feature review: ${feature.name} (${feature.id})`);
|
|
298
281
|
// Start the current session if it's ready
|
|
299
282
|
await tryStartCurrentSession(feature.id);
|
|
300
283
|
// Register Claude session if provided via env var
|
|
@@ -309,10 +292,9 @@ export async function featureResume(id) {
|
|
|
309
292
|
const gitRepoUrl = getGitRepoUrl();
|
|
310
293
|
const gitBranch = getGitBranch();
|
|
311
294
|
if (!gitRepoUrl && !gitBranch) {
|
|
312
|
-
|
|
313
|
-
process.exit(1);
|
|
295
|
+
throw new Error('Not in a git repository.');
|
|
314
296
|
}
|
|
315
|
-
console.log(`\nSearching for
|
|
297
|
+
console.log(`\nSearching for feature reviews matching: ${gitRepoUrl || 'any'} / ${gitBranch || 'any'}...`);
|
|
316
298
|
const result = await listFeatures({
|
|
317
299
|
gitRepoUrl,
|
|
318
300
|
gitBranch,
|
|
@@ -320,8 +302,8 @@ export async function featureResume(id) {
|
|
|
320
302
|
// Filter to non-completed features
|
|
321
303
|
const activeFeatures = result.items.filter((f) => !f.completedAt);
|
|
322
304
|
if (activeFeatures.length === 0) {
|
|
323
|
-
console.log('\nNo matching active
|
|
324
|
-
console.log('Run: ranger
|
|
305
|
+
console.log('\nNo matching active feature reviews found.');
|
|
306
|
+
console.log('Run: ranger create "<name>" to create a new feature review');
|
|
325
307
|
return;
|
|
326
308
|
}
|
|
327
309
|
let selectedFeature;
|
|
@@ -333,24 +315,25 @@ export async function featureResume(id) {
|
|
|
333
315
|
const isInteractive = process.stdin.isTTY && process.stdout.isTTY;
|
|
334
316
|
if (!isInteractive) {
|
|
335
317
|
// Non-interactive mode: list features and require explicit ID
|
|
336
|
-
console.log('\nNon-interactive mode detected. Multiple
|
|
318
|
+
console.log('\nNon-interactive mode detected. Multiple feature reviews found:');
|
|
337
319
|
for (const f of activeFeatures) {
|
|
338
|
-
|
|
339
|
-
console.log(` ${devStatus.emoji} ${f.name}`);
|
|
320
|
+
console.log(` ${f.name}`);
|
|
340
321
|
console.log(` ID: ${f.id}`);
|
|
322
|
+
if (f.stats) {
|
|
323
|
+
console.log(` Progress: ${getProgressDisplay(f.stats)}`);
|
|
324
|
+
}
|
|
341
325
|
if (f.gitBranch) {
|
|
342
326
|
console.log(` Branch: ${f.gitBranch}`);
|
|
343
327
|
}
|
|
344
328
|
}
|
|
345
|
-
|
|
346
|
-
process.exit(1);
|
|
329
|
+
throw new Error('Please specify the feature review ID: ranger resume <id>');
|
|
347
330
|
}
|
|
348
331
|
// Interactive mode: prompt user to select
|
|
349
332
|
const { selected } = await inquirer.prompt([
|
|
350
333
|
{
|
|
351
334
|
type: 'list',
|
|
352
335
|
name: 'selected',
|
|
353
|
-
message: 'Multiple
|
|
336
|
+
message: 'Multiple feature reviews found. Select one:',
|
|
354
337
|
choices: activeFeatures.map((f) => ({
|
|
355
338
|
name: `${f.name} (${f.id})`,
|
|
356
339
|
value: f.id,
|
|
@@ -365,7 +348,7 @@ export async function featureResume(id) {
|
|
|
365
348
|
await updateFeature(selectedFeature.id, { gitBranch });
|
|
366
349
|
console.log(` Updated branch to: ${gitBranch}`);
|
|
367
350
|
}
|
|
368
|
-
console.log(`\n\u2705 Resumed feature: ${selectedFeature.name} (${selectedFeature.id})`);
|
|
351
|
+
console.log(`\n\u2705 Resumed feature review: ${selectedFeature.name} (${selectedFeature.id})`);
|
|
369
352
|
// Start the current session if it's ready
|
|
370
353
|
await tryStartCurrentSession(selectedFeature.id);
|
|
371
354
|
// Register Claude session if provided via env var
|
|
@@ -379,7 +362,7 @@ export async function featureResume(id) {
|
|
|
379
362
|
await printFeedbackNudge(fullFeature.id);
|
|
380
363
|
}
|
|
381
364
|
/**
|
|
382
|
-
* Print a nudge about unaddressed reviewer comments if any
|
|
365
|
+
* Print a nudge about unaddressed reviewer comments if any scenarios have them
|
|
383
366
|
*/
|
|
384
367
|
async function printFeedbackNudge(featureId) {
|
|
385
368
|
try {
|
|
@@ -394,8 +377,8 @@ async function printFeedbackNudge(featureId) {
|
|
|
394
377
|
}
|
|
395
378
|
}
|
|
396
379
|
if (totalComments > 0) {
|
|
397
|
-
console.log(`\n\u26a0\ufe0f ${totalComments} unaddressed reviewer comment(s) across ${itemsWithComments}
|
|
398
|
-
console.log(' Run `ranger
|
|
380
|
+
console.log(`\n\u26a0\ufe0f ${totalComments} unaddressed reviewer comment(s) across ${itemsWithComments} scenario(s).`);
|
|
381
|
+
console.log(' Run `ranger get-review` to see what needs to be fixed.');
|
|
399
382
|
}
|
|
400
383
|
}
|
|
401
384
|
catch {
|
|
@@ -425,8 +408,7 @@ async function tryStartCurrentSession(featureId) {
|
|
|
425
408
|
export async function featureReport(id, options) {
|
|
426
409
|
const featureId = id || (await getActiveFeatureId());
|
|
427
410
|
if (!featureId) {
|
|
428
|
-
|
|
429
|
-
process.exit(1);
|
|
411
|
+
throw new Error('No feature review ID provided and no active feature review set.');
|
|
430
412
|
}
|
|
431
413
|
console.log('\nGenerating report...');
|
|
432
414
|
// Fetch markdown report from API (includes embedded screenshots)
|
|
@@ -449,33 +431,28 @@ export async function featureReport(id, options) {
|
|
|
449
431
|
export async function featureConcludeSession(id) {
|
|
450
432
|
const featureId = id || (await getActiveFeatureId());
|
|
451
433
|
if (!featureId) {
|
|
452
|
-
|
|
453
|
-
console.error('Run: ranger feature resume <id> to set an active feature');
|
|
454
|
-
process.exit(1);
|
|
434
|
+
throw new Error('No feature review ID provided and no active feature review set. Run: ranger resume <id> to set an active feature review');
|
|
455
435
|
}
|
|
456
436
|
const feature = await getFeature(featureId);
|
|
457
437
|
if (!feature.currentSessionId) {
|
|
458
|
-
|
|
459
|
-
process.exit(1);
|
|
438
|
+
throw new Error('No active session for this feature review.');
|
|
460
439
|
}
|
|
461
440
|
const { sessions } = await listFeatureSessions(featureId);
|
|
462
441
|
const currentSession = sessions.find((s) => s.id === feature.currentSessionId);
|
|
463
442
|
if (!currentSession) {
|
|
464
|
-
|
|
465
|
-
process.exit(1);
|
|
443
|
+
throw new Error('Current session not found.');
|
|
466
444
|
}
|
|
467
445
|
if (currentSession.status === 'completed') {
|
|
468
446
|
console.log('\n\u2705 Session is already completed.');
|
|
469
447
|
return;
|
|
470
448
|
}
|
|
471
449
|
if (currentSession.status !== 'in_progress') {
|
|
472
|
-
|
|
473
|
-
process.exit(1);
|
|
450
|
+
throw new Error(`Cannot conclude session with status: ${currentSession.status}`);
|
|
474
451
|
}
|
|
475
452
|
console.log('\nConcluding session...');
|
|
476
453
|
await concludeSession(featureId, feature.currentSessionId);
|
|
477
454
|
console.log(`\n\u2705 Session ${currentSession.iteration} concluded.`);
|
|
478
|
-
console.log(` The feature is now ready for human review on the Ranger dashboard.`);
|
|
455
|
+
console.log(` The feature review is now ready for human review on the Ranger dashboard.`);
|
|
479
456
|
}
|
|
480
457
|
/**
|
|
481
458
|
* List sessions for a feature
|
|
@@ -483,11 +460,10 @@ export async function featureConcludeSession(id) {
|
|
|
483
460
|
export async function featureSessions(id) {
|
|
484
461
|
const featureId = id || (await getActiveFeatureId());
|
|
485
462
|
if (!featureId) {
|
|
486
|
-
|
|
487
|
-
process.exit(1);
|
|
463
|
+
throw new Error('No feature review ID provided and no active feature review set.');
|
|
488
464
|
}
|
|
489
465
|
const feature = await getFeature(featureId);
|
|
490
|
-
console.log(`\n\ud83d\udcc1 Sessions for: ${feature.name}\n`);
|
|
466
|
+
console.log(`\n\ud83d\udcc1 Sessions for feature review: ${feature.name}\n`);
|
|
491
467
|
const { sessions } = await listFeatureSessions(featureId);
|
|
492
468
|
if (sessions.length === 0) {
|
|
493
469
|
console.log('No sessions found.');
|
|
@@ -509,45 +485,105 @@ export async function featureSessions(id) {
|
|
|
509
485
|
}
|
|
510
486
|
}
|
|
511
487
|
/**
|
|
512
|
-
* Add a
|
|
488
|
+
* Add a scenario to the active feature
|
|
513
489
|
*/
|
|
514
|
-
export async function
|
|
490
|
+
export async function featureAddScenario(description, id) {
|
|
515
491
|
const featureId = id || (await getActiveFeatureId());
|
|
516
492
|
if (!featureId) {
|
|
517
|
-
|
|
518
|
-
|
|
493
|
+
throw new Error('No feature review ID provided and no active feature review set. Run: ranger resume <id> to set an active feature review');
|
|
494
|
+
}
|
|
495
|
+
const feature = await getFeature(featureId);
|
|
496
|
+
// Check if there's an active (non-submitted) review
|
|
497
|
+
if (feature.latestReview && !feature.latestReview.submittedAt) {
|
|
498
|
+
throw new Error(`Cannot add scenario: feature review has an active review. Please finish your review first: ${feature.dashboardUrl}`);
|
|
499
|
+
}
|
|
500
|
+
// Create the scenario
|
|
501
|
+
await createChecklistItem(featureId, description);
|
|
502
|
+
// Refetch and display the updated feature
|
|
503
|
+
const updatedFeature = await getFeature(featureId);
|
|
504
|
+
console.log(`\n\u2705 Scenario added`);
|
|
505
|
+
displayFeature(updatedFeature, updatedFeature.checklistItems);
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Edit a scenario description on the active feature
|
|
509
|
+
*/
|
|
510
|
+
export async function featureEditScenario(description, options) {
|
|
511
|
+
const featureId = options.id || (await getActiveFeatureId());
|
|
512
|
+
if (!featureId) {
|
|
513
|
+
console.error('\n\u274c No feature review ID provided and no active feature review set.');
|
|
514
|
+
console.error('Run: ranger resume <id> to set an active feature review');
|
|
519
515
|
process.exit(1);
|
|
520
516
|
}
|
|
521
517
|
const feature = await getFeature(featureId);
|
|
522
518
|
// Check if there's an active (non-submitted) review
|
|
523
519
|
if (feature.latestReview && !feature.latestReview.submittedAt) {
|
|
524
|
-
console.error('\n\u274c Cannot
|
|
520
|
+
console.error('\n\u274c Cannot edit scenario: feature review has an active review.');
|
|
525
521
|
console.error('Please finish your review first:');
|
|
526
522
|
console.error(` ${feature.dashboardUrl}`);
|
|
527
523
|
process.exit(1);
|
|
528
524
|
}
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
525
|
+
const checklistItems = feature.checklistItems || [];
|
|
526
|
+
if (checklistItems.length === 0) {
|
|
527
|
+
console.error('\n\u274c No scenarios found to edit.');
|
|
528
|
+
process.exit(1);
|
|
529
|
+
}
|
|
530
|
+
if (options.scenario === undefined) {
|
|
531
|
+
console.error('\n\u274c No scenario number provided. Use --scenario <number>.');
|
|
532
|
+
console.log('\nAvailable scenarios:');
|
|
533
|
+
for (let i = 0; i < checklistItems.length; i++) {
|
|
534
|
+
console.log(` ${i + 1}. ${checklistItems[i].description}`);
|
|
535
|
+
}
|
|
536
|
+
process.exit(1);
|
|
537
|
+
}
|
|
538
|
+
const itemIndex = options.scenario - 1;
|
|
539
|
+
if (itemIndex < 0 || itemIndex >= checklistItems.length) {
|
|
540
|
+
console.error(`\n\u274c Invalid scenario index: ${options.scenario}. Feature review has ${checklistItems.length} scenarios.`);
|
|
541
|
+
console.log('\nAvailable scenarios:');
|
|
542
|
+
for (let i = 0; i < checklistItems.length; i++) {
|
|
543
|
+
console.log(` ${i + 1}. ${checklistItems[i].description}`);
|
|
544
|
+
}
|
|
545
|
+
process.exit(1);
|
|
546
|
+
}
|
|
547
|
+
const checklistItem = checklistItems[itemIndex];
|
|
548
|
+
await updateChecklistItem(featureId, checklistItem.id, { description });
|
|
532
549
|
const updatedFeature = await getFeature(featureId);
|
|
533
|
-
console.log(`\n\u2705
|
|
550
|
+
console.log(`\n\u2705 Scenario updated`);
|
|
534
551
|
displayFeature(updatedFeature, updatedFeature.checklistItems);
|
|
535
552
|
}
|
|
536
553
|
/**
|
|
537
|
-
* Get
|
|
554
|
+
* Get review comments for all scenarios in a feature
|
|
555
|
+
*/
|
|
556
|
+
/**
|
|
557
|
+
* Download an image from a signed URL to a local file path.
|
|
558
|
+
* Returns the local file path on success, or null on failure.
|
|
538
559
|
*/
|
|
539
|
-
|
|
560
|
+
async function downloadFeedbackImage(assetUrl, commentId) {
|
|
561
|
+
try {
|
|
562
|
+
const imagesDir = join(getRangerDir(), 'feedback-images');
|
|
563
|
+
await mkdir(imagesDir, { recursive: true });
|
|
564
|
+
const filePath = join(imagesDir, `comment_${commentId}.png`);
|
|
565
|
+
const response = await fetch(assetUrl);
|
|
566
|
+
if (!response.ok) {
|
|
567
|
+
return null;
|
|
568
|
+
}
|
|
569
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
570
|
+
await writeFile(filePath, buffer);
|
|
571
|
+
return filePath;
|
|
572
|
+
}
|
|
573
|
+
catch {
|
|
574
|
+
return null;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
export async function featureGetReview(id) {
|
|
540
578
|
const featureId = id || (await getActiveFeatureId());
|
|
541
579
|
if (!featureId) {
|
|
542
|
-
|
|
543
|
-
console.error('Run: ranger feature resume <id> to set an active feature');
|
|
544
|
-
process.exit(1);
|
|
580
|
+
throw new Error('No feature review ID provided and no active feature review set. Run: ranger resume <id> to set an active feature review');
|
|
545
581
|
}
|
|
546
582
|
const feature = await getFeature(featureId);
|
|
547
583
|
const { items: actionItems } = await getActionItems(featureId);
|
|
548
584
|
console.log(`\n\ud83d\udccb Feedback for: ${feature.name} (${feature.id})\n`);
|
|
549
585
|
if (actionItems.length === 0) {
|
|
550
|
-
console.log('No
|
|
586
|
+
console.log('No scenarios found.');
|
|
551
587
|
return;
|
|
552
588
|
}
|
|
553
589
|
for (let i = 0; i < actionItems.length; i++) {
|
|
@@ -555,11 +591,28 @@ export async function featureGetFeedback(id) {
|
|
|
555
591
|
const versionTag = item.version > 1 ? ` (v${item.version})` : '';
|
|
556
592
|
const feedback = await getItemFeedback(featureId, item.id);
|
|
557
593
|
if (feedback.unaddressedComments.length > 0) {
|
|
558
|
-
console.log(`
|
|
594
|
+
console.log(`Scenario ${i + 1}: "${item.description}"${versionTag} \u2014 ${feedback.unaddressedComments.length} unaddressed comment(s)`);
|
|
559
595
|
for (const comment of feedback.unaddressedComments) {
|
|
560
596
|
const date = new Date(comment.createdAt).toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
|
|
561
597
|
const author = comment.authorName || comment.authorEmail || 'Unknown';
|
|
562
598
|
console.log(` \ud83d\udcac ${author} (${date}): "${comment.content}"`);
|
|
599
|
+
// Download and display annotated screenshot if available
|
|
600
|
+
if (comment.assetUrl) {
|
|
601
|
+
const localPath = await downloadFeedbackImage(comment.assetUrl, comment.id);
|
|
602
|
+
if (localPath) {
|
|
603
|
+
console.log(` \ud83d\udcf7 Screenshot: ${localPath}`);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
if (comment.spatial) {
|
|
607
|
+
const coords = comment.spatial.coordinates;
|
|
608
|
+
if (comment.spatial.type === 'point' &&
|
|
609
|
+
coords.length >= 2) {
|
|
610
|
+
console.log(` \ud83d\udccd Annotation: point at (${coords[0].toFixed(2)}, ${coords[1].toFixed(2)})`);
|
|
611
|
+
}
|
|
612
|
+
else {
|
|
613
|
+
console.log(` \ud83d\udccd Annotation: ${comment.spatial.type} at [${coords.map((c) => c.toFixed(2)).join(', ')}]`);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
563
616
|
}
|
|
564
617
|
if (feedback.canonicalFlow) {
|
|
565
618
|
console.log(` Expected flow:`);
|
|
@@ -569,7 +622,7 @@ export async function featureGetFeedback(id) {
|
|
|
569
622
|
}
|
|
570
623
|
}
|
|
571
624
|
else {
|
|
572
|
-
console.log(`
|
|
625
|
+
console.log(`Scenario ${i + 1}: "${item.description}"${versionTag} \u2014 no comments`);
|
|
573
626
|
console.log(` \u2705 No feedback to address`);
|
|
574
627
|
}
|
|
575
628
|
console.log('');
|
|
@@ -581,14 +634,12 @@ export async function featureGetFeedback(id) {
|
|
|
581
634
|
export async function featureDelete(id) {
|
|
582
635
|
const featureId = id || (await getActiveFeatureId());
|
|
583
636
|
if (!featureId) {
|
|
584
|
-
|
|
585
|
-
console.error('Run: ranger feature resume <id> to set an active feature');
|
|
586
|
-
process.exit(1);
|
|
637
|
+
throw new Error('No feature review ID provided and no active feature review set. Run: ranger resume <id> to set an active feature review');
|
|
587
638
|
}
|
|
588
639
|
const feature = await getFeature(featureId);
|
|
589
640
|
await softDeleteFeature(featureId);
|
|
590
|
-
console.log(`\n\ud83d\uddd1\ufe0f Deleted feature: ${feature.name} (${featureId})`);
|
|
591
|
-
console.log(' To restore it, run: ranger
|
|
641
|
+
console.log(`\n\ud83d\uddd1\ufe0f Deleted feature review: ${feature.name} (${featureId})`);
|
|
642
|
+
console.log(' To restore it, run: ranger restore ' + featureId);
|
|
592
643
|
}
|
|
593
644
|
/**
|
|
594
645
|
* Restore a soft-deleted feature
|
|
@@ -596,7 +647,7 @@ export async function featureDelete(id) {
|
|
|
596
647
|
export async function featureRestore(id) {
|
|
597
648
|
await restoreFeature(id);
|
|
598
649
|
const feature = await getFeature(id);
|
|
599
|
-
console.log(`\n\u2705 Restored feature: ${feature.name} (${id})`);
|
|
650
|
+
console.log(`\n\u2705 Restored feature review: ${feature.name} (${id})`);
|
|
600
651
|
displayFeature(feature, feature.checklistItems);
|
|
601
652
|
}
|
|
602
653
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/commands/feature.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/commands/feature.ts"],"names":[],"mappings":"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"}
|