memctx 1.3.5 → 1.3.7
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.
|
@@ -14,9 +14,13 @@ exports.forceEndSessionRouter.post('/:sessionId', async (req, res) => {
|
|
|
14
14
|
if (!session) {
|
|
15
15
|
return res.status(404).json({ error: 'Session not found' });
|
|
16
16
|
}
|
|
17
|
-
// Allow force end if
|
|
17
|
+
// Allow force end if:
|
|
18
|
+
// 1. Session is active, OR
|
|
19
|
+
// 2. Session is completed but has no summary (summary_title is null), OR
|
|
20
|
+
// 3. Summary is still in progress
|
|
21
|
+
const hasSummary = session.summary_title !== null;
|
|
18
22
|
const summaryInProgress = session.summary_status && session.summary_status.toLowerCase() === 'in_progress';
|
|
19
|
-
if (session.status === 'completed' && !summaryInProgress) {
|
|
23
|
+
if (session.status === 'completed' && hasSummary && !summaryInProgress) {
|
|
20
24
|
return res.status(400).json({ error: 'Session already completed with summary' });
|
|
21
25
|
}
|
|
22
26
|
console.log(`[ForceEndSession] Forcing session end: ${sessionId.slice(0, 8)}`);
|
|
@@ -31,8 +35,8 @@ exports.forceEndSessionRouter.post('/:sessionId', async (req, res) => {
|
|
|
31
35
|
const project = queries_1.queries.getProject(session.project_id);
|
|
32
36
|
if (project && project.root_path) {
|
|
33
37
|
// Convert root path to Claude projects directory format
|
|
34
|
-
// Replace
|
|
35
|
-
const projectDirName = project.root_path.replace(
|
|
38
|
+
// Replace any non-alphanumeric character with -
|
|
39
|
+
const projectDirName = project.root_path.replace(/[^a-zA-Z0-9]/g, '-');
|
|
36
40
|
const claudeProjectsDir = path.join(homedir(), '.claude', 'projects', projectDirName);
|
|
37
41
|
const possiblePath = path.join(claudeProjectsDir, `${sessionId}.jsonl`);
|
|
38
42
|
if (fs.existsSync(possiblePath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"force-end-session.js","sourceRoot":"","sources":["../../../src/api/force-end-session.ts"],"names":[],"mappings":";;;AAAA,qCAA2D;AAC3D,2CAAuC;AACvC,yEAAoE;AACpE,+CAA2C;AAC3C,+CAA2C;AAE9B,QAAA,qBAAqB,GAAe,IAAA,gBAAM,GAAE,CAAA;AAEzD,6BAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;IAEhC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"force-end-session.js","sourceRoot":"","sources":["../../../src/api/force-end-session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "memctx",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "Autonomous session memory for Claude Code - automatically captures, analyzes, and summarizes your development sessions",
|
|
5
5
|
"author": "Fahad Aziz Qureshi <info@memctx.dev> (https://memctx.dev)",
|
|
6
6
|
"license": "MIT",
|