vibe-squire 2.1.0 → 2.2.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/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ui/activity-api.controller.d.ts +4 -12
- package/dist/ui/activity-api.controller.js +29 -3
- package/dist/ui/activity-api.controller.js.map +1 -1
- package/dist/ui/integration-ui-registry.js +1 -0
- package/dist/ui/integration-ui-registry.js.map +1 -1
- package/dist/ui/public/operator-activity.js +79 -7
- package/dist/ui/setting-labels.js +1 -0
- package/dist/ui/setting-labels.js.map +1 -1
- package/dist/ui/ui-presenter.d.ts +18 -12
- package/dist/ui/ui-presenter.js +34 -12
- package/dist/ui/ui-presenter.js.map +1 -1
- package/dist/ui/ui.controller.js +2 -0
- package/dist/ui/ui.controller.js.map +1 -1
- package/dist/ui/views/settings.hbs +26 -2
- package/package.json +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { PrismaService } from '../prisma/prisma.service';
|
|
1
2
|
import { PollRunHistoryService } from '../sync/poll-run-history.service';
|
|
2
3
|
export declare class ActivityApiController {
|
|
3
4
|
private readonly pollRunHistory;
|
|
4
|
-
|
|
5
|
+
private readonly prisma;
|
|
6
|
+
constructor(pollRunHistory: PollRunHistoryService, prisma: PrismaService);
|
|
5
7
|
runs(limitRaw?: string): Promise<{
|
|
6
8
|
runs: {
|
|
7
9
|
id: string;
|
|
@@ -23,17 +25,7 @@ export declare class ActivityApiController {
|
|
|
23
25
|
skippedTriage: number | null;
|
|
24
26
|
skippedDeclined: number | null;
|
|
25
27
|
itemCount: number;
|
|
26
|
-
items:
|
|
27
|
-
prUrl: string;
|
|
28
|
-
githubRepo: string;
|
|
29
|
-
prNumber: number;
|
|
30
|
-
prTitle: string;
|
|
31
|
-
authorLogin: string | null;
|
|
32
|
-
decision: string;
|
|
33
|
-
decisionLabel: string;
|
|
34
|
-
detail: string | null;
|
|
35
|
-
kanbanIssueId: string | null;
|
|
36
|
-
}>;
|
|
28
|
+
items: import("./ui-presenter").ActivityItem[];
|
|
37
29
|
}[];
|
|
38
30
|
}>;
|
|
39
31
|
}
|
|
@@ -15,14 +15,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.ActivityApiController = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const prisma_service_1 = require("../prisma/prisma.service");
|
|
18
19
|
const poll_run_history_service_1 = require("../sync/poll-run-history.service");
|
|
19
20
|
const ui_presenter_1 = require("./ui-presenter");
|
|
20
21
|
const DEFAULT_LIMIT = 40;
|
|
21
22
|
const MAX_LIMIT = 100;
|
|
22
23
|
let ActivityApiController = class ActivityApiController {
|
|
23
24
|
pollRunHistory;
|
|
24
|
-
|
|
25
|
+
prisma;
|
|
26
|
+
constructor(pollRunHistory, prisma) {
|
|
25
27
|
this.pollRunHistory = pollRunHistory;
|
|
28
|
+
this.prisma = prisma;
|
|
26
29
|
}
|
|
27
30
|
async runs(limitRaw) {
|
|
28
31
|
let limit = DEFAULT_LIMIT;
|
|
@@ -33,7 +36,29 @@ let ActivityApiController = class ActivityApiController {
|
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
38
|
const rows = await this.pollRunHistory.listRecentForUi(limit);
|
|
36
|
-
|
|
39
|
+
const allPrUrls = new Set(rows.flatMap((r) => r.items.map((i) => i.prUrl)));
|
|
40
|
+
const [syncedRows, declinedRows] = await Promise.all([
|
|
41
|
+
allPrUrls.size > 0
|
|
42
|
+
? this.prisma.syncedPullRequest.findMany({
|
|
43
|
+
where: { prUrl: { in: [...allPrUrls] } },
|
|
44
|
+
select: { prUrl: true },
|
|
45
|
+
})
|
|
46
|
+
: [],
|
|
47
|
+
allPrUrls.size > 0
|
|
48
|
+
? this.prisma.declinedPullRequest.findMany({
|
|
49
|
+
where: { prUrl: { in: [...allPrUrls] } },
|
|
50
|
+
select: { prUrl: true },
|
|
51
|
+
})
|
|
52
|
+
: [],
|
|
53
|
+
]);
|
|
54
|
+
const acceptedPrUrls = new Set(syncedRows.map((r) => r.prUrl));
|
|
55
|
+
const declinedPrUrls = new Set(declinedRows.map((r) => r.prUrl));
|
|
56
|
+
return {
|
|
57
|
+
runs: (0, ui_presenter_1.presentActivityRunsForView)(rows, {
|
|
58
|
+
acceptedPrUrls,
|
|
59
|
+
declinedPrUrls,
|
|
60
|
+
}),
|
|
61
|
+
};
|
|
37
62
|
}
|
|
38
63
|
};
|
|
39
64
|
exports.ActivityApiController = ActivityApiController;
|
|
@@ -53,6 +78,7 @@ __decorate([
|
|
|
53
78
|
exports.ActivityApiController = ActivityApiController = __decorate([
|
|
54
79
|
(0, swagger_1.ApiTags)('activity'),
|
|
55
80
|
(0, common_1.Controller)('api/activity'),
|
|
56
|
-
__metadata("design:paramtypes", [poll_run_history_service_1.PollRunHistoryService
|
|
81
|
+
__metadata("design:paramtypes", [poll_run_history_service_1.PollRunHistoryService,
|
|
82
|
+
prisma_service_1.PrismaService])
|
|
57
83
|
], ActivityApiController);
|
|
58
84
|
//# sourceMappingURL=activity-api.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-api.controller.js","sourceRoot":"","sources":["../../src/ui/activity-api.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAuE;AACvE,+EAAyE;AACzE,iDAA4D;AAE5D,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AAIf,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;
|
|
1
|
+
{"version":3,"file":"activity-api.controller.js","sourceRoot":"","sources":["../../src/ui/activity-api.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const vk_settings_schema_1 = require("../integrations/vibe-kanban/vk-settings.sc
|
|
|
6
6
|
Object.defineProperty(exports, "VIBE_KANBAN_UI_KEYS", { enumerable: true, get: function () { return vk_settings_schema_1.VIBE_KANBAN_UI_KEYS; } });
|
|
7
7
|
exports.SCHEDULER_UI_KEYS = [
|
|
8
8
|
'scheduled_sync_enabled',
|
|
9
|
+
'auto_create_issues',
|
|
9
10
|
'poll_interval_minutes',
|
|
10
11
|
'jitter_max_seconds',
|
|
11
12
|
'run_now_cooldown_seconds',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-ui-registry.js","sourceRoot":"","sources":["../../src/ui/integration-ui-registry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"integration-ui-registry.js","sourceRoot":"","sources":["../../src/ui/integration-ui-registry.ts"],"names":[],"mappings":";;;AA6BA,0DAEC;AA/BD,uFAAqF;AA0B5E,oGA1BA,wCAAmB,OA0BA;AAvBf,QAAA,iBAAiB,GAAsB;IAClD,wBAAwB;IACxB,oBAAoB;IACpB,uBAAuB;IACvB,oBAAoB;IACpB,0BAA0B;IAC1B,oBAAoB;CACrB,CAAC;AAGW,QAAA,yBAAyB,GAAsB;IAC1D,uBAAuB;IACvB,oBAAoB;IACpB,0BAA0B;IAC1B,oBAAoB;CACrB,CAAC;AAGW,QAAA,qBAAqB,GAAsB;IACtD,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC;AAKF,SAAgB,uBAAuB;IACrC,OAAO,yBAAiB,CAAC;AAC3B,CAAC"}
|
|
@@ -18,13 +18,79 @@
|
|
|
18
18
|
skipped_board_limit: true,
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
+
var OPTIMISTIC_KEY = 'vs_triage_optimistic';
|
|
22
|
+
|
|
23
|
+
function loadOptimistic() {
|
|
24
|
+
try {
|
|
25
|
+
return JSON.parse(localStorage.getItem(OPTIMISTIC_KEY) || '{}');
|
|
26
|
+
} catch {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function saveOptimistic(map) {
|
|
32
|
+
try {
|
|
33
|
+
localStorage.setItem(OPTIMISTIC_KEY, JSON.stringify(map));
|
|
34
|
+
} catch {
|
|
35
|
+
/* quota exceeded — ignore */
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function markOptimistic(prUrl, action) {
|
|
40
|
+
var map = loadOptimistic();
|
|
41
|
+
map[prUrl] = action;
|
|
42
|
+
saveOptimistic(map);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function clearOptimistic(prUrl) {
|
|
46
|
+
var map = loadOptimistic();
|
|
47
|
+
delete map[prUrl];
|
|
48
|
+
saveOptimistic(map);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function applyOptimistic(items) {
|
|
52
|
+
var map = loadOptimistic();
|
|
53
|
+
var dirty = false;
|
|
54
|
+
for (var i = 0; i < items.length; i++) {
|
|
55
|
+
var it = items[i];
|
|
56
|
+
var opt = map[it.prUrl];
|
|
57
|
+
if (!opt) continue;
|
|
58
|
+
var eff = it.effectiveDecision || it.decision;
|
|
59
|
+
if (opt === 'accept' && !isTriageable(eff)) {
|
|
60
|
+
delete map[it.prUrl];
|
|
61
|
+
dirty = true;
|
|
62
|
+
} else if (opt === 'decline' && eff === 'skipped_declined') {
|
|
63
|
+
delete map[it.prUrl];
|
|
64
|
+
dirty = true;
|
|
65
|
+
} else if (opt === 'reconsider' && isTriageable(eff)) {
|
|
66
|
+
delete map[it.prUrl];
|
|
67
|
+
dirty = true;
|
|
68
|
+
} else if (opt === 'accept') {
|
|
69
|
+
it.effectiveDecision = 'linked_existing';
|
|
70
|
+
it.decisionLabel = 'Accepted (pending refresh)';
|
|
71
|
+
} else if (opt === 'decline') {
|
|
72
|
+
it.effectiveDecision = 'skipped_declined';
|
|
73
|
+
it.decisionLabel = 'Declined (pending refresh)';
|
|
74
|
+
} else if (opt === 'reconsider') {
|
|
75
|
+
it.effectiveDecision = 'skipped_triage';
|
|
76
|
+
it.decisionLabel = 'Pending triage';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (dirty) saveOptimistic(map);
|
|
80
|
+
}
|
|
81
|
+
|
|
21
82
|
function isTriageable(decision) {
|
|
22
83
|
return TRIAGEABLE_DECISIONS[decision] === true;
|
|
23
84
|
}
|
|
24
85
|
|
|
86
|
+
function effectiveOf(it) {
|
|
87
|
+
return it.effectiveDecision || it.decision;
|
|
88
|
+
}
|
|
89
|
+
|
|
25
90
|
function triageSortKey(it) {
|
|
26
|
-
|
|
27
|
-
if (
|
|
91
|
+
var eff = effectiveOf(it);
|
|
92
|
+
if (isTriageable(eff)) return 0;
|
|
93
|
+
if (eff === 'skipped_declined') return 1;
|
|
28
94
|
return 2;
|
|
29
95
|
}
|
|
30
96
|
|
|
@@ -39,7 +105,8 @@
|
|
|
39
105
|
|
|
40
106
|
function triageActionButtons(it) {
|
|
41
107
|
var url = esc(it.prUrl);
|
|
42
|
-
|
|
108
|
+
var eff = effectiveOf(it);
|
|
109
|
+
if (isTriageable(eff)) {
|
|
43
110
|
return (
|
|
44
111
|
'<div class="triage-actions" style="margin-top:0.3rem">' +
|
|
45
112
|
'<button class="btn btn-sm primary js-triage-accept" data-pr-url="' +
|
|
@@ -51,7 +118,7 @@
|
|
|
51
118
|
'</div>'
|
|
52
119
|
);
|
|
53
120
|
}
|
|
54
|
-
if (
|
|
121
|
+
if (eff === 'skipped_declined') {
|
|
55
122
|
return (
|
|
56
123
|
'<div class="triage-actions" style="margin-top:0.3rem">' +
|
|
57
124
|
'<button class="btn btn-sm ghost js-triage-reconsider" data-pr-url="' +
|
|
@@ -65,6 +132,7 @@
|
|
|
65
132
|
|
|
66
133
|
function renderItemsTable(items) {
|
|
67
134
|
if (!items || !items.length) return '';
|
|
135
|
+
applyOptimistic(items);
|
|
68
136
|
var sorted = sortItemsForTriage(items);
|
|
69
137
|
var rows = sorted
|
|
70
138
|
.map(function (it) {
|
|
@@ -86,9 +154,10 @@
|
|
|
86
154
|
'<div class="muted" style="font-size:0.8rem">@' +
|
|
87
155
|
esc(it.authorLogin) +
|
|
88
156
|
'</div>';
|
|
89
|
-
var
|
|
157
|
+
var eff = effectiveOf(it);
|
|
158
|
+
var rowClass = isTriageable(eff)
|
|
90
159
|
? ' class="triage-pending-row"'
|
|
91
|
-
:
|
|
160
|
+
: eff === 'skipped_declined'
|
|
92
161
|
? ' class="triage-declined-row"'
|
|
93
162
|
: '';
|
|
94
163
|
return (
|
|
@@ -283,6 +352,8 @@
|
|
|
283
352
|
|
|
284
353
|
function triageAction(endpoint, prUrl, btn) {
|
|
285
354
|
btn.disabled = true;
|
|
355
|
+
markOptimistic(prUrl, endpoint);
|
|
356
|
+
void load();
|
|
286
357
|
fetch('/api/pr/' + endpoint, {
|
|
287
358
|
method: 'POST',
|
|
288
359
|
headers: { 'Content-Type': 'application/json' },
|
|
@@ -293,7 +364,8 @@
|
|
|
293
364
|
void load();
|
|
294
365
|
})
|
|
295
366
|
.catch(function () {
|
|
296
|
-
|
|
367
|
+
clearOptimistic(prUrl);
|
|
368
|
+
void load();
|
|
297
369
|
});
|
|
298
370
|
}
|
|
299
371
|
|
|
@@ -6,6 +6,7 @@ exports.integrationFieldsForUi = integrationFieldsForUi;
|
|
|
6
6
|
const integration_ui_registry_1 = require("./integration-ui-registry");
|
|
7
7
|
exports.SETTING_LABELS = {
|
|
8
8
|
scheduled_sync_enabled: 'Automatic polling — timer runs on the interval below. Manual Sync now always works. Override: VIBE_SQUIRE_SCHEDULED_SYNC_ENABLED',
|
|
9
|
+
auto_create_issues: 'Create Kanban issues automatically for matching PRs. When off, PRs appear in triage only until you promote them. Override: VIBE_SQUIRE_AUTO_CREATE_ISSUES',
|
|
9
10
|
poll_interval_minutes: 'Poll interval (minutes, min 5; manual Sync now ignores)',
|
|
10
11
|
jitter_max_seconds: 'Jitter max (seconds)',
|
|
11
12
|
run_now_cooldown_seconds: 'Run-now cooldown (seconds)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setting-labels.js","sourceRoot":"","sources":["../../src/ui/setting-labels.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"setting-labels.js","sourceRoot":"","sources":["../../src/ui/setting-labels.ts"],"names":[],"mappings":";;;AA4BA,4DAQC;AAED,wDASC;AA/CD,uEAAsE;AAEzD,QAAA,cAAc,GAA2B;IACpD,sBAAsB,EACpB,kIAAkI;IACpI,kBAAkB,EAChB,2JAA2J;IAC7J,qBAAqB,EACnB,yDAAyD;IAC3D,kBAAkB,EAAE,sBAAsB;IAC1C,wBAAwB,EAAE,4BAA4B;IACtD,kBAAkB,EAChB,qGAAqG;IACvG,uBAAuB,EACrB,0EAA0E;IAC5E,kBAAkB,EAChB,qEAAqE;IACvE,qBAAqB,EACnB,+DAA+D;IACjE,kBAAkB,EAAE,2BAA2B;IAC/C,uBAAuB,EACrB,4EAA4E;IAC9E,uBAAuB,EAAE,yBAAyB;CACnD,CAAC;AAKF,SAAgB,wBAAwB,CACtC,MAA8B;IAE9B,OAAO,mDAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7C,GAAG;QACH,KAAK,EAAE,sBAAc,CAAC,GAAG,CAAC,IAAI,GAAG;QACjC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;KACzB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,sBAAsB,CACpC,IAAuB,EACvB,MAA8B;IAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,GAAG;QACH,KAAK,EAAE,sBAAc,CAAC,GAAG,CAAC,IAAI,GAAG;QACjC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;KACzB,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -2,7 +2,23 @@ import type { SetupEvaluation } from '../setup/setup-evaluation.service';
|
|
|
2
2
|
import type { PollRunHistoryService } from '../sync/poll-run-history.service';
|
|
3
3
|
import type { UiNavEntry } from '../ports/ui-nav.types';
|
|
4
4
|
export type PollRunRowForActivity = Awaited<ReturnType<PollRunHistoryService['listRecentForUi']>>[number];
|
|
5
|
-
export
|
|
5
|
+
export type TriageLiveState = {
|
|
6
|
+
acceptedPrUrls: ReadonlySet<string>;
|
|
7
|
+
declinedPrUrls: ReadonlySet<string>;
|
|
8
|
+
};
|
|
9
|
+
export type ActivityItem = {
|
|
10
|
+
prUrl: string;
|
|
11
|
+
githubRepo: string;
|
|
12
|
+
prNumber: number;
|
|
13
|
+
prTitle: string;
|
|
14
|
+
authorLogin: string | null;
|
|
15
|
+
decision: string;
|
|
16
|
+
effectiveDecision: string;
|
|
17
|
+
decisionLabel: string;
|
|
18
|
+
detail: string | null;
|
|
19
|
+
kanbanIssueId: string | null;
|
|
20
|
+
};
|
|
21
|
+
export declare function presentActivityRunsForView(rows: PollRunRowForActivity[], live?: TriageLiveState): Array<{
|
|
6
22
|
id: string;
|
|
7
23
|
startedAt: string;
|
|
8
24
|
startedAtLabel: string;
|
|
@@ -22,17 +38,7 @@ export declare function presentActivityRunsForView(rows: PollRunRowForActivity[]
|
|
|
22
38
|
skippedTriage: number | null;
|
|
23
39
|
skippedDeclined: number | null;
|
|
24
40
|
itemCount: number;
|
|
25
|
-
items:
|
|
26
|
-
prUrl: string;
|
|
27
|
-
githubRepo: string;
|
|
28
|
-
prNumber: number;
|
|
29
|
-
prTitle: string;
|
|
30
|
-
authorLogin: string | null;
|
|
31
|
-
decision: string;
|
|
32
|
-
decisionLabel: string;
|
|
33
|
-
detail: string | null;
|
|
34
|
-
kanbanIssueId: string | null;
|
|
35
|
-
}>;
|
|
41
|
+
items: ActivityItem[];
|
|
36
42
|
}>;
|
|
37
43
|
export declare function escapeForPre(s: string): string;
|
|
38
44
|
export declare function destinationTypeLabel(t: string): string;
|
package/dist/ui/ui-presenter.js
CHANGED
|
@@ -11,6 +11,7 @@ exports.uiNavLocals = uiNavLocals;
|
|
|
11
11
|
exports.githubNotSourceRedirectUrl = githubNotSourceRedirectUrl;
|
|
12
12
|
exports.vibeKanbanNotDestinationRedirectUrl = vibeKanbanNotDestinationRedirectUrl;
|
|
13
13
|
const poll_run_labels_1 = require("../sync/poll-run-labels");
|
|
14
|
+
const poll_run_decisions_1 = require("../sync/poll-run-decisions");
|
|
14
15
|
function formatActivityRunTime(d) {
|
|
15
16
|
const t = d.getTime();
|
|
16
17
|
if (Number.isNaN(t)) {
|
|
@@ -18,7 +19,24 @@ function formatActivityRunTime(d) {
|
|
|
18
19
|
}
|
|
19
20
|
return d.toLocaleString();
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
+
const TRIAGE_DECISIONS = new Set([
|
|
23
|
+
poll_run_decisions_1.POLL_RUN_ITEM_DECISION.skippedTriage,
|
|
24
|
+
poll_run_decisions_1.POLL_RUN_ITEM_DECISION.skippedBoardLimit,
|
|
25
|
+
]);
|
|
26
|
+
const EMPTY_LIVE_STATE = {
|
|
27
|
+
acceptedPrUrls: new Set(),
|
|
28
|
+
declinedPrUrls: new Set(),
|
|
29
|
+
};
|
|
30
|
+
function resolveEffectiveDecision(decision, prUrl, live) {
|
|
31
|
+
if (!TRIAGE_DECISIONS.has(decision))
|
|
32
|
+
return decision;
|
|
33
|
+
if (live.acceptedPrUrls.has(prUrl))
|
|
34
|
+
return poll_run_decisions_1.POLL_RUN_ITEM_DECISION.linkedExisting;
|
|
35
|
+
if (live.declinedPrUrls.has(prUrl))
|
|
36
|
+
return poll_run_decisions_1.POLL_RUN_ITEM_DECISION.skippedDeclined;
|
|
37
|
+
return decision;
|
|
38
|
+
}
|
|
39
|
+
function presentActivityRunsForView(rows, live = EMPTY_LIVE_STATE) {
|
|
22
40
|
return rows.map((r) => ({
|
|
23
41
|
id: r.id,
|
|
24
42
|
startedAt: r.startedAt.toISOString(),
|
|
@@ -39,17 +57,21 @@ function presentActivityRunsForView(rows) {
|
|
|
39
57
|
skippedTriage: r.skippedTriage,
|
|
40
58
|
skippedDeclined: r.skippedDeclined,
|
|
41
59
|
itemCount: r.items.length,
|
|
42
|
-
items: r.items.map((i) =>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
items: r.items.map((i) => {
|
|
61
|
+
const eff = resolveEffectiveDecision(i.decision, i.prUrl, live);
|
|
62
|
+
return {
|
|
63
|
+
prUrl: i.prUrl,
|
|
64
|
+
githubRepo: i.githubRepo,
|
|
65
|
+
prNumber: i.prNumber,
|
|
66
|
+
prTitle: i.prTitle,
|
|
67
|
+
authorLogin: i.authorLogin,
|
|
68
|
+
decision: i.decision,
|
|
69
|
+
effectiveDecision: eff,
|
|
70
|
+
decisionLabel: (0, poll_run_labels_1.pollDecisionLabel)(eff),
|
|
71
|
+
detail: i.detail,
|
|
72
|
+
kanbanIssueId: i.kanbanIssueId,
|
|
73
|
+
};
|
|
74
|
+
}),
|
|
53
75
|
}));
|
|
54
76
|
}
|
|
55
77
|
function escapeForPre(s) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-presenter.js","sourceRoot":"","sources":["../../src/ui/ui-presenter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ui-presenter.js","sourceRoot":"","sources":["../../src/ui/ui-presenter.ts"],"names":[],"mappings":";;;AAgEA,gEA6DC;AAED,oCAMC;AAED,oDAKC;AAED,0CAKC;AAQD,kDAsBC;AAUD,4CAGC;AAKD,kCAQC;AAED,gEAIC;AAED,kFAIC;AApND,6DAA4E;AAC5E,mEAAoE;AAMpE,SAAS,qBAAqB,CAAC,CAAO;IACpC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IACvC,2CAAsB,CAAC,aAAa;IACpC,2CAAsB,CAAC,iBAAiB;CACzC,CAAC,CAAC;AAOH,MAAM,gBAAgB,GAAoB;IACxC,cAAc,EAAE,IAAI,GAAG,EAAE;IACzB,cAAc,EAAE,IAAI,GAAG,EAAE;CAC1B,CAAC;AAOF,SAAS,wBAAwB,CAC/B,QAAgB,EAChB,KAAa,EACb,IAAqB;IAErB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACrD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;QAChC,OAAO,2CAAsB,CAAC,cAAc,CAAC;IAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;QAChC,OAAO,2CAAsB,CAAC,eAAe,CAAC;IAChD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAeD,SAAgB,0BAA0B,CACxC,IAA6B,EAC7B,OAAwB,gBAAgB;IAuBxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;QACpC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;QAClD,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI;QAC/C,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,IAAA,gCAAc,EAAC,CAAC,CAAC,KAAK,CAAC;QACnC,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;QACtC,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;QAC9C,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;QAC9C,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,eAAe,EAAE,CAAC,CAAC,eAAe;QAClC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;QACzB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChE,OAAO;gBACL,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,iBAAiB,EAAE,GAAG;gBACtB,aAAa,EAAE,IAAA,mCAAiB,EAAC,GAAG,CAAC;gBACrC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,aAAa,EAAE,CAAC,CAAC,aAAa;aAC/B,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,YAAY,CAAC,CAAS;IACpC,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,oBAAoB,CAAC,CAAS;IAC5C,IAAI,CAAC,KAAK,aAAa,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACxC,CAAC;AAED,SAAgB,eAAe,CAAC,CAAS;IACvC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACxC,CAAC;AAQD,SAAgB,mBAAmB,CAAC,EAAmB;IACrD,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,aAAa,EAAE,CAAC;QAChD,IAAI,EAAE,CAAC,MAAM,KAAK,yBAAyB,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,gFAAgF;gBACtF,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,4EAA4E;gBAClF,QAAQ,EAAE,cAAc;gBACxB,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGY,QAAA,qBAAqB,GAA2B;IAC3D,uBAAuB,EACrB,6EAA6E;IAC/E,WAAW,EACT,4EAA4E;CAC/E,CAAC;AAEF,SAAgB,gBAAgB,CAAC,MAA0B;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,mBAAmB,CAAC;IACxC,OAAO,6BAAqB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAKD,SAAgB,WAAW,CAAC,qBAAmC;IAI7D,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B;IACxC,OAAO,oBAAoB,kBAAkB,CAC3C,0IAA0I,CAC3I,EAAE,CAAC;AACN,CAAC;AAED,SAAgB,mCAAmC;IACjD,OAAO,oBAAoB,kBAAkB,CAC3C,8JAA8J,CAC/J,EAAE,CAAC;AACN,CAAC"}
|
package/dist/ui/ui.controller.js
CHANGED
|
@@ -69,10 +69,12 @@ let UiController = class UiController {
|
|
|
69
69
|
const values = this.settings.listEffectiveNonSecret();
|
|
70
70
|
const ev = await this.setupEvaluation.evaluate();
|
|
71
71
|
const scheduledSyncEnabled = this.coreSettings.scheduledSyncEnabled;
|
|
72
|
+
const autoCreateIssues = this.coreSettings.autoCreateIssues;
|
|
72
73
|
return {
|
|
73
74
|
...(0, ui_presenter_1.uiNavLocals)(this.uiNav.getEntries()),
|
|
74
75
|
fields: (0, setting_labels_1.schedulerTextFieldsForUi)(values),
|
|
75
76
|
scheduledSyncEnabled,
|
|
77
|
+
autoCreateIssues,
|
|
76
78
|
saved: saved === '1',
|
|
77
79
|
error: err ? decodeURIComponent(err) : null,
|
|
78
80
|
resolvedSourceLabel: (0, ui_presenter_1.sourceTypeLabel)(ev.sourceType),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.controller.js","sourceRoot":"","sources":["../../src/ui/ui.controller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ui.controller.js","sourceRoot":"","sources":["../../src/ui/ui.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<div class="banner banner-error">{{error}}</div>
|
|
9
9
|
{{/if}}
|
|
10
10
|
{{#if saved}}
|
|
11
|
-
<div class="banner banner-ok">
|
|
11
|
+
<div class="banner banner-ok">Settings saved. Scheduler refreshed if the interval changed.</div>
|
|
12
12
|
{{/if}}
|
|
13
13
|
|
|
14
14
|
<div class="card">
|
|
@@ -51,6 +51,30 @@
|
|
|
51
51
|
<span>Off — timer disabled only</span>
|
|
52
52
|
</label>
|
|
53
53
|
</fieldset>
|
|
54
|
+
<fieldset class="fieldset-plain" style="margin-top: 1rem">
|
|
55
|
+
<legend class="field-label">Kanban issue creation</legend>
|
|
56
|
+
<p class="muted" style="margin: 0 0 0.75rem 0">
|
|
57
|
+
When off, matching PRs stay in triage until you create an issue from the operator UI. Env: <code>VIBE_SQUIRE_AUTO_CREATE_ISSUES</code>. Setting key: <code>auto_create_issues</code>
|
|
58
|
+
</p>
|
|
59
|
+
<label class="check-row">
|
|
60
|
+
<input
|
|
61
|
+
type="radio"
|
|
62
|
+
name="auto_create_issues"
|
|
63
|
+
value="true"
|
|
64
|
+
{{#if autoCreateIssues}}checked{{/if}}
|
|
65
|
+
/>
|
|
66
|
+
<span>On — create board issues during sync when caps allow</span>
|
|
67
|
+
</label>
|
|
68
|
+
<label class="check-row">
|
|
69
|
+
<input
|
|
70
|
+
type="radio"
|
|
71
|
+
name="auto_create_issues"
|
|
72
|
+
value="false"
|
|
73
|
+
{{#unless autoCreateIssues}}checked{{/unless}}
|
|
74
|
+
/>
|
|
75
|
+
<span>Off — triage only (no automatic issue creation)</span>
|
|
76
|
+
</label>
|
|
77
|
+
</fieldset>
|
|
54
78
|
<div class="form-grid" style="margin-top: 1rem">
|
|
55
79
|
{{#each fields}}
|
|
56
80
|
<label class="field">
|
|
@@ -61,7 +85,7 @@
|
|
|
61
85
|
{{/each}}
|
|
62
86
|
</div>
|
|
63
87
|
<div class="actions-row">
|
|
64
|
-
<button type="submit" class="btn primary">Save
|
|
88
|
+
<button type="submit" class="btn primary">Save settings</button>
|
|
65
89
|
</div>
|
|
66
90
|
</form>
|
|
67
91
|
</div>
|