@aion0/forge 0.5.18 → 0.5.20

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/.forge/mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "forge": {
4
4
  "type": "sse",
5
- "url": "http://localhost:8406/sse?workspaceId=656c9e65-9d73-4cb6-a065-60d966e1fc78&agentId=engineer-1774920478256"
5
+ "url": "http://localhost:8406/sse?workspaceId=656c9e65-9d73-4cb6-a065-60d966e1fc78"
6
6
  }
7
7
  }
8
8
  }
package/RELEASE_NOTES.md CHANGED
@@ -1,19 +1,12 @@
1
- # Forge v0.5.18
1
+ # Forge v0.5.20
2
2
 
3
3
  Released: 2026-04-01
4
4
 
5
- ## Changes since v0.5.17
5
+ ## Changes since v0.5.19
6
6
 
7
7
  ### Bug Fixes
8
- - Revert "fix: after hook done, suppress extends until file stops changing"
9
- - fix: after hook done, suppress extends until file stops changing
10
- - fix: warmup back to 7 polls (21s)
11
- - fix: only start session monitor on new tmux creation, not existing
12
- - fix: reduce warmup from 7 polls (21s) to 4 polls (12s)
13
- - fix: resetState doesn't reset warmupCount, only startMonitoring does
8
+ - fix: hook done always sets done, no state check
9
+ - fix: hook done accepts idle→done, not just running→done
14
10
 
15
- ### Other
16
- - Revert "fix: after hook done, suppress extends until file stops changing"
17
11
 
18
-
19
- **Full Changelog**: https://github.com/aiwatching/forge/compare/v0.5.17...v0.5.18
12
+ **Full Changelog**: https://github.com/aiwatching/forge/compare/v0.5.19...v0.5.20
@@ -1111,13 +1111,7 @@ export class WorkspaceOrchestrator extends EventEmitter {
1111
1111
  if (!entry) return;
1112
1112
  if (!this.daemonActive) return;
1113
1113
 
1114
- // Only transition running → done (ignore if already idle/done)
1115
- if (entry.state.taskStatus !== 'running') {
1116
- console.log(`[hook] ${entry.config.label}: Stop hook fired but task=${entry.state.taskStatus}, ignoring`);
1117
- return;
1118
- }
1119
-
1120
- console.log(`[hook] ${entry.config.label}: Stop hook → done`);
1114
+ console.log(`[hook] ${entry.config.label}: Stop hook → done (was ${entry.state.taskStatus})`);
1121
1115
  entry.state.taskStatus = 'done';
1122
1116
  entry.state.completedAt = Date.now();
1123
1117
  this.emit('event', { type: 'task_status', agentId, taskStatus: 'done' } as any);
@@ -1175,11 +1169,14 @@ export class WorkspaceOrchestrator extends EventEmitter {
1175
1169
 
1176
1170
  if (config.primary) {
1177
1171
  try {
1178
- const mod = await import('../project-sessions');
1179
- sessionId = (mod as any).getFixedSession(this.projectPath);
1172
+ const psPath = join(homedir(), '.forge', 'data', 'project-sessions.json');
1173
+ if (existsSync(psPath)) {
1174
+ const psData = JSON.parse(readFileSync(psPath, 'utf-8'));
1175
+ sessionId = psData[this.projectPath];
1176
+ }
1180
1177
  console.log(`[session-monitor] ${config.label}: primary fixedSession=${sessionId || 'NONE'}`);
1181
1178
  } catch (err: any) {
1182
- console.log(`[session-monitor] ${config.label}: failed to get fixedSession: ${err.message}`);
1179
+ console.log(`[session-monitor] ${config.label}: failed to read fixedSession: ${err.message}`);
1183
1180
  }
1184
1181
  } else {
1185
1182
  sessionId = config.boundSessionId;
package/next-env.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="next" />
2
2
  /// <reference types="next/image-types/global" />
3
- import "./.next/dev/types/routes.d.ts";
3
+ import "./.next/types/routes.d.ts";
4
4
 
5
5
  // NOTE: This file should not be edited
6
6
  // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aion0/forge",
3
- "version": "0.5.18",
3
+ "version": "0.5.20",
4
4
  "description": "Unified AI workflow platform — multi-model task orchestration, persistent sessions, web terminal, remote access",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -0,0 +1,6 @@
1
+ {
2
+ "workspaceId": "656c9e65-9d73-4cb6-a065-60d966e1fc78",
3
+ "agentId": "qa-1774920510930",
4
+ "agentLabel": "QA",
5
+ "forgePort": 8403
6
+ }