karajan-code 4.2.0 → 4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "karajan-code",
3
- "version": "4.2.0",
3
+ "version": "4.2.1",
4
4
  "description": "Local multi-agent coding orchestrator with TDD, SonarQube, and code review pipeline",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0",
@@ -1026,7 +1026,18 @@ router.post('/hus/:huId/run', (req, res) => {
1026
1026
  const extraIds = Array.isArray(req.body?.extraHuIds) ? req.body.extraHuIds.map((x) => (x.includes('::') ? x.split('::').pop() : x)) : [];
1027
1027
  const huIds = [planLocalHuId, ...extraIds];
1028
1028
 
1029
- const result = runPlan({ planId: row.plan_id, projectId: row.project_id, huIds });
1029
+ // Read the HU title from the plan JSON so kj run receives a
1030
+ // meaningful task description instead of the generic plan.task.
1031
+ let taskOverride;
1032
+ try {
1033
+ const planPath = path.join(getHuBoardPlansDir(), row.project_id, `${row.plan_id}.json`);
1034
+ const planRaw = fs.readFileSync(planPath, 'utf8');
1035
+ const planData = JSON.parse(planRaw);
1036
+ const hu = (planData.hus || []).find((h) => h.id === planLocalHuId);
1037
+ if (hu?.title) taskOverride = hu.title;
1038
+ } catch { /* fall through — runPlan will use plan.task */ }
1039
+
1040
+ const result = runPlan({ planId: row.plan_id, projectId: row.project_id, huIds, taskOverride });
1030
1041
  if (!result.ok) return res.status(400).json({ error: result.error });
1031
1042
 
1032
1043
  // Move the launched HU(s) to "coding" in BOTH the SQLite mirror and the
@@ -55,7 +55,9 @@ Invariants (the git gates enforce these — they are not suggestions):
55
55
  - Security findings are never overridable — not even by arbitration. You
56
56
  absorb the security role: \`kj brief security\` states what must be true.
57
57
  - Branch first: never commit on the base branch — every change reaches it
58
- through an atomic PR (~150 net lines, Conventional Commits).
58
+ through an atomic PR (~150 net lines, Conventional Commits). Working on
59
+ more than one task, or the user needs the base tree untouched? One
60
+ \`git worktree\` per task — the gates travel with the repo and work there.
59
61
 
60
62
  Commands: \`kj rag query\` · \`kj brief <role>\` (triage, planner, researcher,
61
63
  architect, tester, security, audit, board) · \`kj hu add|move|list\` · \`kj adr add|list\` ·