github-issue-tower-defence-management 1.187.2 → 1.187.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/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.187.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.187.2...v1.187.3) (2026-08-28)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **ProjectRequiredFieldCreateUseCase:** remove extra agents and enforce config order in reconcileAgentOptions ([#1811](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1811)) ([aaa1e24](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/aaa1e24827ca28128bfc1f2a86833e7e007c8858)), closes [HiromiShikata/umino-corporait-operation#30999](https://github.com/HiromiShikata/umino-corporait-operation/issues/30999)
7
+
1
8
  ## [1.187.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.187.1...v1.187.2) (2026-08-28)
2
9
 
3
10
 
@@ -69,22 +69,21 @@ class ProjectRequiredFieldCreateUseCase {
69
69
  });
70
70
  return;
71
71
  }
72
- const existingOptions = project.agent.options;
73
- const existingNames = new Set(existingOptions.map((o) => (0, ProjectFieldName_1.normalizeProjectFieldName)(o.name)));
74
- const toAdd = agentNames.filter((name) => !existingNames.has((0, ProjectFieldName_1.normalizeProjectFieldName)(name)));
75
- if (toAdd.length === 0) {
72
+ const existingByNormalizedName = new Map(project.agent.options.map((o) => [(0, ProjectFieldName_1.normalizeProjectFieldName)(o.name), o]));
73
+ const targetOptions = agentNames.map((name) => {
74
+ const existing = existingByNormalizedName.get((0, ProjectFieldName_1.normalizeProjectFieldName)(name));
75
+ return existing
76
+ ? { ...existing }
77
+ : { id: null, name, color: 'GRAY', description: '' };
78
+ });
79
+ const existingNormalizedNames = project.agent.options.map((o) => (0, ProjectFieldName_1.normalizeProjectFieldName)(o.name));
80
+ const targetNormalizedNames = targetOptions.map((o) => (0, ProjectFieldName_1.normalizeProjectFieldName)(o.name));
81
+ const needsUpdate = existingNormalizedNames.length !== targetNormalizedNames.length ||
82
+ existingNormalizedNames.some((name, i) => name !== targetNormalizedNames[i]);
83
+ if (!needsUpdate) {
76
84
  return;
77
85
  }
78
- const mergedOptions = [
79
- ...existingOptions.map((o) => ({ ...o })),
80
- ...toAdd.map((name) => ({
81
- id: null,
82
- name,
83
- color: 'GRAY',
84
- description: '',
85
- })),
86
- ];
87
- await this.projectRepository.updateAgentList(project, mergedOptions);
86
+ await this.projectRepository.updateAgentList(project, targetOptions);
88
87
  };
89
88
  this.optionNameSatisfies = (currentName, requiredName) => (0, ProjectFieldName_1.normalizeProjectFieldName)(currentName).startsWith((0, ProjectFieldName_1.normalizeProjectFieldName)(requiredName));
90
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectRequiredFieldCreateUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectRequiredFieldCreateUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.187.2",
3
+ "version": "1.187.3",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -652,6 +652,37 @@ describe('ProjectRequiredFieldCreateUseCase', () => {
652
652
  expect(projectRepository.updateAgentList).not.toHaveBeenCalled();
653
653
  });
654
654
 
