jfl 0.9.9 → 0.9.11
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/dist/commands/init-from-service.d.ts.map +1 -1
- package/dist/commands/init-from-service.js +2 -2
- package/dist/commands/init-from-service.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +88 -23
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/peter.d.ts.map +1 -1
- package/dist/commands/peter.js +112 -35
- package/dist/commands/peter.js.map +1 -1
- package/dist/commands/repair.d.ts.map +1 -1
- package/dist/commands/repair.js +13 -11
- package/dist/commands/repair.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +7 -40
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/start.js +3 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/lib/agent-config.d.ts +1 -0
- package/dist/lib/agent-config.d.ts.map +1 -1
- package/dist/lib/agent-config.js.map +1 -1
- package/dist/lib/agent-guards.d.ts +67 -0
- package/dist/lib/agent-guards.d.ts.map +1 -0
- package/dist/lib/agent-guards.js +229 -0
- package/dist/lib/agent-guards.js.map +1 -0
- package/dist/lib/agent-runtime-api.d.ts +32 -0
- package/dist/lib/agent-runtime-api.d.ts.map +1 -0
- package/dist/lib/agent-runtime-api.js +270 -0
- package/dist/lib/agent-runtime-api.js.map +1 -0
- package/dist/lib/agent-session.d.ts.map +1 -1
- package/dist/lib/agent-session.js +255 -25
- package/dist/lib/agent-session.js.map +1 -1
- package/dist/lib/gtm-generator.js +3 -1
- package/dist/lib/gtm-generator.js.map +1 -1
- package/dist/lib/memory-search.d.ts.map +1 -1
- package/dist/lib/memory-search.js +0 -8
- package/dist/lib/memory-search.js.map +1 -1
- package/dist/utils/jfl-paths.d.ts +9 -0
- package/dist/utils/jfl-paths.d.ts.map +1 -1
- package/dist/utils/jfl-paths.js +13 -0
- package/dist/utils/jfl-paths.js.map +1 -1
- package/package.json +1 -1
- package/packages/pi/dist/index.d.ts.map +1 -1
- package/packages/pi/dist/index.js +19 -1
- package/packages/pi/dist/index.js.map +1 -1
- package/packages/pi/dist/session.d.ts +5 -1
- package/packages/pi/dist/session.d.ts.map +1 -1
- package/packages/pi/dist/session.js +247 -116
- package/packages/pi/dist/session.js.map +1 -1
- package/packages/pi/extensions/index.ts +24 -1
- package/packages/pi/extensions/session.ts +256 -96
- package/packages/pi/skills/end/SKILL.md +8 -0
- package/scripts/session/session-cleanup.sh +19 -6
- package/template/.github/workflows/jfl-eval.yml +8 -1
- package/template/scripts/session/session-cleanup.sh +23 -8
|
@@ -3,22 +3,118 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Pi-native session lifecycle via Context Hub API.
|
|
5
5
|
* Calls POST /api/session/init on start and POST /api/session/end on shutdown.
|
|
6
|
-
* Hub handles sync, branch creation
|
|
6
|
+
* Hub handles sync, doctor, branch creation — single source of truth.
|
|
7
7
|
* Pi only manages the auto-commit daemon locally (needs a detached process).
|
|
8
8
|
*
|
|
9
|
+
* AGENT MODE: When JFL_AGENT_MODE=1 or --print is used (PP agent runs),
|
|
10
|
+
* skip ALL session branching. PP agents work in isolated /tmp worktrees —
|
|
11
|
+
* they must NOT touch the main repo's git state.
|
|
12
|
+
*
|
|
9
13
|
* @purpose Pi session lifecycle — Hub API for init/end, local auto-commit daemon
|
|
10
14
|
*/
|
|
11
|
-
import { execSync, spawn } from "child_process";
|
|
12
|
-
import {
|
|
15
|
+
import { execSync, spawn, exec } from "child_process";
|
|
16
|
+
import { promisify } from "util";
|
|
17
|
+
import { existsSync, readFileSync, writeFileSync, unlinkSync } from "fs";
|
|
13
18
|
import { join } from "path";
|
|
14
19
|
import { hubUrl, authToken } from "./map-bridge.js";
|
|
20
|
+
const execAsync = promisify(exec);
|
|
15
21
|
let autoCommitProcess = null;
|
|
16
22
|
let sessionBranch = "";
|
|
23
|
+
let isAgentMode = false;
|
|
24
|
+
/**
|
|
25
|
+
* Detect if we're running in agent/ephemeral mode where session branching
|
|
26
|
+
* should be completely skipped. This happens when:
|
|
27
|
+
* - JFL_AGENT_MODE=1 env var is set (PP agent runs)
|
|
28
|
+
* - PI_PRINT_MODE=1 (set by Pi core in --print mode)
|
|
29
|
+
* - Process was spawned by PP (JFL_PP_SPAWNED=1)
|
|
30
|
+
*/
|
|
31
|
+
function detectAgentMode() {
|
|
32
|
+
return (process.env.JFL_AGENT_MODE === "1" ||
|
|
33
|
+
process.env.JFL_PP_SPAWNED === "1" ||
|
|
34
|
+
process.env.PI_PRINT_MODE === "1" ||
|
|
35
|
+
process.argv.includes("--print") ||
|
|
36
|
+
process.argv.includes("-p"));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get working branch from .jfl/config.json or default to "main"
|
|
40
|
+
*/
|
|
41
|
+
function getWorkingBranch(root) {
|
|
42
|
+
const configPath = join(root, ".jfl", "config.json");
|
|
43
|
+
if (existsSync(configPath)) {
|
|
44
|
+
try {
|
|
45
|
+
const cfg = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
46
|
+
if (cfg.working_branch)
|
|
47
|
+
return cfg.working_branch;
|
|
48
|
+
}
|
|
49
|
+
catch { }
|
|
50
|
+
}
|
|
51
|
+
return "main";
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Merge a stale session branch to the working branch.
|
|
55
|
+
* Called during onInit when we find ourselves on an old session branch,
|
|
56
|
+
* to prevent data loss from abandoned branches.
|
|
57
|
+
*
|
|
58
|
+
* Returns true if merge succeeded (or branch had no unique work).
|
|
59
|
+
*/
|
|
60
|
+
function mergeStaleSessionBranch(root, staleBranch, workingBranch, ctx) {
|
|
61
|
+
try {
|
|
62
|
+
// Check if the stale branch has any commits not in working branch
|
|
63
|
+
const uniqueCommits = execSync(`git log --oneline "${workingBranch}".."${staleBranch}" 2>/dev/null | wc -l`, { cwd: root, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
64
|
+
if (uniqueCommits === "0") {
|
|
65
|
+
// No unique work — safe to just switch away
|
|
66
|
+
ctx.log(`Stale branch ${staleBranch} has no unique commits, switching to ${workingBranch}`, "debug");
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
ctx.log(`Stale branch ${staleBranch} has ${uniqueCommits} unique commits — merging to ${workingBranch}`, "info");
|
|
70
|
+
ctx.ui.notify(`⚠ Recovering ${uniqueCommits} commits from stale session ${staleBranch}`, { level: "warn" });
|
|
71
|
+
// Commit any dirty state first
|
|
72
|
+
try {
|
|
73
|
+
const status = execSync("git status --porcelain", { cwd: root, encoding: "utf-8", timeout: 5000, stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
74
|
+
if (status) {
|
|
75
|
+
execSync("git add -A && git commit -m 'auto: save before stale branch merge' --no-verify", {
|
|
76
|
+
cwd: root, timeout: 10000, stdio: ["pipe", "pipe", "pipe"],
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch { }
|
|
81
|
+
// Switch to working branch
|
|
82
|
+
execSync(`git checkout "${workingBranch}"`, { cwd: root, timeout: 10000, stdio: ["pipe", "pipe", "pipe"] });
|
|
83
|
+
// Merge stale branch with auto-resolve for .jfl conflicts
|
|
84
|
+
try {
|
|
85
|
+
execSync(`git merge "${staleBranch}" --no-edit -X ours`, { cwd: root, timeout: 15000, stdio: ["pipe", "pipe", "pipe"] });
|
|
86
|
+
ctx.ui.notify(`✓ Recovered stale session ${staleBranch} → ${workingBranch}`, { level: "info" });
|
|
87
|
+
// Clean up the stale branch
|
|
88
|
+
try {
|
|
89
|
+
execSync(`git branch -d "${staleBranch}"`, { cwd: root, timeout: 5000, stdio: ["pipe", "pipe", "pipe"] });
|
|
90
|
+
}
|
|
91
|
+
catch { }
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
96
|
+
if (msg.includes("CONFLICT") || msg.includes("conflict")) {
|
|
97
|
+
// Abort merge, stay on working branch, leave stale branch for manual resolution
|
|
98
|
+
try {
|
|
99
|
+
execSync("git merge --abort", { cwd: root, timeout: 5000, stdio: ["pipe", "pipe", "pipe"] });
|
|
100
|
+
}
|
|
101
|
+
catch { }
|
|
102
|
+
ctx.ui.notify(`⚠ Merge conflict recovering ${staleBranch} — branch preserved for manual merge`, { level: "warn" });
|
|
103
|
+
return true; // Still switch to working branch, just don't delete the old one
|
|
104
|
+
}
|
|
105
|
+
throw err;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
ctx.log(`Failed to merge stale branch ${staleBranch}: ${err}`, "warn");
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
17
113
|
/**
|
|
18
114
|
* Create a session branch locally without the Hub.
|
|
19
115
|
* Parity with scripts/session/session-init.sh:
|
|
20
|
-
* 1.
|
|
21
|
-
* 2.
|
|
116
|
+
* 1. If on a stale session branch, MERGE it first (prevent data loss!)
|
|
117
|
+
* 2. Commit or stash remaining dirty state
|
|
22
118
|
* 3. Create new session branch from clean base
|
|
23
119
|
* 4. Pop stash if needed
|
|
24
120
|
*/
|
|
@@ -38,24 +134,21 @@ function createSessionBranchLocally(root, ctx) {
|
|
|
38
134
|
const timeStr = now.toISOString().slice(11, 16).replace(":", "");
|
|
39
135
|
const randomId = Math.random().toString(16).slice(2, 8);
|
|
40
136
|
const branchName = `session-${user}-${dateStr}-${timeStr}-${randomId}`;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
workingBranch = cfg.working_branch;
|
|
49
|
-
}
|
|
50
|
-
catch { }
|
|
137
|
+
const workingBranch = getWorkingBranch(root);
|
|
138
|
+
// Step 1: If on a stale session branch, MERGE it to working branch first
|
|
139
|
+
const currentBranch = getCurrentBranch(root);
|
|
140
|
+
if (currentBranch.startsWith("session-")) {
|
|
141
|
+
ctx.log(`Found stale session branch ${currentBranch} — merging before creating new session`, "info");
|
|
142
|
+
mergeStaleSessionBranch(root, currentBranch, workingBranch, ctx);
|
|
143
|
+
// After merge, we should be on workingBranch
|
|
51
144
|
}
|
|
52
|
-
// Step
|
|
145
|
+
// Step 2: Commit or stash dirty state so checkout doesn't fail
|
|
53
146
|
let stashed = false;
|
|
54
147
|
try {
|
|
55
148
|
const status = execSync("git status --porcelain", { cwd: root, timeout: 5000, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
56
149
|
if (status) {
|
|
57
150
|
try {
|
|
58
|
-
execSync("git add -A && git commit -m 'auto: session-init save
|
|
151
|
+
execSync("git add -A && git commit -m 'auto: session-init save' --no-verify", { cwd: root, timeout: 10000, stdio: ["pipe", "pipe", "pipe"] });
|
|
59
152
|
}
|
|
60
153
|
catch {
|
|
61
154
|
// Commit failed — stash instead
|
|
@@ -68,18 +161,17 @@ function createSessionBranchLocally(root, ctx) {
|
|
|
68
161
|
}
|
|
69
162
|
}
|
|
70
163
|
catch { }
|
|
71
|
-
// Step
|
|
72
|
-
const
|
|
73
|
-
if (
|
|
164
|
+
// Step 3: Ensure we're on working branch before creating session branch
|
|
165
|
+
const nowBranch = getCurrentBranch(root);
|
|
166
|
+
if (nowBranch !== workingBranch) {
|
|
74
167
|
try {
|
|
75
168
|
execSync(`git checkout "${workingBranch}"`, { cwd: root, timeout: 10000, stdio: ["pipe", "pipe", "pipe"] });
|
|
76
|
-
ctx.log(`Switched from stale session branch ${currentBranch} → ${workingBranch}`, "info");
|
|
77
169
|
}
|
|
78
170
|
catch {
|
|
79
|
-
ctx.log(`Could not switch
|
|
171
|
+
ctx.log(`Could not switch to ${workingBranch} — branching from ${nowBranch}`, "warn");
|
|
80
172
|
}
|
|
81
173
|
}
|
|
82
|
-
// Step
|
|
174
|
+
// Step 4: Create new session branch
|
|
83
175
|
let finalBranch = branchName;
|
|
84
176
|
try {
|
|
85
177
|
execSync(`git checkout -b "${branchName}"`, { cwd: root, stdio: ["pipe", "pipe", "pipe"] });
|
|
@@ -100,7 +192,7 @@ function createSessionBranchLocally(root, ctx) {
|
|
|
100
192
|
ctx.ui.notify(`Branch creation failed — using ${finalBranch}`, { level: "warn" });
|
|
101
193
|
}
|
|
102
194
|
}
|
|
103
|
-
// Step
|
|
195
|
+
// Step 5: Pop stash if we stashed
|
|
104
196
|
if (stashed) {
|
|
105
197
|
try {
|
|
106
198
|
execSync("git stash pop", { cwd: root, timeout: 10000, stdio: ["pipe", "pipe", "pipe"] });
|
|
@@ -130,6 +222,15 @@ function findScript(root, scriptName) {
|
|
|
130
222
|
}
|
|
131
223
|
export async function setupSession(ctx, _config) {
|
|
132
224
|
const root = ctx.session.projectRoot;
|
|
225
|
+
// ── Agent mode detection ─────────────────────────────────────────────
|
|
226
|
+
// PP agents work in isolated /tmp worktrees. They must NOT create session
|
|
227
|
+
// branches or do any git operations in the main repo.
|
|
228
|
+
isAgentMode = detectAgentMode();
|
|
229
|
+
if (isAgentMode) {
|
|
230
|
+
sessionBranch = getCurrentBranch(root);
|
|
231
|
+
ctx.log(`Agent mode detected — skipping session branching (on ${sessionBranch})`, "info");
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
133
234
|
// Call Hub session init — handles sync, doctor, branch creation
|
|
134
235
|
try {
|
|
135
236
|
const resp = await fetch(`${hubUrl}/api/session/init`, {
|
|
@@ -245,131 +346,161 @@ export async function pivot(ctx, summary) {
|
|
|
245
346
|
export async function onShutdown(ctx) {
|
|
246
347
|
const root = ctx.session.projectRoot;
|
|
247
348
|
const branch = getSessionBranch() || getCurrentBranch(root);
|
|
248
|
-
|
|
249
|
-
|
|
349
|
+
const t0 = Date.now();
|
|
350
|
+
ctx.ui.notify("Ending session…", { level: "info" });
|
|
351
|
+
// ── Agent mode: skip all git operations ──────────────────────────────
|
|
352
|
+
if (isAgentMode) {
|
|
353
|
+
ctx.log("Agent mode — skipping session cleanup (no branching was done)", "debug");
|
|
354
|
+
ctx.emit("hook:session-end", { session: ctx.session.id, branch, ts: new Date().toISOString() });
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
// ── PHASE 1: Fire non-blocking tasks immediately ─────────────────────
|
|
358
|
+
// These run in parallel with the sequential git ops below.
|
|
359
|
+
// Using async I/O so they actually progress while git work happens.
|
|
360
|
+
// 1a. Hub API end (fire-and-forget, 5s cap)
|
|
361
|
+
const hubP = fetch(`${hubUrl}/api/session/end`, {
|
|
362
|
+
method: "POST",
|
|
363
|
+
headers: {
|
|
364
|
+
"Content-Type": "application/json",
|
|
365
|
+
...(authToken ? { Authorization: `Bearer ${authToken}` } : {}),
|
|
366
|
+
},
|
|
367
|
+
body: JSON.stringify({ runtime: "pi" }),
|
|
368
|
+
signal: AbortSignal.timeout(5000),
|
|
369
|
+
}).then(() => { ctx.log("Hub session closed", "debug"); })
|
|
370
|
+
.catch(() => { ctx.log("Hub session end failed", "debug"); });
|
|
371
|
+
// 1b. Synopsis generation (read-only, safe to run during git ops)
|
|
372
|
+
const synopsisP = execAsync("jfl synopsis 4 2>/dev/null || true", { cwd: root, timeout: 10000 })
|
|
373
|
+
.then(r => r.stdout.trim())
|
|
374
|
+
.catch(() => "");
|
|
375
|
+
// 1c. Memory indexing (read-only index build, safe to run in parallel)
|
|
376
|
+
const memoryP = execAsync("jfl memory-index 2>/dev/null || true", { cwd: root, timeout: 15000 })
|
|
377
|
+
.then(() => { ctx.log("Memory indexed", "debug"); })
|
|
378
|
+
.catch(() => { ctx.log("Memory index skipped", "debug"); });
|
|
379
|
+
// ── PHASE 2: Sequential git ops (critical path) ─────────────────────
|
|
380
|
+
// These MUST be ordered: commit → merge → push
|
|
381
|
+
// Using async exec so parallel tasks can progress between steps.
|
|
382
|
+
// 2a. Journal check
|
|
250
383
|
const journalPath = join(root, ".jfl", "journal", `${branch}.jsonl`);
|
|
251
384
|
const hasJournal = existsSync(journalPath) && readFileSync(journalPath, "utf-8").trim().length > 0;
|
|
252
385
|
if (!hasJournal) {
|
|
253
386
|
ctx.ui.notify("⚠️ No journal entry for this session. Context will be lost.\n" +
|
|
254
387
|
` File: .jfl/journal/${branch}.jsonl`, { level: "warn" });
|
|
255
388
|
}
|
|
256
|
-
//
|
|
389
|
+
// 2b. Kill auto-commit daemon
|
|
257
390
|
if (autoCommitProcess) {
|
|
258
391
|
try {
|
|
259
392
|
autoCommitProcess.kill();
|
|
260
393
|
}
|
|
261
394
|
catch { }
|
|
262
395
|
autoCommitProcess = null;
|
|
263
|
-
ctx.ui.notify(" ✓ Auto-commit stopped", { level: "info" });
|
|
264
396
|
}
|
|
265
|
-
//
|
|
397
|
+
// 2c. Auto-commit any uncommitted changes (async — doesn't block event loop)
|
|
266
398
|
try {
|
|
267
|
-
const status =
|
|
399
|
+
const status = (await execAsync("git status --porcelain", { cwd: root, timeout: 3000 })).stdout.trim();
|
|
268
400
|
if (status) {
|
|
269
|
-
|
|
270
|
-
ctx.ui.notify(" ✓
|
|
401
|
+
await execAsync("git add -A && git commit -m 'auto: session-end save' --no-verify", { cwd: root, timeout: 5000 });
|
|
402
|
+
ctx.ui.notify(" ✓ Changes saved", { level: "info" });
|
|
271
403
|
}
|
|
272
404
|
}
|
|
273
405
|
catch { }
|
|
274
|
-
//
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
method: "POST",
|
|
278
|
-
headers: {
|
|
279
|
-
"Content-Type": "application/json",
|
|
280
|
-
...(authToken ? { Authorization: `Bearer ${authToken}` } : {}),
|
|
281
|
-
},
|
|
282
|
-
body: JSON.stringify({ runtime: "pi" }),
|
|
283
|
-
signal: AbortSignal.timeout(5000),
|
|
284
|
-
});
|
|
285
|
-
ctx.ui.notify(" ✓ Hub session closed", { level: "info" });
|
|
286
|
-
}
|
|
287
|
-
catch {
|
|
288
|
-
ctx.log("Hub session end failed — running local cleanup", "debug");
|
|
289
|
-
}
|
|
290
|
-
// ── 5. Merge session branch back (parity with CC session-cleanup.sh) ─
|
|
406
|
+
// 2d. Merge session branch
|
|
407
|
+
let mergeOk = false;
|
|
408
|
+
let workingBranch = "main";
|
|
291
409
|
if (branch.startsWith("session-")) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
ctx.ui.notify(` ⚠ Skipped merge — already on ${currentGitBranch}`, { level: "info" });
|
|
298
|
-
}
|
|
299
|
-
else
|
|
300
|
-
try {
|
|
301
|
-
// Get working branch from config or default to main
|
|
302
|
-
let workingBranch = "main";
|
|
303
|
-
const configPath = join(root, ".jfl", "config.json");
|
|
304
|
-
if (existsSync(configPath)) {
|
|
305
|
-
try {
|
|
306
|
-
const config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
307
|
-
if (config.working_branch)
|
|
308
|
-
workingBranch = config.working_branch;
|
|
309
|
-
}
|
|
310
|
-
catch { }
|
|
311
|
-
}
|
|
312
|
-
// Remove stale lock files that block git operations
|
|
313
|
-
const lockFile = join(root, ".git", "index.lock");
|
|
314
|
-
if (existsSync(lockFile)) {
|
|
315
|
-
try {
|
|
316
|
-
require("fs").unlinkSync(lockFile);
|
|
317
|
-
}
|
|
318
|
-
catch { }
|
|
319
|
-
}
|
|
320
|
-
// Commit any dirty tracked files before switching branches
|
|
321
|
-
try {
|
|
322
|
-
execSync("git add -A && git commit -m 'session: auto-commit before merge' --no-verify", {
|
|
323
|
-
cwd: root, timeout: 10000, stdio: "pipe",
|
|
324
|
-
});
|
|
325
|
-
}
|
|
326
|
-
catch { } // OK if nothing to commit
|
|
327
|
-
// Push session branch first
|
|
410
|
+
try {
|
|
411
|
+
workingBranch = getWorkingBranch(root);
|
|
412
|
+
// Remove stale lock files
|
|
413
|
+
const lockFile = join(root, ".git", "index.lock");
|
|
414
|
+
if (existsSync(lockFile)) {
|
|
328
415
|
try {
|
|
329
|
-
|
|
330
|
-
ctx.ui.notify(" ✓ Session branch pushed", { level: "info" });
|
|
416
|
+
unlinkSync(lockFile);
|
|
331
417
|
}
|
|
332
418
|
catch { }
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
// Push merged working branch
|
|
419
|
+
}
|
|
420
|
+
// Ensure we're on our session branch
|
|
421
|
+
const currentGitBranch = getCurrentBranch(root);
|
|
422
|
+
if (currentGitBranch !== branch) {
|
|
338
423
|
try {
|
|
339
|
-
|
|
424
|
+
await execAsync(`git checkout "${branch}"`, { cwd: root, timeout: 10000 });
|
|
425
|
+
ctx.log(`Recovered session branch from ${currentGitBranch}`, "info");
|
|
340
426
|
}
|
|
341
|
-
catch {
|
|
342
|
-
|
|
427
|
+
catch {
|
|
428
|
+
ctx.log(`Cannot checkout ${branch} — attempting merge anyway`, "warn");
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
// Commit any remaining dirty state
|
|
432
|
+
try {
|
|
433
|
+
await execAsync("git add -A && git commit -m 'session: auto-commit before merge' --no-verify", { cwd: root, timeout: 10000 });
|
|
434
|
+
}
|
|
435
|
+
catch { } // OK if nothing to commit
|
|
436
|
+
// Merge session into working branch (skip session branch push — we'll push working branch after merge)
|
|
437
|
+
await execAsync(`git checkout "${workingBranch}"`, { cwd: root, timeout: 5000 });
|
|
438
|
+
await execAsync(`git merge "${branch}" --no-edit`, { cwd: root, timeout: 10000 });
|
|
439
|
+
ctx.ui.notify(` ✓ Merged → ${workingBranch}`, { level: "info" });
|
|
440
|
+
mergeOk = true;
|
|
441
|
+
// Delete local session branch immediately (fast, no network)
|
|
442
|
+
try {
|
|
443
|
+
await execAsync(`git branch -d "${branch}"`, { cwd: root, timeout: 5000 });
|
|
444
|
+
}
|
|
445
|
+
catch { }
|
|
446
|
+
}
|
|
447
|
+
catch (err) {
|
|
448
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
449
|
+
if (msg.includes("CONFLICT") || msg.includes("conflict")) {
|
|
450
|
+
ctx.ui.notify(` ⚠ Merge conflict — branch ${branch} preserved`, { level: "warn" });
|
|
343
451
|
try {
|
|
344
|
-
|
|
345
|
-
execSync(`git push origin --delete ${branch}`, { cwd: root, timeout: 10000, stdio: "pipe" });
|
|
346
|
-
ctx.ui.notify(" ✓ Session branch cleaned up", { level: "info" });
|
|
452
|
+
await execAsync(`git checkout "${branch}"`, { cwd: root, timeout: 5000 });
|
|
347
453
|
}
|
|
348
454
|
catch { }
|
|
349
455
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
// Switch back to session branch so user can resolve
|
|
355
|
-
try {
|
|
356
|
-
execSync(`git checkout ${branch}`, { cwd: root, timeout: 5000, stdio: "pipe" });
|
|
357
|
-
}
|
|
358
|
-
catch { }
|
|
359
|
-
}
|
|
360
|
-
else {
|
|
361
|
-
ctx.ui.notify(` ⚠ Branch merge failed: ${msg.slice(0, 80)}`, { level: "warn" });
|
|
456
|
+
else {
|
|
457
|
+
ctx.ui.notify(` ⚠ Merge failed: ${msg.slice(0, 100)}`, { level: "warn" });
|
|
458
|
+
try {
|
|
459
|
+
await execAsync(`git checkout "${branch}"`, { cwd: root, timeout: 5000 });
|
|
362
460
|
}
|
|
461
|
+
catch { }
|
|
363
462
|
}
|
|
463
|
+
}
|
|
364
464
|
}
|
|
365
|
-
// ──
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
465
|
+
// ── PHASE 3: Parallel push + cleanup + collect ───────────────────────
|
|
466
|
+
// Push and remote cleanup are network I/O — run them in parallel with
|
|
467
|
+
// synopsis/memory collection. Single git push command does both push +
|
|
468
|
+
// remote branch delete to avoid lock contention.
|
|
469
|
+
const pushP = (async () => {
|
|
470
|
+
if (!mergeOk)
|
|
471
|
+
return;
|
|
369
472
|
try {
|
|
370
|
-
|
|
473
|
+
// Single push: update working branch AND delete remote session branch
|
|
474
|
+
// This avoids two separate network round-trips and git lock contention
|
|
475
|
+
await execAsync(`git push origin "${workingBranch}" ":${branch}" 2>/dev/null || git push origin "${workingBranch}" 2>/dev/null || true`, { cwd: root, timeout: 20000 });
|
|
476
|
+
ctx.ui.notify(" ✓ Pushed & cleaned up remote", { level: "info" });
|
|
477
|
+
}
|
|
478
|
+
catch {
|
|
479
|
+
ctx.log("Push failed — run manually: git push", "warn");
|
|
480
|
+
}
|
|
481
|
+
})();
|
|
482
|
+
// ── PHASE 4: Await all parallel work ─────────────────────────────────
|
|
483
|
+
const [, synopsisResult] = await Promise.allSettled([hubP, synopsisP, memoryP, pushP]);
|
|
484
|
+
// Show synopsis if we got one
|
|
485
|
+
if (synopsisResult.status === "fulfilled" && synopsisResult.value) {
|
|
486
|
+
const lines = synopsisResult.value.split("\n");
|
|
487
|
+
// Show condensed version — first 20 lines max
|
|
488
|
+
const condensed = lines.slice(0, 20).join("\n");
|
|
489
|
+
if (condensed.trim()) {
|
|
490
|
+
ctx.ui.notify(`\n${condensed}`, { level: "info" });
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
const elapsed = ((Date.now() - t0) / 1000).toFixed(1);
|
|
494
|
+
ctx.ui.notify(`✓ Session ended (${elapsed}s)`, { level: "info" });
|
|
495
|
+
// ── Fallback cleanup script for non-session branches ─────────────────
|
|
496
|
+
if (!branch.startsWith("session-")) {
|
|
497
|
+
const cleanupScript = findScript(root, "session-cleanup.sh");
|
|
498
|
+
if (cleanupScript) {
|
|
499
|
+
try {
|
|
500
|
+
await execAsync(`bash "${cleanupScript}"`, { cwd: root, timeout: 10000 });
|
|
501
|
+
}
|
|
502
|
+
catch { }
|
|
371
503
|
}
|
|
372
|
-
catch { }
|
|
373
504
|
}
|
|
374
505
|
ctx.emit("hook:session-end", {
|
|
375
506
|
session: ctx.session.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../extensions/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../extensions/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -329,7 +329,30 @@ export default async function jflExtension(pi: any): Promise<void> {
|
|
|
329
329
|
|
|
330
330
|
pi.setSessionName(`JFL: ${projectName}`)
|
|
331
331
|
|
|
332
|
-
// ───
|
|
332
|
+
// ─── Agent mode: minimal setup, no ceremony ──────────────────────
|
|
333
|
+
// PP agents and RL agents set JFL_AGENT_MODE=1. They need tools
|
|
334
|
+
// (memory, training buffer, hub) but NOT session branching, onboarding,
|
|
335
|
+
// header/footer/shortcuts, startup briefing, or any TUI elements.
|
|
336
|
+
// This cuts startup from 2+ minutes to <5 seconds.
|
|
337
|
+
const isAgentMode = process.env.JFL_AGENT_MODE === "1" || process.env.JFL_PP_SPAWNED === "1"
|
|
338
|
+
|
|
339
|
+
if (isAgentMode) {
|
|
340
|
+
// Agent mode: essential tools only, no ceremony
|
|
341
|
+
ctx.log("Agent mode — minimal setup (tools only, no ceremony)", "info")
|
|
342
|
+
|
|
343
|
+
await setupSession(ctx, config) // Skips branching internally (detects agent mode)
|
|
344
|
+
setupMemoryTool(ctx) // Memory search — agents need project context
|
|
345
|
+
await setupTrainingBufferTool(ctx, config) // Record training tuples from agent work
|
|
346
|
+
await setupEvalTool(ctx, config) // Run evals to check improvement
|
|
347
|
+
await setupHubTools(ctx, config) // Hub connection for tracking
|
|
348
|
+
|
|
349
|
+
ctx.log(`JFL Agent: ${projectName} — ready (${Date.now() - sessionStartTime}ms)`)
|
|
350
|
+
return
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
// ─── Interactive mode: full ceremony ──────────────────────────────
|
|
354
|
+
|
|
355
|
+
// Header first — replace Pi's default before anything renders
|
|
333
356
|
setupHeader(ctx, config)
|
|
334
357
|
|
|
335
358
|
// ─── Hub first, then animation + tools in parallel ─────────────
|