@arcships/morula-runtime 0.1.0-alpha.14 → 0.1.0-alpha.15
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/index.js
CHANGED
|
@@ -740,7 +740,7 @@ var BUILD_ID, BUILD_CONTEXTS, BUILD_DEFAULT_CONTEXT;
|
|
|
740
740
|
var init_build_env = __esm({
|
|
741
741
|
"../morula-cli-core/dist/build-env.js"() {
|
|
742
742
|
"use strict";
|
|
743
|
-
BUILD_ID = "
|
|
743
|
+
BUILD_ID = "20260924065153.0fc1a372";
|
|
744
744
|
BUILD_CONTEXTS = {
|
|
745
745
|
"local": "http://localhost:8080/api",
|
|
746
746
|
"test": "https://morula.basecastle.com/api",
|
|
@@ -4424,7 +4424,7 @@ init_dist2();
|
|
|
4424
4424
|
init_dist2();
|
|
4425
4425
|
|
|
4426
4426
|
// src/build-env.ts
|
|
4427
|
-
var BUILD_VERSION2 = "0.1.0-alpha.
|
|
4427
|
+
var BUILD_VERSION2 = "0.1.0-alpha.15";
|
|
4428
4428
|
|
|
4429
4429
|
// src/commands/daemon.ts
|
|
4430
4430
|
init_dist();
|
|
@@ -5076,7 +5076,7 @@ ${repoLine}- **\u4E0D\u8981**\u4F7F\u7528 \`gh\`\uFF08GitHub CLI \u5728\u672C\u5
|
|
|
5076
5076
|
\`\`\`
|
|
5077
5077
|
\u5185\u5BB9\u4E3A\u7ED3\u8BBA + \u5173\u952E\u95EE\u9898\uFF08\u6587\u4EF6:\u884C + \u5EFA\u8BAE\uFF09\uFF0C\u672B\u5C3E\u5E26\u7F72\u540D\u884C \`> \u7531\u81EA\u52A8\u5316\u300C<\u81EA\u52A8\u5316\u540D\u79F0>\u300D\u4E8E <\u65E5\u671F> \u751F\u6210\`\uFF08\u4F9B\u4E0B\u4E00\u8F6E\u81EA\u8BC6\u522B\uFF09\uFF1B
|
|
5078
5078
|
**\u4E0D\u8981\u7528 \`morula review submit\`**\uFF08\u90A3\u662F\u8BC4\u5BA1\u4EFB\u52A1\u7684\u673A\u5668\u534F\u8BAE\uFF0C\u4F1A\u9A71\u52A8\u4E1A\u52A1\u4EFB\u52A1\u72B6\u6001\u56DE\u9000\uFF09\u3002
|
|
5079
|
-
- \u5173\u8054/\u5173\u5355\u8BED\u4E49\u4E0E\u4E0A\u6587\u4E00\u81F4\
|
|
5079
|
+
- \u5173\u8054/\u5173\u5355\u8BED\u4E49\u4E0E\u4E0A\u6587\u4E00\u81F4\uFF1APR \u5173\u8054**\u53EA\u7531\u5E73\u53F0\u901A\u9053\u4EA7\u751F**\uFF08\u670D\u52A1\u7AEF\u4E0D\u8BFB PR \u6587\u672C\uFF09\uFF1B\u5173\u8054\u4E0A\u7684 PR merge \u540E\u670D\u52A1\u7AEF\u6309\u65E2\u6709\u6D41\u7A0B\u63A8\u8FDB\u4EFB\u52A1\u72B6\u6001\u3002
|
|
5080
5080
|
`;
|
|
5081
5081
|
}
|
|
5082
5082
|
var COLLABORATION_SKILL_BODY = `# Working on Morula issues\uFF08\u534F\u4F5C\u5951\u7EA6\uFF09
|
|
@@ -5130,15 +5130,20 @@ var COLLABORATION_SKILL_BODY = `# Working on Morula issues\uFF08\u534F\u4F5C\u59
|
|
|
5130
5130
|
> \u7EAF\u95EE\u7B54\u3001\u8C03\u7814\u3001\u5206\u6790\u3001\u672C\u5730\u8D77\u670D\u52A1\u7C7B\u4EFB\u52A1\uFF1A**\u4E0D\u5EFA\u5206\u652F\u3001\u4E0D\u63D0 PR\u3001\u6700\u7EC8\u8BC4\u8BBA\u4E0D\u51FA\u73B0 PR \u7AE0\u8282**\uFF0C\u76F4\u63A5\u56DE\u7B54\u7528\u6237\u95EE\u9898\u3002
|
|
5131
5131
|
|
|
5132
5132
|
- \u672C\u4EFB\u52A1\u7684\u5BF9\u5916\u7F16\u53F7\uFF08\u5728\u4EFB\u52A1\u770B\u677F URL / \u5217\u8868\u53EF\u89C1\uFF09\u53EF\u80FD\u5F62\u5982 \`STR-101\` \u6216 \`AGENT-463963\`\u3002
|
|
5133
|
-
- **PR \u5173\u8054**\
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
- \
|
|
5133
|
+
- **PR \u5173\u8054\u53EA\u7531\u5E73\u53F0\u901A\u9053\u4EA7\u751F**\uFF082026-09-24 \u5B9A\u6848\uFF09\uFF1A**\u53EA\u6709\u7ECF\u5E73\u53F0\u901A\u9053\u5EFA\u51FA\u6765\u7684 PR \u4F1A\u81EA\u52A8\u5173\u8054\u5230\u4EFB\u52A1**\u2014\u2014
|
|
5134
|
+
\`morula repo mr create\`\uFF08\u63A8\u8350\uFF09\u6216 \`gh pr create\` \u540E\u8C03 \`report_pr\` \u5DE5\u5177\u4E0A\u62A5\u3002\u5E73\u53F0\u6309\u81EA\u5DF1\u7684\u4E8B\u5B9E\uFF08\u54EA\u4E2A\u4EFB\u52A1\u3001
|
|
5135
|
+
\u54EA\u6761\u5206\u652F\u3001\u54EA\u4E2A workContext\uFF09\u8BA4\u9886\uFF0C**\u4E0D\u8BFB PR \u6587\u672C**\u3002
|
|
5136
|
+
- **\u4E0D\u8981\u5728 PR \u6807\u9898/\u6B63\u6587\u91CC\u9760\u4EFB\u52A1\u7F16\u53F7\u300C\u6807\u8BB0\u5F52\u5C5E\u300D**\uFF1A\u670D\u52A1\u7AEF**\u4E0D\u518D\u626B\u63CF** title/branch/body \u627E\u4EFB\u52A1\u7F16\u53F7\u3002
|
|
5137
|
+
\u4EBA\u5DE5\u5728 GitLab/GitHub \u4E0A\u624B\u5DE5\u5EFA\u7684 PR \u5E73\u53F0**\u4E0D\u5173\u8054**\uFF08\u4E0D\u8FDB\u5173\u8054\u533A\u3001\u4E0D\u89E6\u53D1\u81EA\u52A8\u8BC4\u5BA1\u3001\u4E0D\u9A71\u52A8\u4EFB\u52A1\u72B6\u6001\uFF09\u3002
|
|
5138
|
+
- **\u5173\u5355**\uFF1A\u5173\u8054\u4E0A\u7684 PR \u5408\u5E76\u540E\uFF0C\u670D\u52A1\u7AEF\u6309\u65E2\u6709\u6D41\u7A0B\u81EA\u52A8\u63A8\u8FDB\u4EFB\u52A1\u72B6\u6001\uFF08\u5168\u90E8 MR \u5408\u5E76 \u2192 \u5DF2\u5408\u5E76\uFF1B\u8FD9\u4E9B\u63D0\u4EA4\u8FDB\u5165\u751F\u4EA7\u5206\u652F \u2192 \u5DF2\u53D1\u5E03\uFF09\u3002
|
|
5139
|
+
\u4E0D\u9700\u8981 \`Closes\` \u4E4B\u7C7B\u5173\u952E\u5B57\u2014\u2014**\u5173\u8054\u672C\u8EAB\u5C31\u662F\u6388\u6743**\u3002
|
|
5140
|
+
- \u4ECD\u7136\u5EFA\u8BAE PR \u6807\u9898\u4EE5\u300C\`<\u4EFB\u52A1\u7F16\u53F7>: \u63CF\u8FF0\`\u300D\u5F00\u5934\u3001\u6B63\u6587\u5199\u4E00\u53E5 \`Closes <\u4EFB\u52A1\u7F16\u53F7>\`\uFF1A**\u8FD9\u662F\u7ED9\u4EBA\u770B\u7684\u53EF\u8BFB\u6027**\uFF08\u5E73\u53F0\u4E0D\u518D\u4F9D\u8D56\u5B83\uFF09\uFF0C
|
|
5141
|
+
\u4E14\u662F\u4EFB\u52A1\u4E0E PR \u4E4B\u95F4\u6700\u7701\u4E8B\u7684\u5BF9\u7167\u7EBF\u7D22\u3002
|
|
5137
5142
|
|
|
5138
5143
|
## 0.3 \u5206\u652F\u547D\u540D\uFF1A\u7531\u4F60\uFF08Agent\uFF09\u53D6\u540D\u5E76\u4E0A\u62A5
|
|
5139
5144
|
|
|
5140
5145
|
- **\u4EFB\u52A1 ID \u83B7\u53D6**\uFF1A\u672C\u4EFB\u52A1\u7684 AgentTask ID\uFF08UUID\uFF09\u5728\u7CFB\u7EDF\u63D0\u793A\u300C\u57FA\u672C\u4FE1\u606F\u300D\u6BB5\uFF08\u4E5F\u662F \`morula task get\`\uFF08\u65E0\u53C2\uFF09\u8FD4\u56DE\u7684 \`id\`\uFF0C\`.agent_context/task-context.md\` \u5F00\u5934\u4EA6\u6709\uFF09\u3002\u9700\u8981\u8C03\u7528 \`morula task branch\` \u65F6\u7528\u5B83\u4F5C\u4E3A taskId\u3002
|
|
5141
|
-
- **\u91CD\u8981\u533A\u5206**\uFF1A\`morula task branch <taskId>\` \u7684 taskId \u7528**\u672C\u4EFB\u52A1 UUID**\uFF08\u673A\u5668\u534F\u8BAE\uFF09\
|
|
5146
|
+
- **\u91CD\u8981\u533A\u5206**\uFF1A\`morula task branch <taskId>\` \u7684 taskId \u7528**\u672C\u4EFB\u52A1 UUID**\uFF08\u673A\u5668\u534F\u8BAE\uFF09\uFF1BMR \u6807\u9898\u91CC\u7684\u4EFB\u52A1\u7F16\u53F7\u7528**\u5BF9\u5916\u7F16\u53F7 code**\uFF08\u5982 \`AGENT-958201\`\uFF09\u2014\u2014\u4F46\u6CE8\u610F**\u7F16\u53F7\u53EA\u5F71\u54CD\u53EF\u8BFB\u6027\uFF0C\u4E0D\u518D\u5F71\u54CD\u5173\u8054**\uFF08\u670D\u52A1\u7AEF\u4E0D\u8BFB PR \u6587\u672C\uFF0C\u89C1\u7B2C 0.2 / 2 \u6761\uFF09\u3002
|
|
5142
5147
|
- **\u53EA\u6709\u9700\u8981\u6539\u4EE3\u7801\u5E76\u63A8\u5206\u652F\u7684\u4EFB\u52A1\u624D\u53D6\u540D**\uFF1B\u7EAF\u95EE\u7B54/\u53EA\u8BFB\u8C03\u7814/\u672C\u5730\u8D77\u670D\u52A1\u4E0D\u5EFA\u5206\u652F\uFF08\u89C1\u7B2C 3 \u6761\u51B3\u7B56\u6811\uFF09\u3002
|
|
5143
5148
|
- **\u5148\u68C0\u67E5\u5F53\u524D\u5206\u652F**\uFF1A\u82E5\u4ED3\u5E93\u5DF2\u6709 feature \u5206\u652F\uFF08\u540C\u4EFB\u52A1/\u540C\u4E00\u6539\u52A8\u95ED\u73AF\u7684\u540E\u7EED\u8F6E\u6B21\u590D\u7528\uFF09\uFF0C**\u76F4\u63A5\u7EE7\u7EED\u7528\u5F53\u524D\u5206\u652F\uFF0C\u4E0D\u8981\u65B0\u5EFA**\uFF08\u5728\u4ED3\u5E93\u76EE\u5F55\u5185\u6267\u884C\uFF09\uFF1A
|
|
5144
5149
|
\`\`\`bash
|
|
@@ -5220,7 +5225,7 @@ var COLLABORATION_SKILL_BODY = `# Working on Morula issues\uFF08\u534F\u4F5C\u59
|
|
|
5220
5225
|
- **\u82E5\u4EFB\u52A1\u6D89\u53CA\u591A\u4E2A\u4ED3\u5E93\uFF08\u591A\u4ED3\u5E93\u4EFB\u52A1\uFF09**\uFF1A\u6D89\u53CA\u54EA\u4E9B\u4ED3\u5E93\u7531**\u4F60**\u7ED3\u5408\u4EFB\u52A1\u63CF\u8FF0\u5224\u65AD\uFF08\u4EFB\u52A1\u63CF\u8FF0\u91CC\u7684\u300C\u6D89\u53CA\u4ED3\u5E93\u300D\u662F\u7BA1\u5BB6\u7684\u521D\u59CB\u5224\u65AD\uFF1B\u7A7A\u95F4\u7ED1\u5B9A\u4E86\u54EA\u4E9B\u4ED3\u5E93\u7528 \`morula repo list --space <spaceId>\` \u67E5\uFF1B\u6267\u884C\u4E2D\u53D1\u73B0\u8FD8\u9700\u6539\u52A8\u5176\u4ED6\u4ED3\u5E93\u65F6\uFF0C\u81EA\u884C prepare \u62C9\u53D6\uFF09\uFF0C**\u4E0D\u9700\u8981\u5411\u7528\u6237\u9010\u4E2A\u786E\u8BA4**\uFF1A
|
|
5221
5226
|
1. \u4E3B\u4ED3\u5E93\uFF1A\u5728\u5B83\u7684\u5B50\u76EE\u5F55\u5185\u76F4\u63A5 git \u64CD\u4F5C\uFF08\u5DE5\u4F5C\u533A\u6839\u4E0D\u662F\u4ED3\u5E93\uFF09\uFF1B
|
|
5222
5227
|
2. \u5176\u4ED6\u4ED3\u5E93\u7528 \`morula repo prepare <taskId> <repoFullName>\` \u7269\u5316\u5230\u4EFB\u52A1\u5DE5\u4F5C\u533A\u6839\u4E0B\uFF08**\u4E0E\u4E3B\u4ED3\u5E93\u540C\u7EA7\u7684\u5B50\u76EE\u5F55**\uFF0C\u672C\u5730 daemon \u7AEF\u70B9\uFF0C\u672C\u8F6E\u7ACB\u5373\u7269\u5316\u5E76\u8FD4\u56DE\u8DEF\u5F84\uFF1Bgit \u534F\u8BAE\u62C9\u53D6\uFF0C\u4E0D\u8D70\u5E73\u53F0 API\uFF09\uFF1B
|
|
5223
|
-
3. \u5728\u54EA\u4E2A\u4ED3\u5E93\u6539\u52A8\uFF0C\u5C31\u5728\u54EA\u4E2A\u4ED3\u5E93\u5185\u5EFA\u5206\u652F\uFF08\u7B2C 0.3 \u6761\u547D\u540D\u89C4\u8303\uFF09\u3001\u63A8\u5206\u652F\u5E76\u5EFA PR/MR
|
|
5228
|
+
3. \u5728\u54EA\u4E2A\u4ED3\u5E93\u6539\u52A8\uFF0C\u5C31\u5728\u54EA\u4E2A\u4ED3\u5E93\u5185\u5EFA\u5206\u652F\uFF08\u7B2C 0.3 \u6761\u547D\u540D\u89C4\u8303\uFF09\u3001\u63A8\u5206\u652F\u5E76**\u7ECF\u5E73\u53F0\u901A\u9053\u5EFA PR/MR**\uFF08\`morula repo mr create\` \u4F18\u5148\uFF1B\u6807\u9898\u5E26\u4EFB\u52A1\u7F16\u53F7\u4EC5\u4E3A\u53EF\u8BFB\u6027\uFF09\u3002**\u53EA\u6709\u7ECF\u5E73\u53F0\u901A\u9053\u5EFA\u7684 PR \u624D\u4F1A\u5173\u8054\u5230\u672C\u4EFB\u52A1**\uFF08\u670D\u52A1\u7AEF\u4E0D\u8BFB PR \u6587\u672C\uFF0C\u89C1\u7B2C 2 \u6761\uFF09\u3002**\u5206\u652F\u540D\u9010\u4ED3\u4E0A\u62A5**\uFF1A\u4E3B\u4ED3\u5E93\uFF08\u5176\u5B50\u76EE\u5F55\uFF09\u7528 \`morula task branch <taskId> --name <\u5206\u652F\u540D>\`\uFF1B\u6B21\u4ED3\u5E93\uFF08\u540C\u7EA7\u5B50\u76EE\u5F55\uFF09\u7528 \`morula task branch <taskId> --name <\u5206\u652F\u540D> --repo <owner/name>\` \u2014\u2014 \u670D\u52A1\u7AEF\u636E\u6B64\u628A\u5206\u652F\u540D\u5199\u5230\u8BE5\u4ED3\u5E93\u7684\u5DE5\u4F5C\u4E0A\u4E0B\u6587\uFF08\u5E73\u53F0\u4FA7\u9010\u4ED3\u5EFA MR \u515C\u5E95\u3001\u4EA4\u4ED8\u6E05\u5355\u90FD\u4F9D\u8D56\u5B83\uFF1B\u4E0D\u62A5\u5219\u4E00\u76F4\u505C\u5728\u5360\u4F4D\u5206\u652F\u540D \`morula/tmp-*\`\uFF0C\u5E73\u53F0\u627E\u4E0D\u5230\u4F60\u7684\u5206\u652F\uFF09\uFF1B
|
|
5224
5229
|
4. prepare \u76EE\u5F55\u4E8C\u6B21\u8C03\u7528\u4F1A fetch \u66F4\u65B0\u4F46**\u4E0D\u52A8\u5DE5\u4F5C\u533A**\u2014\u2014\u8DE8\u8F6E\u590D\u7528\u65F6\u5148 \`git status\` \u786E\u8BA4\u73B0\u573A\u3002
|
|
5225
5230
|
- **\u5B89\u5168\u8FB9\u754C**\uFF1A\u53EA\u5728\u672C\u4EFB\u52A1\u7684\u4EFB\u52A1\u5DE5\u4F5C\u533A\u6839\uFF08\u53CA\u5176\u4ED3\u5E93\u5B50\u76EE\u5F55\uFF09\u5185\u64CD\u4F5C\uFF1B\u7981\u6B62\u63A2\u7D22/\u4FEE\u6539\u5DE5\u4F5C\u533A\u6839\u4E4B\u5916\u7684\u8DEF\u5F84\uFF08\u5C24\u5176 daemon \u6839\u76EE\u5F55\u4E0B\u5176\u4ED6\u4EFB\u52A1\u7684 \`repos/\`\u3001\`worktrees/\`\u3001\`scratch/\`\uFF09\u3002
|
|
5226
5231
|
- **\u672C\u5730\u9A8C\u8BC1\u670D\u52A1\u7AEF\u53E3\u9694\u79BB**\uFF08issues/local-backend-watch-instability.md\uFF09\uFF1A\u82E5\u4EFB\u52A1\u9700\u8981\u542F\u52A8\u672C\u5730\u670D\u52A1\u9A8C\u8BC1\uFF08\u5982 \`npm run dev\` / \`nest start\` \u7B49\uFF09\uFF0C**\u5FC5\u987B\u4F7F\u7528\u975E\u5E73\u53F0\u5360\u7528\u7AEF\u53E3**\u2014\u2014\u7ED1\u5B9A \`127.0.0.1\` \u7684\u9AD8\u4F4D\u968F\u673A\u7AEF\u53E3\uFF08\u5982 127.0.0.1:18080+\uFF09\uFF0C**\u7981\u6B62**\u4F7F\u7528 \`8080\`\uFF08\u5E73\u53F0\u540E\u7AEF\uFF09\u53CA \`15173\`\uFF08\u5E73\u53F0\u524D\u7AEF\uFF09\u7B49\u5E73\u53F0\u5360\u7528\u7AEF\u53E3\uFF0C\u4E5F\u4E0D\u8981\u4F9D\u8D56\u7EC8\u7AEF\u4F1A\u8BDD\u5B58\u6D3B\uFF08\u540E\u53F0\u8FDB\u7A0B\u65B9\u5F0F\u542F\u52A8\uFF0C\u7528 \`nohup\`/\`disown\` \u6216 \`&!\` \u8131\u79BB\uFF09\uFF1B\u542F\u52A8\u540E\u81EA\u6D4B\u53EF\u7528\u5373\u53EF\uFF0C\u4E0D\u9700\u8981\uFF08\u4E5F\u4E0D\u5E94\uFF09\u8BA9\u5E73\u53F0\u4FA7\u8BBF\u95EE\u3002\u4E91\u7AEF\u6C99\u7BB1\u5316\u540E\u7531\u6C99\u7BB1\u7F51\u7EDC\u7B56\u7565\u515C\u5E95\u3002
|
|
@@ -5320,13 +5325,15 @@ morula task inbox --peek # \u53EA\u770B\u4E0D\u53D6\uFF08\u786E\u8BA4\u6709\
|
|
|
5320
5325
|
|
|
5321
5326
|
> \u4E3A\u4EC0\u4E48\u662F\u8FD9\u56DB\u4E2A\u65F6\u673A\uFF1A\u68C0\u67E5\u662F**\u5DE5\u5177\u8C03\u7528**\uFF0C\u6709 token \u4E0E\u5EF6\u8FDF\u5F00\u9500\uFF1B\u300C\u65E0\u6D88\u606F\u7ACB\u5373\u7EE7\u7EED\u300D\u662F\u4E3A\u4E86\u4E0D\u8BA9\u68C0\u67E5\u70B9\u628A\u4E3B\u7EBF\u5E26\u504F\u3002
|
|
5322
5327
|
|
|
5323
|
-
## 2. PR \
|
|
5328
|
+
## 2. PR \u5173\u8054\uFF1A\u53EA\u8D70\u5E73\u53F0\u901A\u9053
|
|
5324
5329
|
|
|
5325
|
-
- **\
|
|
5326
|
-
\
|
|
5327
|
-
- **\
|
|
5328
|
-
|
|
5329
|
-
-
|
|
5330
|
+
- **\u5173\u8054\u7684\u552F\u4E00\u6765\u6E90\u662F\u5E73\u53F0\u901A\u9053**\uFF082026-09-24 \u5B9A\u6848\uFF09\uFF1A\`morula repo mr create\`\uFF08\u63A8\u8350\uFF09\u5EFA PR \u65F6\u670D\u52A1\u7AEF\u5F53\u573A\u843D\u5173\u8054\uFF1B
|
|
5331
|
+
\u6216 \`gh pr create\` \u4E4B\u540E\u8C03 \`report_pr\` \u5DE5\u5177\u4E0A\u62A5\u3002**\u670D\u52A1\u7AEF\u4E0D\u8BFB PR \u6587\u672C**\u2014\u2014title/branch/body \u91CC\u5199\u4EC0\u4E48\u4EFB\u52A1\u7F16\u53F7\u90FD\u4E0D\u4F1A\u5173\u8054\u3002
|
|
5332
|
+
- **\u4EBA\u5DE5\u5728 GitLab/GitHub \u4E0A\u624B\u5DE5\u5EFA\u7684 PR\uFF0C\u5E73\u53F0\u4E0D\u5173\u8054**\uFF1A\u4E0D\u8FDB\u4EFB\u52A1\u5173\u8054\u533A\u3001\u4E0D\u89E6\u53D1\u81EA\u52A8\u8BC4\u5BA1\u3001\u4E0D\u9A71\u52A8\u4EFB\u52A1\u72B6\u6001\u3002
|
|
5333
|
+
\u5982\u679C\u4F60\u5E0C\u671B\u4E00\u6761 PR \u5173\u8054\u5230\u672C\u4EFB\u52A1\uFF0C\u5C31\u5FC5\u987B\u8D70\u4E0A\u9762\u4E24\u6761\u5E73\u53F0\u901A\u9053\u4E4B\u4E00\u3002
|
|
5334
|
+
- **\u5173\u5355\u4E0D\u9700\u8981\u5173\u952E\u5B57**\uFF1A\u5173\u8054\u4E0A\u7684 PR \u5408\u5E76\u540E\uFF0C\u670D\u52A1\u7AEF\u6309\u65E2\u6709\u6D41\u7A0B\u63A8\u8FDB\u4EFB\u52A1\u72B6\u6001
|
|
5335
|
+
\uFF08\u5168\u90E8 MR \u5408\u5E76 \u2192 \u5DF2\u5408\u5E76\uFF1B\u8FD9\u4E9B\u63D0\u4EA4\u8FDB\u5165\u751F\u4EA7\u5206\u652F \u2192 \u5DF2\u53D1\u5E03\uFF09\u3002**\u5173\u8054\u672C\u8EAB\u5C31\u662F\u6388\u6743**\u3002
|
|
5336
|
+
- \u63A8\u8350\uFF08\u53EF\u8BFB\u6027\uFF0C\u4E0D\u662F\u5173\u8054\u624B\u6BB5\uFF09\uFF1Atitle \u4EE5\u300CSTR-101: \u63CF\u8FF0\u300D\u5F00\u5934\u3001body \u5199\u4E00\u53E5 \`Closes STR-101\`\u2014\u2014\u4FBF\u4E8E\u4EBA\u548C\u5E73\u53F0\u65E5\u5FD7\u5BF9\u7167\u3002
|
|
5330
5337
|
|
|
5331
5338
|
## 3. \u4EC0\u4E48\u65F6\u5019\u63A8\u5206\u652F\u3001\u63D0 PR\uFF08\u51B3\u7B56\u6811\uFF09
|
|
5332
5339
|
|
|
@@ -5469,10 +5476,10 @@ var COLLABORATION_SKILL_SOURCE_MAP = `# morula-working-on-issues \u2014 \u5951\u
|
|
|
5469
5476
|
|
|
5470
5477
|
| \u5951\u7EA6 | \u670D\u52A1\u7AEF\u5B9E\u73B0 | \u4F4D\u7F6E |
|
|
5471
5478
|
|------|-----------|------|
|
|
5472
|
-
|
|
|
5473
|
-
|
|
|
5474
|
-
|
|
|
5475
|
-
|
|
|
5479
|
+
| PR \u5173\u8054**\u53EA\u7531\u5E73\u53F0\u901A\u9053\u4EA7\u751F**\uFF08\u670D\u52A1\u7AEF\u4E0D\u8BFB PR \u6587\u672C\uFF09 | \u5E73\u53F0\u901A\u9053\u5EFA\u94FE\uFF08\`reportPrLinkByAgent\`\uFF09+ webhook \u6309 \`(\u79DF\u6237, \u4ED3\u5E93, PR \u53F7)\` \u5B9A\u4F4D**\u5DF2\u5B58\u5728**\u7684\u94FE\u63A5 \u2192 \u53EA\u66F4\u65B0\u72B6\u6001 | \`src/modules/vcs-integration/link/vcs-link.service.ts\`\uFF08\`findLinkedRows\` / \`handlePullRequest\`\uFF09 |
|
|
5480
|
+
| \u672A\u5173\u8054\u7684 PR\uFF08\u4EBA\u5DE5\u624B\u5DE5\u5EFA\uFF09\u2192 \u4E0D\u5EFA\u94FE\u3001\u4E0D\u6D41\u8F6C\u3001\u7559\u75D5 | \u540C\u4E0A\uFF08\u5B9A\u4F4D\u4E0D\u5230\u5373\u8FD4\u56DE\uFF0C\u5199\u300C\u672A\u5173\u8054\u4EFB\u4F55\u4EFB\u52A1\u300D\u65E5\u5FD7\uFF09 | \u540C\u4E0A |
|
|
5481
|
+
| merge \u5173\u5355\uFF1A**\u94FE\u63A5\u5B58\u5728\u5373\u6388\u6743**\uFF08\u65E0\u9700 \`Closes\` \u5173\u952E\u5B57\uFF09 | merged/closed \u2192 \u591A\u4ED3\u5E93\u6C47\u603B \u2192 \`closeObject\` | \`vcs-link.service.ts\`\uFF08\`closeObject\`\uFF09 |
|
|
5482
|
+
| \u7EC8\u6001\u4E0D\u53EF\u88AB\u964D\u7EA7\uFF08\`released\` \u4E0D\u88AB \`closed\`/\`merged\` \u8986\u76D6\uFF1B\`merged \u2192 released\` \u653E\u884C\uFF09 | \`isTerminalDowngrade\`\uFF08\u9886\u57DF\u5C42\u552F\u4E00\u5B9A\u4E49\uFF09+ \`ObjectService.update\` \u4E0D\u53D8\u91CF | \`domain/lifecycle-state.ts\`\u3001\`object.service.ts\` |
|
|
5476
5483
|
|
|
5477
5484
|
## 2. \u4E0E\u5E73\u53F0\u4EA4\u4E92\u53EA\u80FD\u8D70 morula CLI
|
|
5478
5485
|
|
|
@@ -5502,7 +5509,7 @@ var COLLABORATION_SKILL_SOURCE_MAP = `# morula-working-on-issues \u2014 \u5951\u
|
|
|
5502
5509
|
|
|
5503
5510
|
| \u5951\u7EA6 | \u5B9E\u73B0 | \u4F4D\u7F6E |
|
|
5504
5511
|
|------|------|------|
|
|
5505
|
-
| merge \u81EA\u52A8\u5173\u5355\uFF08\u670D\u52A1\u7AEF\u9A71\u52A8\u72B6\u6001\uFF09 | webhook merged \u2192
|
|
5512
|
+
| merge \u81EA\u52A8\u5173\u5355\uFF08\u670D\u52A1\u7AEF\u9A71\u52A8\u72B6\u6001\uFF09 | webhook merged \u2192 \u6309\u5E73\u53F0\u4E8B\u5B9E\u5B9A\u4F4D\u5DF2\u5173\u8054\u94FE\u63A5 \u2192 \u6C47\u603B \u2192 Object \u5B8C\u6210 | \`src/modules/vcs-integration/webhook/vcs-event.service.ts\`\u3001\`link/vcs-link.service.ts\` |
|
|
5506
5513
|
| agent \u4E0D\u8C03 CLI \u6539\u72B6\u6001 | \u534F\u4F5C\u5951\u7EA6\u7B2C 4 \u6761\u3002**\u6CE8\u610F\uFF1ACLI \u6709 \`morula task state <id> --state <code>\`**\uFF08\u673A\u5668\u534F\u8BAE \`POST /agent-tasks/:id/state\`\uFF0C\u4F9B\u5E73\u53F0/\u81EA\u6D41\u8F6C\u4F7F\u7528\uFF09\u2014\u2014\u662F**\u5951\u7EA6\u8981\u6C42 agent \u4E0D\u8C03\u7528**\u5B83\uFF0C\u4E0D\u662F\u300CCLI \u6CA1\u6709\u8FD9\u4E2A\u547D\u4EE4\u300D | \`packages/morula-cli/src/commands/task.ts\`\uFF08action \`state\`\uFF09\u3001\`src/modules/agent-task/agent-task.controller.ts\`\uFF08\u7AEF\u70B9\uFF09 |
|
|
5507
5514
|
|
|
5508
5515
|
## 4.1 \u8BC4\u5BA1\u4EFB\u52A1\u7ED3\u8BBA\u56DE\u4F20\uFF08morula review submit\uFF09
|
package/dist/morula.js
CHANGED
|
@@ -704,8 +704,8 @@ function page(ok, message) {
|
|
|
704
704
|
}
|
|
705
705
|
|
|
706
706
|
// ../morula-cli-core/dist/build-env.js
|
|
707
|
-
var BUILD_VERSION = "0.1.0-alpha.
|
|
708
|
-
var BUILD_ID = "
|
|
707
|
+
var BUILD_VERSION = "0.1.0-alpha.15";
|
|
708
|
+
var BUILD_ID = "20260924065153.0fc1a372";
|
|
709
709
|
var BUILD_CONTEXTS = {
|
|
710
710
|
"local": "http://localhost:8080/api",
|
|
711
711
|
"test": "https://morula.basecastle.com/api",
|
package/dist/plugin/plugin.json
CHANGED
|
@@ -60,15 +60,20 @@ allowed-tools: Bash(morula *), Bash(git *), Bash(gh *)
|
|
|
60
60
|
> 纯问答、调研、分析、本地起服务类任务:**不建分支、不提 PR、最终评论不出现 PR 章节**,直接回答用户问题。
|
|
61
61
|
|
|
62
62
|
- 本任务的对外编号(在任务看板 URL / 列表可见)可能形如 `STR-101` 或 `AGENT-463963`。
|
|
63
|
-
- **PR
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
-
|
|
63
|
+
- **PR 关联只由平台通道产生**(2026-09-24 定案):**只有经平台通道建出来的 PR 会自动关联到任务**——
|
|
64
|
+
`morula repo mr create`(推荐)或 `gh pr create` 后调 `report_pr` 工具上报。平台按自己的事实(哪个任务、
|
|
65
|
+
哪条分支、哪个 workContext)认领,**不读 PR 文本**。
|
|
66
|
+
- **不要在 PR 标题/正文里靠任务编号「标记归属」**:服务端**不再扫描** title/branch/body 找任务编号。
|
|
67
|
+
人工在 GitLab/GitHub 上手工建的 PR 平台**不关联**(不进关联区、不触发自动评审、不驱动任务状态)。
|
|
68
|
+
- **关单**:关联上的 PR 合并后,服务端按既有流程自动推进任务状态(全部 MR 合并 → 已合并;这些提交进入生产分支 → 已发布)。
|
|
69
|
+
不需要 `Closes` 之类关键字——**关联本身就是授权**。
|
|
70
|
+
- 仍然建议 PR 标题以「`<任务编号>: 描述`」开头、正文写一句 `Closes <任务编号>`:**这是给人看的可读性**(平台不再依赖它),
|
|
71
|
+
且是任务与 PR 之间最省事的对照线索。
|
|
67
72
|
|
|
68
73
|
## 0.3 分支命名:由你(Agent)取名并上报
|
|
69
74
|
|
|
70
75
|
- **任务 ID 获取**:本任务的 AgentTask ID(UUID)在系统提示「基本信息」段(也是 `morula task get`(无参)返回的 `id`,`.agent_context/task-context.md` 开头亦有)。需要调用 `morula task branch` 时用它作为 taskId。
|
|
71
|
-
- **重要区分**:`morula task branch <taskId>` 的 taskId 用**本任务 UUID
|
|
76
|
+
- **重要区分**:`morula task branch <taskId>` 的 taskId 用**本任务 UUID**(机器协议);MR 标题里的任务编号用**对外编号 code**(如 `AGENT-958201`)——但注意**编号只影响可读性,不再影响关联**(服务端不读 PR 文本,见第 0.2 / 2 条)。
|
|
72
77
|
- **只有需要改代码并推分支的任务才取名**;纯问答/只读调研/本地起服务不建分支(见第 3 条决策树)。
|
|
73
78
|
- **先检查当前分支**:若仓库已有 feature 分支(同任务/同一改动闭环的后续轮次复用),**直接继续用当前分支,不要新建**(在仓库目录内执行):
|
|
74
79
|
```bash
|
|
@@ -150,7 +155,7 @@ allowed-tools: Bash(morula *), Bash(git *), Bash(gh *)
|
|
|
150
155
|
- **若任务涉及多个仓库(多仓库任务)**:涉及哪些仓库由**你**结合任务描述判断(任务描述里的「涉及仓库」是管家的初始判断;空间绑定了哪些仓库用 `morula repo list --space <spaceId>` 查;执行中发现还需改动其他仓库时,自行 prepare 拉取),**不需要向用户逐个确认**:
|
|
151
156
|
1. 主仓库:在它的子目录内直接 git 操作(工作区根不是仓库);
|
|
152
157
|
2. 其他仓库用 `morula repo prepare <taskId> <repoFullName>` 物化到任务工作区根下(**与主仓库同级的子目录**,本地 daemon 端点,本轮立即物化并返回路径;git 协议拉取,不走平台 API);
|
|
153
|
-
3. 在哪个仓库改动,就在哪个仓库内建分支(第 0.3
|
|
158
|
+
3. 在哪个仓库改动,就在哪个仓库内建分支(第 0.3 条命名规范)、推分支并**经平台通道建 PR/MR**(`morula repo mr create` 优先;标题带任务编号仅为可读性)。**只有经平台通道建的 PR 才会关联到本任务**(服务端不读 PR 文本,见第 2 条)。**分支名逐仓上报**:主仓库(其子目录)用 `morula task branch <taskId> --name <分支名>`;次仓库(同级子目录)用 `morula task branch <taskId> --name <分支名> --repo <owner/name>` —— 服务端据此把分支名写到该仓库的工作上下文(平台侧逐仓建 MR 兜底、交付清单都依赖它;不报则一直停在占位分支名 `morula/tmp-*`,平台找不到你的分支);
|
|
154
159
|
4. prepare 目录二次调用会 fetch 更新但**不动工作区**——跨轮复用时先 `git status` 确认现场。
|
|
155
160
|
- **安全边界**:只在本任务的任务工作区根(及其仓库子目录)内操作;禁止探索/修改工作区根之外的路径(尤其 daemon 根目录下其他任务的 `repos/`、`worktrees/`、`scratch/`)。
|
|
156
161
|
- **本地验证服务端口隔离**(issues/local-backend-watch-instability.md):若任务需要启动本地服务验证(如 `npm run dev` / `nest start` 等),**必须使用非平台占用端口**——绑定 `127.0.0.1` 的高位随机端口(如 127.0.0.1:18080+),**禁止**使用 `8080`(平台后端)及 `15173`(平台前端)等平台占用端口,也不要依赖终端会话存活(后台进程方式启动,用 `nohup`/`disown` 或 `&!` 脱离);启动后自测可用即可,不需要(也不应)让平台侧访问。云端沙箱化后由沙箱网络策略兜底。
|
|
@@ -250,13 +255,15 @@ morula task inbox --peek # 只看不取(确认有没有新意见,不标
|
|
|
250
255
|
|
|
251
256
|
> 为什么是这四个时机:检查是**工具调用**,有 token 与延迟开销;「无消息立即继续」是为了不让检查点把主线带偏。
|
|
252
257
|
|
|
253
|
-
## 2. PR
|
|
258
|
+
## 2. PR 关联:只走平台通道
|
|
254
259
|
|
|
255
|
-
-
|
|
256
|
-
|
|
257
|
-
-
|
|
258
|
-
|
|
259
|
-
-
|
|
260
|
+
- **关联的唯一来源是平台通道**(2026-09-24 定案):`morula repo mr create`(推荐)建 PR 时服务端当场落关联;
|
|
261
|
+
或 `gh pr create` 之后调 `report_pr` 工具上报。**服务端不读 PR 文本**——title/branch/body 里写什么任务编号都不会关联。
|
|
262
|
+
- **人工在 GitLab/GitHub 上手工建的 PR,平台不关联**:不进任务关联区、不触发自动评审、不驱动任务状态。
|
|
263
|
+
如果你希望一条 PR 关联到本任务,就必须走上面两条平台通道之一。
|
|
264
|
+
- **关单不需要关键字**:关联上的 PR 合并后,服务端按既有流程推进任务状态
|
|
265
|
+
(全部 MR 合并 → 已合并;这些提交进入生产分支 → 已发布)。**关联本身就是授权**。
|
|
266
|
+
- 推荐(可读性,不是关联手段):title 以「STR-101: 描述」开头、body 写一句 `Closes STR-101`——便于人和平台日志对照。
|
|
260
267
|
|
|
261
268
|
## 3. 什么时候推分支、提 PR(决策树)
|
|
262
269
|
|
package/dist/plugin/skills/morula-working-on-issues/references/working-on-issues-source-map.md
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
| 契约 | 服务端实现 | 位置 |
|
|
7
7
|
|------|-----------|------|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
8
|
+
| PR 关联**只由平台通道产生**(服务端不读 PR 文本) | 平台通道建链(`reportPrLinkByAgent`)+ webhook 按 `(租户, 仓库, PR 号)` 定位**已存在**的链接 → 只更新状态 | `src/modules/vcs-integration/link/vcs-link.service.ts`(`findLinkedRows` / `handlePullRequest`) |
|
|
9
|
+
| 未关联的 PR(人工手工建)→ 不建链、不流转、留痕 | 同上(定位不到即返回,写「未关联任何任务」日志) | 同上 |
|
|
10
|
+
| merge 关单:**链接存在即授权**(无需 `Closes` 关键字) | merged/closed → 多仓库汇总 → `closeObject` | `vcs-link.service.ts`(`closeObject`) |
|
|
11
|
+
| 终态不可被降级(`released` 不被 `closed`/`merged` 覆盖;`merged → released` 放行) | `isTerminalDowngrade`(领域层唯一定义)+ `ObjectService.update` 不变量 | `domain/lifecycle-state.ts`、`object.service.ts` |
|
|
12
12
|
|
|
13
13
|
## 2. 与平台交互只能走 morula CLI
|
|
14
14
|
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
|
|
39
39
|
| 契约 | 实现 | 位置 |
|
|
40
40
|
|------|------|------|
|
|
41
|
-
| merge 自动关单(服务端驱动状态) | webhook merged →
|
|
41
|
+
| merge 自动关单(服务端驱动状态) | webhook merged → 按平台事实定位已关联链接 → 汇总 → Object 完成 | `src/modules/vcs-integration/webhook/vcs-event.service.ts`、`link/vcs-link.service.ts` |
|
|
42
42
|
| agent 不调 CLI 改状态 | 协作契约第 4 条。**注意:CLI 有 `morula task state <id> --state <code>`**(机器协议 `POST /agent-tasks/:id/state`,供平台/自流转使用)——是**契约要求 agent 不调用**它,不是「CLI 没有这个命令」 | `packages/morula-cli/src/commands/task.ts`(action `state`)、`src/modules/agent-task/agent-task.controller.ts`(端点) |
|
|
43
43
|
|
|
44
44
|
## 4.1 评审任务结论回传(morula review submit)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcships/morula-runtime",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.0-alpha.
|
|
4
|
+
"version": "0.1.0-alpha.15",
|
|
5
5
|
"description": "Device-level CLI for the Morula local agent runtime (daemon/portal/models/auth) and the Morula business CLI (morula), distributed via npm",
|
|
6
6
|
"bin": {
|
|
7
7
|
"morula-runtime": "./bin/morula-runtime.js",
|