655
+ it('removes agents not in agentNames by calling updateAgentList without them', async () => {
656
+ const project = buildProjectWithAgent([
657
+ { id: 'opt-impl', name: 'impl' },
658
+ { id: 'opt-old', name: 'old-agent' },
659
+ { id: 'opt-chore', name: 'chore' },
660
+ ]);
661
+ const { projectRepository, useCase } = createUseCase([], project);
662
+
663
+ await useCase.reconcileAgentOptions(project, ['impl', 'chore']);
664
+
665
+ expect(projectRepository.updateAgentList).toHaveBeenCalledWith(project, [
666
+ expect.objectContaining({ id: 'opt-impl', name: 'impl' }),
667
+ expect.objectContaining({ id: 'opt-chore', name: 'chore' }),
668
+ ]);
669
+ });
670
+
671
+ it('reorders agents to match agentNames order when order differs', async () => {
672
+ const project = buildProjectWithAgent([
673
+ { id: 'opt-chore', name: 'chore' },
674
+ { id: 'opt-impl', name: 'impl' },
675
+ ]);
676
+ const { projectRepository, useCase } = createUseCase([], project);
677
+
678
+ await useCase.reconcileAgentOptions(project, ['impl', 'chore']);
679
+
680
+ expect(projectRepository.updateAgentList).toHaveBeenCalledWith(project, [
681
+ expect.objectContaining({ id: 'opt-impl', name: 'impl' }),
682
+ expect.objectContaining({ id: 'opt-chore', name: 'chore' }),
683
+ ]);
684
+ });
685
+
655
686
  it('calls createField with AGENT_FIELD_NAME and initial agents when project has no agent field', async () => {
656
687
  const { projectRepository, useCase } = createUseCase(
657
688
  [],
@@ -106,26 +106,32 @@ export class ProjectRequiredFieldCreateUseCase {
106
106
  });
107
107
  return;
108
108
  }
109
- const existingOptions = project.agent.options;
110
- const existingNames = new Set(
111
- existingOptions.map((o) => normalizeProjectFieldName(o.name)),
109
+ const existingByNormalizedName = new Map(
110
+ project.agent.options.map((o) => [normalizeProjectFieldName(o.name), o]),
112
111
  );
113
- const toAdd = agentNames.filter(
114
- (name) => !existingNames.has(normalizeProjectFieldName(name)),
112
+ const targetOptions: OptionToSubmit[] = agentNames.map((name) => {
113
+ const existing = existingByNormalizedName.get(
114
+ normalizeProjectFieldName(name),
115
+ );
116
+ return existing
117
+ ? { ...existing }
118
+ : { id: null, name, color: 'GRAY' as const, description: '' };
119
+ });
120
+ const existingNormalizedNames = project.agent.options.map((o) =>
121
+ normalizeProjectFieldName(o.name),
122
+ );
123
+ const targetNormalizedNames = targetOptions.map((o) =>
124
+ normalizeProjectFieldName(o.name),
115
125
  );
116
- if (toAdd.length === 0) {
126
+ const needsUpdate =
127
+ existingNormalizedNames.length !== targetNormalizedNames.length ||
128
+ existingNormalizedNames.some(
129
+ (name, i) => name !== targetNormalizedNames[i],
130
+ );
131
+ if (!needsUpdate) {
117
132
  return;
118
133
  }
119
- const mergedOptions: OptionToSubmit[] = [
120
- ...existingOptions.map((o) => ({ ...o })),
121
- ...toAdd.map((name) => ({
122
- id: null,
123
- name,
124
- color: 'GRAY' as const,
125
- description: '',
126
- })),
127
- ];
128
- await this.projectRepository.updateAgentList(project, mergedOptions);
134
+ await this.projectRepository.updateAgentList(project, targetOptions);
129
135
  };
130
136
 
131
137
  private optionNameSatisfies = (
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectRequiredFieldCreateUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAM3E,qBAAa,iCAAiC;IAE1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACf,UAAU,GACV,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,iBAAiB,CACpB;IAGH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KAC1B,KAAG,OAAO,CAAC,IAAI,CAAC,CAQf;IAEF,OAAO,CAAC,mBAAmB,CAYzB;IAEF,OAAO,CAAC,qBAAqB,CAmC3B;IAEF,qBAAqB,GACnB,SAAS,OAAO,EAChB,YAAY,MAAM,EAAE,GAAG,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAoCd;IAEF,OAAO,CAAC,mBAAmB,CAMvB;IAEJ,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAoB;CACrD"}
1
+ {"version":3,"file":"ProjectRequiredFieldCreateUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/ProjectRequiredFieldCreateUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAM3E,qBAAa,iCAAiC;IAE1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,IAAI,CACtC,iBAAiB,EACf,UAAU,GACV,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,iBAAiB,CACpB;IAGH,GAAG,GAAU,QAAQ;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KAC1B,KAAG,OAAO,CAAC,IAAI,CAAC,CAQf;IAEF,OAAO,CAAC,mBAAmB,CAYzB;IAEF,OAAO,CAAC,qBAAqB,CAmC3B;IAEF,qBAAqB,GACnB,SAAS,OAAO,EAChB,YAAY,MAAM,EAAE,GAAG,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CA0Cd;IAEF,OAAO,CAAC,mBAAmB,CAMvB;IAEJ,MAAM,CAAC,QAAQ,CAAC,gBAAgB,WAAoB;CACrD"}