claude-teammate 0.1.241 → 0.1.243

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.241",
3
+ "version": "0.1.243",
4
4
  "description": "CLI bootstrapper for Claude Teammate.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  # TM8 Dashboard
2
2
 
3
- Web UI for monitoring the TM8 worker. Runs on port 7881 (this machine) via the globally installed `claude-teammate` npm package.
3
+ Web UI for monitoring the TM8 worker. Runs via the globally installed `claude-teammate` npm package.
4
4
 
5
5
  > **This source repo is for development only.** Production uses the published npm package — do not point the service at this repo.
6
6
 
@@ -27,17 +27,17 @@ Output lands in `~/.cache/tm8-dashboard/.output/public` — the server reads fro
27
27
 
28
28
  ### 3. systemd service
29
29
 
30
- The service on this machine is `/etc/systemd/system/tm8-card4-dashboard.service`:
30
+ Create `/etc/systemd/system/tm8-dashboard.service`:
31
31
 
32
32
  ```ini
33
33
  [Unit]
34
- Description=TM8 Dashboard (card4)
34
+ Description=TM8 Dashboard
35
35
  After=network.target
36
36
 
37
37
  [Service]
38
38
  Type=simple
39
39
  ExecStart=/usr/bin/tm8 dashboard --port=7881
40
- User=tm8-card4
40
+ User=<your-user>
41
41
  Restart=on-failure
42
42
  RestartSec=5
43
43
  StandardOutput=journal
@@ -47,19 +47,19 @@ StandardError=journal
47
47
  WantedBy=multi-user.target
48
48
  ```
49
49
 
50
- Create/update it, then enable:
50
+ Enable and start:
51
51
 
52
52
  ```bash
53
53
  sudo systemctl daemon-reload
54
- sudo systemctl enable tm8-card4-dashboard
55
- sudo systemctl start tm8-card4-dashboard
56
- sudo systemctl status tm8-card4-dashboard
54
+ sudo systemctl enable tm8-dashboard
55
+ sudo systemctl start tm8-dashboard
56
+ sudo systemctl status tm8-dashboard
57
57
  ```
58
58
 
59
59
  Logs:
60
60
 
61
61
  ```bash
62
- journalctl -u tm8-card4-dashboard -f
62
+ journalctl -u tm8-dashboard -f
63
63
  ```
64
64
 
65
65
  ### 4. pm2 alternative
@@ -80,7 +80,7 @@ npm update -g claude-teammate
80
80
  DASH=$(npm root -g)/claude-teammate/src/dashboard/app
81
81
  cd "$DASH" && npm install && npm run generate
82
82
 
83
- sudo systemctl restart tm8-card4-dashboard
83
+ sudo systemctl restart tm8-dashboard
84
84
  # or: pm2 restart tm8-dashboard
85
85
  ```
86
86
 
@@ -305,13 +305,7 @@ export function selectIssueCreationRepo({ detail, issueMemory, repos, epicMemory
305
305
 
306
306
  const repoByUrl = new Map(repos.map((repo) => [String(repo.url || "").trim(), repo]));
307
307
 
308
- if (epicMemory?.pr_repo_url) {
309
- const prRepo = repoByUrl.get(String(epicMemory.pr_repo_url).trim());
310
- if (prRepo) {
311
- return prRepo;
312
- }
313
- }
314
-
308
+ // Comments/description are more specific than epic-level pr_repo_url — check them first.
315
309
  const latestExplicitRepo = getLatestExplicitIssueCreationRepo(detail, repoByUrl);
316
310
  if (latestExplicitRepo) {
317
311
  return latestExplicitRepo;
@@ -324,6 +318,14 @@ export function selectIssueCreationRepo({ detail, issueMemory, repos, epicMemory
324
318
  return repoByUrl.get(descriptionRepoUrls[0]) || null;
325
319
  }
326
320
 
321
+ // Fall back to epic-level pr_repo_url only when task description and comments give no signal.
322
+ if (epicMemory?.pr_repo_url) {
323
+ const prRepo = repoByUrl.get(String(epicMemory.pr_repo_url).trim());
324
+ if (prRepo) {
325
+ return prRepo;
326
+ }
327
+ }
328
+
327
329
  const rememberedRepoUrls = [
328
330
  ...new Set(
329
331
  (Array.isArray(issueMemory?.github_issues) ? issueMemory.github_issues : [])
@@ -180,7 +180,7 @@ export async function continueGitHubIssueCreation({
180
180
  const latestRepoSelectionReply = getLatestHumanRepoSelectionReply(detail, botUser, jira);
181
181
  let selectedRepo = selectIssueCreationRepo({ detail, issueMemory, repos, epicMemory });
182
182
  const latestRepoPrompt = getLatestRepoSelectionPromptComment(detail, botUser, jira);
183
- if (!selectedRepo && latestRepoSelectionReply) {
183
+ if (!selectedRepo) {
184
184
  const fallback = await services.runClaudeRepoSelection({
185
185
  issue: detail,
186
186
  repos,