@supaku/agentfactory-linear 0.7.12 → 0.7.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../src/agent-session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { WORK_TYPE_START_STATUS, WORK_TYPE_COMPLETE_STATUS, WORK_TYPE_FAIL_STATUS, } from './types.js';
1
+ import { WORK_TYPE_START_STATUS, WORK_TYPE_COMPLETE_STATUS, WORK_TYPE_FAIL_STATUS, TERMINAL_STATUSES, } from './types.js';
2
2
  import { LinearSessionError, LinearActivityError, LinearPlanError, } from './errors.js';
3
3
  import { buildCompletionComments } from './utils.js';
4
4
  import { getDefaultTeamId, LINEAR_PROJECTS, LINEAR_LABELS, } from './constants.js';
@@ -84,10 +84,17 @@ export class AgentSession {
84
84
  this.sessionId = `session-${this.issueId}-${Date.now()}`;
85
85
  }
86
86
  this.state = 'active';
87
- // Transition based on work type
87
+ // Transition based on work type — guard against terminal states
88
88
  const startStatus = WORK_TYPE_START_STATUS[this.workType];
89
89
  if (this.autoTransition && startStatus) {
90
- await this.client.updateIssueStatus(this.issueId, startStatus);
90
+ const currentState = await this.issue.state;
91
+ const currentStateName = currentState?.name;
92
+ if (currentStateName && TERMINAL_STATUSES.includes(currentStateName)) {
93
+ console.warn(`[AgentSession] Refusing to transition issue ${this.issueId} from terminal state "${currentStateName}" to "${startStatus}"`);
94
+ }
95
+ else {
96
+ await this.client.updateIssueStatus(this.issueId, startStatus);
97
+ }
91
98
  }
92
99
  return { success: true, sessionId: this.sessionId };
93
100
  }
@@ -143,31 +150,47 @@ export class AgentSession {
143
150
  // Log but don't fail completion - checkbox sync is non-critical
144
151
  console.warn('[AgentSession] Failed to sync description checkboxes on complete:', error instanceof Error ? error.message : String(error));
145
152
  }
146
- // Transition based on work type
153
+ // Transition based on work type — guard against terminal states
147
154
  if (this.autoTransition) {
148
- const isResultSensitive = this.workType === 'qa' || this.workType === 'acceptance';
149
- if (isResultSensitive) {
150
- // For QA/acceptance: only transition if workResult is explicitly set
151
- if (workResult === 'passed') {
155
+ // Re-fetch current state to guard against transitioning out of terminal states
156
+ let isTerminal = false;
157
+ try {
158
+ const freshIssue = await this.client.getIssue(this.issueId);
159
+ const currentState = await freshIssue.state;
160
+ const currentStateName = currentState?.name;
161
+ if (currentStateName && TERMINAL_STATUSES.includes(currentStateName)) {
162
+ isTerminal = true;
163
+ console.warn(`[AgentSession] Refusing to transition issue ${this.issueId} from terminal state "${currentStateName}" on completion`);
164
+ }
165
+ }
166
+ catch (err) {
167
+ console.warn('[AgentSession] Failed to check terminal state before completion transition:', err);
168
+ }
169
+ if (!isTerminal) {
170
+ const isResultSensitive = this.workType === 'qa' || this.workType === 'acceptance';
171
+ if (isResultSensitive) {
172
+ // For QA/acceptance: only transition if workResult is explicitly set
173
+ if (workResult === 'passed') {
174
+ const completeStatus = WORK_TYPE_COMPLETE_STATUS[this.workType];
175
+ if (completeStatus) {
176
+ await this.client.updateIssueStatus(this.issueId, completeStatus);
177
+ }
178
+ }
179
+ else if (workResult === 'failed') {
180
+ const failStatus = WORK_TYPE_FAIL_STATUS[this.workType];
181
+ if (failStatus) {
182
+ await this.client.updateIssueStatus(this.issueId, failStatus);
183
+ }
184
+ }
185
+ // undefined workResult -> skip transition (safe default)
186
+ }
187
+ else {
188
+ // Non-QA/acceptance: unchanged behavior
152
189
  const completeStatus = WORK_TYPE_COMPLETE_STATUS[this.workType];
153
190
  if (completeStatus) {
154
191
  await this.client.updateIssueStatus(this.issueId, completeStatus);
155
192
  }
156
193
  }
157
- else if (workResult === 'failed') {
158
- const failStatus = WORK_TYPE_FAIL_STATUS[this.workType];
159
- if (failStatus) {
160
- await this.client.updateIssueStatus(this.issueId, failStatus);
161
- }
162
- }
163
- // undefined workResult -> skip transition (safe default)
164
- }
165
- else {
166
- // Non-QA/acceptance: unchanged behavior
167
- const completeStatus = WORK_TYPE_COMPLETE_STATUS[this.workType];
168
- if (completeStatus) {
169
- await this.client.updateIssueStatus(this.issueId, completeStatus);
170
- }
171
194
  }
172
195
  }
173
196
  return { success: true, sessionId: this.sessionId ?? undefined };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supaku/agentfactory-linear",
3
- "version": "0.7.12",
3
+ "version": "0.7.13",
4
4
  "type": "module",
5
5
  "description": "Linear issue tracker integration for AgentFactory — status transitions, agent sessions, work routing",
6
6
  "author": "Supaku (https://supaku.com)",