agent-ecosystem/agent-teams-controller/src/internal/kanban.js
iliya 86a1abdefa feat: introduce 'needsFix' review state and enhance task management features
- Added 'needsFix' as a new review state to improve task tracking and management.
- Updated kanban and task handling functions to accommodate the new review state, including modifications to clearKanban and task status updates.
- Enhanced task briefing output to include sections for tasks needing fixes, pending tasks, and approved tasks, improving clarity in task management.
- Updated UI components to display the 'needsFix' state appropriately across various views, including task rows and tooltips.
- Refactored tests to cover new functionalities related to the 'needsFix' state, ensuring comprehensive coverage of task management scenarios.
2026-03-09 13:50:45 +02:00

58 lines
1.7 KiB
JavaScript

const kanbanStore = require('./kanbanStore.js');
const tasks = require('./tasks.js');
function getKanbanState(context) {
return kanbanStore.readKanbanState(context.paths, context.teamName);
}
function setKanbanColumn(context, taskId, column) {
const canonicalTaskId = tasks.resolveTaskId(context, taskId);
kanbanStore.setKanbanColumn(context.paths, context.teamName, canonicalTaskId, String(column));
return getKanbanState(context);
}
function clearKanban(context, taskId, options) {
const canonicalTaskId = tasks.resolveTaskId(context, taskId);
kanbanStore.clearKanban(context.paths, context.teamName, canonicalTaskId, options);
return getKanbanState(context);
}
function listReviewers(context) {
return getKanbanState(context).reviewers;
}
function addReviewer(context, reviewer) {
const state = getKanbanState(context);
const next = new Set(state.reviewers);
next.add(String(reviewer));
kanbanStore.writeKanbanState(context.paths, context.teamName, {
...state,
reviewers: [...next],
});
return listReviewers(context);
}
function removeReviewer(context, reviewer) {
const state = getKanbanState(context);
const next = state.reviewers.filter((entry) => entry !== reviewer);
kanbanStore.writeKanbanState(context.paths, context.teamName, {
...state,
reviewers: next,
});
return listReviewers(context);
}
function updateColumnOrder(context, columnId, orderedTaskIds) {
const canonicalIds = orderedTaskIds.map((taskId) => tasks.resolveTaskId(context, taskId));
return kanbanStore.updateColumnOrder(context.paths, context.teamName, columnId, canonicalIds);
}
module.exports = {
getKanbanState,
setKanbanColumn,
clearKanban,
listReviewers,
addReviewer,
removeReviewer,
updateColumnOrder,
};