@stilero/bankan 1.1.0 → 1.1.3

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": "@stilero/bankan",
3
- "version": "1.1.0",
3
+ "version": "1.1.3",
4
4
  "type": "module",
5
5
  "description": "Run AI coding agents like a Kanban board. Plan, implement, review and ship code using parallel AI agents across your local repositories.",
6
6
  "license": "MIT",
@@ -65,8 +65,12 @@ export function approveMaxReviewBlocker(taskId) {
65
65
  const task = store.getTask(taskId);
66
66
  const updates = buildMaxReviewBlockerApprovalUpdate(task);
67
67
  if (!updates) return false;
68
- if (task?.workspacePath && existsSync(task.workspacePath)) {
69
- rmSync(task.workspacePath, { recursive: true, force: true });
68
+ if (task?.workspacePath) {
69
+ try {
70
+ rmSync(task.workspacePath, { recursive: true, force: true, maxRetries: 3, retryDelay: 500 });
71
+ } catch (err) {
72
+ console.warn(`Could not remove workspace ${task.workspacePath}: ${err.message}`);
73
+ }
70
74
  }
71
75
  store.updateTask(taskId, updates);
72
76
  store.appendLog(taskId, 'Human override: approved task to done after max review cycles.');
@@ -703,8 +703,12 @@ async function prepareWorkspaceBranch(task) {
703
703
  }
704
704
 
705
705
  async function cleanupWorkspace(task) {
706
- if (task.workspacePath && existsSync(task.workspacePath)) {
707
- await rm(task.workspacePath, { recursive: true, force: true });
706
+ if (task.workspacePath) {
707
+ try {
708
+ await rm(task.workspacePath, { recursive: true, force: true, maxRetries: 3, retryDelay: 500 });
709
+ } catch (err) {
710
+ console.warn(`Could not remove workspace ${task.workspacePath}: ${err.message}`);
711
+ }
708
712
  store.updateTask(task.id, { workspacePath: null });
709
713
  }
710
714
  }
@@ -1080,6 +1084,11 @@ export async function createPR(taskId) {
1080
1084
  await git.fetch('origin', 'main');
1081
1085
  await git.checkout(task.branch);
1082
1086
 
1087
+ // Discard any uncommitted changes left by the agent (e.g. package-lock.json
1088
+ // from npm installs during review) so they don't block the rebase.
1089
+ await git.raw(['checkout', '--', '.']);
1090
+ await git.raw(['clean', '-fd']);
1091
+
1083
1092
  try {
1084
1093
  await git.rebase(['origin/main']);
1085
1094
  } catch (err) {