feat(KB-640): add role editing UI and restore KB task prefix

- Add inline role editing to AgentListModal with clickable role icons
- Add handleRoleChange and handleRoleKeyDown handlers for role updates
- Persist view toggle (board/list) with localStorage alongside role editing
- Restore task prefix from FN back to KB for generated task IDs
- Restore branch naming from fusion/ back to kb/ for task branches
- Update branch name references in executor, merger, scheduler, and CLI
- Add touch gesture detection support to TaskCard component
- Update worktree grouping labels to use KB prefix
This commit is contained in:
gsxdsm
2026-03-31 19:44:36 -07:00
parent 9f0a6413d8
commit ada014213a
11 changed files with 88 additions and 31 deletions

View File

@@ -556,7 +556,7 @@ export class TaskStore extends EventEmitter<TaskStoreEvents> {
const id = this.db.transaction(() => {
const row = this.db.prepare("SELECT nextId, settings FROM config WHERE id = 1").get() as any;
const settings = fromJson<Settings>(row.settings);
const prefix = settings?.taskPrefix || "FN";
const prefix = settings?.taskPrefix || "KB";
const nextId = row.nextId || 1;
const taskId = `${prefix}-${String(nextId).padStart(3, "0")}`;
this.db.prepare("UPDATE config SET nextId = ? WHERE id = 1").run(nextId + 1);
@@ -1284,7 +1284,7 @@ export class TaskStore extends EventEmitter<TaskStoreEvents> {
);
}
const branch = `fusion/${id.toLowerCase()}`;
const branch = `kb/${id.toLowerCase()}`;
const worktreePath = task.worktree;
const result: MergeResult = {
task,

View File

@@ -580,8 +580,8 @@ export interface ProjectSettings {
* - "task-title": Use a slugified version of the task title (e.g., fix-login-bug)
* Default: "random". */
worktreeNaming?: "random" | "task-id" | "task-title";
/** Prefix for generated task IDs (e.g. `"FN"` produces `FN-001`).
* Defaults to `"FN"`. Only affects new tasks — existing tasks retain
/** Prefix for generated task IDs (e.g. `"KB"` produces `KB-001`).
* Defaults to `"KB"`. Only affects new tasks — existing tasks retain
* their original IDs. */
taskPrefix?: string;
/** When true, merge commit messages include the task ID as the conventional