crewly 1.20.328 → 1.20.329
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/config/skills/agent/core/publish-app/SKILL.md +9 -0
- package/dist/backend/backend/src/constants.d.ts +2 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +2 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/recurring-change-handoff.d.ts +10 -0
- package/dist/backend/backend/src/services/decisions/recurring-change-handoff.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/recurring-change-handoff.js +17 -2
- package/dist/backend/backend/src/services/decisions/recurring-change-handoff.js.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +11 -0
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +41 -3
- package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts +14 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js +26 -2
- package/dist/backend/backend/src/services/project-tickets/ticket-tracking.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +2 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +2 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts +14 -1
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js +26 -2
- package/dist/cli/backend/src/services/project-tickets/ticket-tracking.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
* nothing inside it can be re-included. When (and only when) git reports the
|
|
8
8
|
* tickets folder as ignored, this appends a small block to the project's
|
|
9
9
|
* `.gitignore` that re-includes `.crewly/`, re-ignores everything in it, then
|
|
10
|
-
* re-includes `tickets/`. Existing lines are never touched
|
|
10
|
+
* re-includes `tickets/`. Existing lines are never touched, and any existing
|
|
11
|
+
* `!.crewly/...` negations (e.g. `!.crewly/wiki/`) are re-emitted after the
|
|
12
|
+
* block's `.crewly/*` so the block cannot re-ignore what the project already
|
|
13
|
+
* tracks.
|
|
11
14
|
*
|
|
12
15
|
* @module services/project-tickets/ticket-tracking
|
|
13
16
|
*/
|
|
@@ -26,6 +29,16 @@ export type TicketTrackingOutcome =
|
|
|
26
29
|
| 'still-ignored';
|
|
27
30
|
/** Git runner (injectable for tests). */
|
|
28
31
|
export type GitRunner = (cwd: string, args: string[]) => Promise<GitResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Build the block to append: the header, `!.crewly/` and `.crewly/*`, then the
|
|
34
|
+
* project's existing `.crewly` negations, then the tickets re-includes. The
|
|
35
|
+
* block's own `.crewly/*` comes after the project's rules, so without the
|
|
36
|
+
* re-emitted negations it would hide everything they had re-included.
|
|
37
|
+
*
|
|
38
|
+
* @param current - Current `.gitignore` text
|
|
39
|
+
* @returns Block lines, in order
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildTicketsBlock(current: string): string[];
|
|
29
42
|
/**
|
|
30
43
|
* Make sure git tracks the project's tickets folder, appending the
|
|
31
44
|
* re-include block to `<project>/.gitignore` when it is ignored.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-tracking.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-tracking.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ticket-tracking.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGrE,qDAAqD;AACrD,MAAM,MAAM,qBAAqB;AAC/B,4CAA4C;AAC1C,YAAY;AACd,2EAA2E;GACzE,iBAAiB;AACnB,kCAAkC;GAChC,SAAS;AACX,yDAAyD;GACvD,WAAW;AACb,2EAA2E;GACzE,eAAe,CAAC;AAEpB,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAoB5E;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU3D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,SAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAyBvH"}
|
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
* nothing inside it can be re-included. When (and only when) git reports the
|
|
8
8
|
* tickets folder as ignored, this appends a small block to the project's
|
|
9
9
|
* `.gitignore` that re-includes `.crewly/`, re-ignores everything in it, then
|
|
10
|
-
* re-includes `tickets/`. Existing lines are never touched
|
|
10
|
+
* re-includes `tickets/`. Existing lines are never touched, and any existing
|
|
11
|
+
* `!.crewly/...` negations (e.g. `!.crewly/wiki/`) are re-emitted after the
|
|
12
|
+
* block's `.crewly/*` so the block cannot re-ignore what the project already
|
|
13
|
+
* tracks.
|
|
11
14
|
*
|
|
12
15
|
* @module services/project-tickets/ticket-tracking
|
|
13
16
|
*/
|
|
@@ -34,6 +37,27 @@ async function isTicketsFolderIgnored(projectPath, git) {
|
|
|
34
37
|
return false;
|
|
35
38
|
return null;
|
|
36
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Build the block to append: the header, `!.crewly/` and `.crewly/*`, then the
|
|
42
|
+
* project's existing `.crewly` negations, then the tickets re-includes. The
|
|
43
|
+
* block's own `.crewly/*` comes after the project's rules, so without the
|
|
44
|
+
* re-emitted negations it would hide everything they had re-included.
|
|
45
|
+
*
|
|
46
|
+
* @param current - Current `.gitignore` text
|
|
47
|
+
* @returns Block lines, in order
|
|
48
|
+
*/
|
|
49
|
+
export function buildTicketsBlock(current) {
|
|
50
|
+
const block = PROJECT_TICKET_CONSTANTS.GITIGNORE_BLOCK;
|
|
51
|
+
const own = new Set(block);
|
|
52
|
+
const kept = [];
|
|
53
|
+
for (const raw of current.split(/\r?\n/)) {
|
|
54
|
+
const line = raw.trim();
|
|
55
|
+
if (!/^!\/?\.crewly\//.test(line) || own.has(line) || kept.includes(line))
|
|
56
|
+
continue;
|
|
57
|
+
kept.push(line);
|
|
58
|
+
}
|
|
59
|
+
return [...block.slice(0, 3), ...kept, ...block.slice(3)];
|
|
60
|
+
}
|
|
37
61
|
/**
|
|
38
62
|
* Make sure git tracks the project's tickets folder, appending the
|
|
39
63
|
* re-include block to `<project>/.gitignore` when it is ignored.
|
|
@@ -76,7 +100,7 @@ export async function ensureTicketsTracked(projectPath, git = runGit) {
|
|
|
76
100
|
const alreadyThere = current.split(/\r?\n/).some((l) => l.trim() === marker);
|
|
77
101
|
if (!alreadyThere) {
|
|
78
102
|
const lead = current.length === 0 ? '' : current.endsWith('\n') ? '\n' : '\n\n';
|
|
79
|
-
await fs.appendFile(gitignorePath, `${lead}${
|
|
103
|
+
await fs.appendFile(gitignorePath, `${lead}${buildTicketsBlock(current).join('\n')}\n`, 'utf8');
|
|
80
104
|
}
|
|
81
105
|
return (await isTicketsFolderIgnored(root, git)) === false ? 'unignored' : 'still-ignored';
|
|
82
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-tracking.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-tracking.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ticket-tracking.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-tracking.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crewly",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.329",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-agent orchestration platform for AI coding teams — coordinates Claude Code, Gemini CLI, and Codex agents with a real-time web dashboard",
|
|
6
6
|
"workspaces": [
|