flowcollab 0.3.0 → 0.3.2
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/bin/edit.mjs +2 -1
- package/bin/pull.mjs +1 -1
- package/bin/scan.mjs +6 -4
- package/bin/standup.mjs +1 -1
- package/package.json +1 -1
package/bin/edit.mjs
CHANGED
|
@@ -38,7 +38,8 @@ async function main() {
|
|
|
38
38
|
const label = updated.title || id.slice(0, 8);
|
|
39
39
|
process.stdout.write(`Updated: ${label}\n`);
|
|
40
40
|
for (const [k, v] of Object.entries(changes)) {
|
|
41
|
-
|
|
41
|
+
const display = v === null || (Array.isArray(v) && v.length === 0) ? '(cleared)' : v;
|
|
42
|
+
process.stdout.write(` ${k}: ${display}\n`);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
|
package/bin/pull.mjs
CHANGED
|
@@ -414,7 +414,7 @@ async function main() {
|
|
|
414
414
|
let gc = {};
|
|
415
415
|
try { gc = JSON.parse(readFileSync(configPath, 'utf8')); } catch {}
|
|
416
416
|
gc.projectId = defaultProject.id;
|
|
417
|
-
writeFileSync(configPath, JSON.stringify(gc, null, 2));
|
|
417
|
+
writeFileSync(configPath, JSON.stringify(gc, null, 2), { encoding: 'utf8', mode: 0o600 });
|
|
418
418
|
process.stdout.write(` project_id → ~/.flow/config.json (project: ${defaultProject.slug})\n`);
|
|
419
419
|
}
|
|
420
420
|
} catch { /* non-fatal */ }
|
package/bin/scan.mjs
CHANGED
|
@@ -204,20 +204,22 @@ async function main() {
|
|
|
204
204
|
|
|
205
205
|
if (all || doIssues) {
|
|
206
206
|
process.stdout.write(' [issues] fetching GitHub Issues vs Flow tasks...\n');
|
|
207
|
-
let s;
|
|
208
|
-
try { s = await scanIssues(repo); } catch (e) { process.stdout.write(` [issues] Error: ${e.message}\n`); s = []; }
|
|
207
|
+
let s, issueErr = false;
|
|
208
|
+
try { s = await scanIssues(repo); } catch (e) { process.stdout.write(` [issues] Error: ${e.message}\n`); issueErr = true; s = []; }
|
|
209
209
|
if (doIssues) { printSection('Untracked GitHub Issues', s || []); return; }
|
|
210
210
|
if (s === null) process.stdout.write('\n[issues] Skipped — FLOW_GITHUB_REPO not set.\n');
|
|
211
|
+
else if (issueErr) process.stdout.write('\n[issues] Scan failed — check FLOW_GITHUB_REPO and token.\n');
|
|
211
212
|
else if (all && s.length) printSection('Untracked GitHub Issues', s);
|
|
212
213
|
else if (all) process.stdout.write('\n[issues] All open Issues are tracked in Flow.\n');
|
|
213
214
|
}
|
|
214
215
|
|
|
215
216
|
if (all || doPRs) {
|
|
216
217
|
process.stdout.write(' [prs] fetching open PRs vs Flow tasks...\n');
|
|
217
|
-
let s;
|
|
218
|
-
try { s = await scanPRs(repo); } catch (e) { process.stdout.write(` [prs] Error: ${e.message}\n`); s = []; }
|
|
218
|
+
let s, prErr = false;
|
|
219
|
+
try { s = await scanPRs(repo); } catch (e) { process.stdout.write(` [prs] Error: ${e.message}\n`); prErr = true; s = []; }
|
|
219
220
|
if (doPRs) { printSection('Unlinked open PRs', s || []); return; }
|
|
220
221
|
if (s === null) process.stdout.write('\n[prs] Skipped — FLOW_GITHUB_REPO not set.\n');
|
|
222
|
+
else if (prErr) process.stdout.write('\n[prs] Scan failed — check FLOW_GITHUB_REPO and token.\n');
|
|
221
223
|
else if (all && s.length) printSection('Unlinked open PRs', s);
|
|
222
224
|
else if (all) process.stdout.write('\n[prs] All open PRs are linked to Flow tasks.\n');
|
|
223
225
|
}
|
package/bin/standup.mjs
CHANGED
|
@@ -30,7 +30,7 @@ const TITLE_W = Math.max(20, TERM_COLS - 29);
|
|
|
30
30
|
const SHORT_TITLE_W = Math.max(20, TERM_COLS - 37); // agents have longer prefix
|
|
31
31
|
|
|
32
32
|
async function main() {
|
|
33
|
-
const sinceHours = Math.max(1, parseInt(arg('since') || '24'));
|
|
33
|
+
const sinceHours = Math.max(1, parseInt(arg('since') || '24') || 24);
|
|
34
34
|
const since = new Date(Date.now() - sinceHours * 3600000);
|
|
35
35
|
const showVelocity = process.argv.includes('--velocity');
|
|
36
36
|
|