claude-teammate 0.1.113 → 0.1.114

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-teammate",
3
- "version": "0.1.113",
3
+ "version": "0.1.114",
4
4
  "description": "CLI bootstrapper for Claude Teammate.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -68,6 +68,10 @@ function markClaudeUsageLimit() {
68
68
  function isClaudeUsageLimited() {
69
69
  return Date.now() < claudeUsageLimitUntil;
70
70
  }
71
+
72
+ function isSubtask(issueType) {
73
+ return ["subtask", "sub-task"].includes(issueType.toLowerCase());
74
+ }
71
75
  const REPO_REQUEST_COMMENT = "Please provide repo url";
72
76
  const EPIC_MEMORY_MAX_CHARS = 3_500;
73
77
  const ISSUE_SETTLE_TIME_MS = 2 * 60 * 1000;
@@ -642,6 +646,18 @@ async function processJiraIssue({ issue, jira, forgeRegistry, botUser, config, p
642
646
 
643
647
  const issueMemoryRecord = await loadIssueMemory(projectRoot, config.JIRA_BASE_URL, detail);
644
648
 
649
+ if (!detail.epicId && !detail.epicKey) {
650
+ if (isSubtask(detail.issueType) && detail.parentKey) {
651
+ await logger.info("Subtask has no direct epic, checking parent for epic", { issue: detail.key, parent: detail.parentKey });
652
+ const parentDetail = await jira.fetchIssueDetails(detail.parentKey);
653
+ if (parentDetail.epicId || parentDetail.epicKey) {
654
+ detail.epicId = parentDetail.epicId;
655
+ detail.epicKey = parentDetail.epicKey;
656
+ detail.epicUrl = parentDetail.epicUrl;
657
+ }
658
+ }
659
+ }
660
+
645
661
  if (!detail.epicId && !detail.epicKey) {
646
662
  await logger.info("Issue has no epic, notifying user", { issue: detail.key });
647
663
  await ensureJiraComment(detail, jira, botUser, "An epic is missing from this ticket, please add one and tell me when you are done.");
package/src/jira.js CHANGED
@@ -204,6 +204,7 @@ function mapIssue(issue, baseUrl) {
204
204
  epicId: epic?.id ?? null,
205
205
  epicKey: epic?.key ?? null,
206
206
  epicUrl: epic?.url ?? null,
207
+ parentKey: issue.fields?.parent?.key ?? null,
207
208
  created: issue.fields?.created ?? null,
208
209
  updated: issue.fields?.updated ?? null
209
210
  };