@anthropologies/claudestory 0.1.25 → 0.1.26
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/cli.js +19 -9
- package/dist/mcp.js +16 -6
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -7200,6 +7200,16 @@ var init_finalize = __esm({
|
|
|
7200
7200
|
}
|
|
7201
7201
|
}
|
|
7202
7202
|
}
|
|
7203
|
+
const ticketId = ctx.state.ticket?.id;
|
|
7204
|
+
if (ticketId) {
|
|
7205
|
+
const ticketPath = `.story/tickets/${ticketId}.json`;
|
|
7206
|
+
if (!stagedResult.data.includes(ticketPath)) {
|
|
7207
|
+
return {
|
|
7208
|
+
action: "retry",
|
|
7209
|
+
instruction: `Pre-commit hooks may have modified the staged set. Ticket file ${ticketPath} is no longer staged. Run \`git add ${ticketPath}\` and call me again with completedAction: "files_staged".`
|
|
7210
|
+
};
|
|
7211
|
+
}
|
|
7212
|
+
}
|
|
7203
7213
|
ctx.writeState({ finalizeCheckpoint: "precommit_passed" });
|
|
7204
7214
|
return {
|
|
7205
7215
|
action: "retry",
|
|
@@ -7769,7 +7779,7 @@ async function handleStart(root, args) {
|
|
|
7769
7779
|
return guideError(new Error(
|
|
7770
7780
|
`Stale compacted session ${existing.state.sessionId} found (prepared ${Math.round((Date.now() - preparedAt) / 6e4)} minutes ago, never resumed). SessionStart hook is no longer prompting for this session.
|
|
7771
7781
|
- To resume anyway: call action "resume" with sessionId "${existing.state.sessionId}"
|
|
7772
|
-
- To abandon and start fresh: run "claudestory session
|
|
7782
|
+
- To abandon and start fresh: run "claudestory session stop ${existing.state.sessionId}"`
|
|
7773
7783
|
));
|
|
7774
7784
|
}
|
|
7775
7785
|
return guideError(new Error(
|
|
@@ -7790,7 +7800,7 @@ async function handleStart(root, args) {
|
|
|
7790
7800
|
return guideError(new Error(
|
|
7791
7801
|
`${resumable.stale ? "Stale c" : "C"}ompacted session ${sid} found (prepared ${Math.round((Date.now() - preparedAt) / 6e4)} minutes ago, lease expired but not resumed).
|
|
7792
7802
|
- To resume: call action "resume" with sessionId "${sid}"
|
|
7793
|
-
- To abandon: run "claudestory session
|
|
7803
|
+
- To abandon: run "claudestory session stop ${sid}"`
|
|
7794
7804
|
));
|
|
7795
7805
|
}
|
|
7796
7806
|
}
|
|
@@ -8309,7 +8319,7 @@ async function handleReport(root, args) {
|
|
|
8309
8319
|
const report = args.report;
|
|
8310
8320
|
if (state.compactPending && currentState !== "COMPACT") {
|
|
8311
8321
|
return guideError(new Error(
|
|
8312
|
-
`Session has pending compaction in inconsistent state (${currentState}). Call action: "resume" or run "claudestory session
|
|
8322
|
+
`Session has pending compaction in inconsistent state (${currentState}). Call action: "resume" or run "claudestory session stop ${args.sessionId}".`
|
|
8313
8323
|
));
|
|
8314
8324
|
}
|
|
8315
8325
|
const recipe = resolveRecipeFromState(state);
|
|
@@ -8338,7 +8348,7 @@ async function handleResume(root, args) {
|
|
|
8338
8348
|
const resumeState = info.state.preCompactState;
|
|
8339
8349
|
if (!resumeState || !WORKFLOW_STATES.includes(resumeState)) {
|
|
8340
8350
|
return guideError(new Error(
|
|
8341
|
-
`Session ${args.sessionId} has invalid preCompactState: ${resumeState}. Run "claudestory session
|
|
8351
|
+
`Session ${args.sessionId} has invalid preCompactState: ${resumeState}. Run "claudestory session stop ${args.sessionId}" to terminate.`
|
|
8342
8352
|
));
|
|
8343
8353
|
}
|
|
8344
8354
|
const headResult = await gitHead(root);
|
|
@@ -8355,7 +8365,7 @@ async function handleResume(root, args) {
|
|
|
8355
8365
|
data: { reason: "cannot_validate_head", expectedHead: expectedHead ?? null, gitAvailable: headResult.ok }
|
|
8356
8366
|
});
|
|
8357
8367
|
return guideError(new Error(
|
|
8358
|
-
`Cannot validate git state for session ${args.sessionId}. Check git status and try "resume" again, or run "claudestory session
|
|
8368
|
+
`Cannot validate git state for session ${args.sessionId}. Check git status and try "resume" again, or run "claudestory session stop ${args.sessionId}" to end the session.`
|
|
8359
8369
|
));
|
|
8360
8370
|
}
|
|
8361
8371
|
if (expectedHead && headResult.data.hash !== expectedHead) {
|
|
@@ -10091,7 +10101,7 @@ var init_mcp = __esm({
|
|
|
10091
10101
|
init_init();
|
|
10092
10102
|
ENV_VAR2 = "CLAUDESTORY_PROJECT_ROOT";
|
|
10093
10103
|
CONFIG_PATH2 = ".story/config.json";
|
|
10094
|
-
version = "0.1.
|
|
10104
|
+
version = "0.1.26";
|
|
10095
10105
|
main().catch((err) => {
|
|
10096
10106
|
process.stderr.write(`Fatal: ${err instanceof Error ? err.message : String(err)}
|
|
10097
10107
|
`);
|
|
@@ -13255,7 +13265,7 @@ function registerSessionCommand(yargs) {
|
|
|
13255
13265
|
await handleSessionResumePrompt2();
|
|
13256
13266
|
}
|
|
13257
13267
|
).command(
|
|
13258
|
-
"clear-compact",
|
|
13268
|
+
"clear-compact [sessionId]",
|
|
13259
13269
|
"Clear stale compact marker (admin)",
|
|
13260
13270
|
(y2) => y2.positional("sessionId", {
|
|
13261
13271
|
type: "string",
|
|
@@ -13280,7 +13290,7 @@ function registerSessionCommand(yargs) {
|
|
|
13280
13290
|
}
|
|
13281
13291
|
}
|
|
13282
13292
|
).command(
|
|
13283
|
-
"stop",
|
|
13293
|
+
"stop [sessionId]",
|
|
13284
13294
|
"Stop an active session (admin)",
|
|
13285
13295
|
(y2) => y2.positional("sessionId", {
|
|
13286
13296
|
type: "string",
|
|
@@ -13369,7 +13379,7 @@ async function runCli() {
|
|
|
13369
13379
|
registerConfigCommand: registerConfigCommand2,
|
|
13370
13380
|
registerSessionCommand: registerSessionCommand2
|
|
13371
13381
|
} = await Promise.resolve().then(() => (init_register(), register_exports));
|
|
13372
|
-
const version2 = "0.1.
|
|
13382
|
+
const version2 = "0.1.26";
|
|
13373
13383
|
class HandledError extends Error {
|
|
13374
13384
|
constructor() {
|
|
13375
13385
|
super("HANDLED_ERROR");
|
package/dist/mcp.js
CHANGED
|
@@ -6722,6 +6722,16 @@ var FinalizeStage = class {
|
|
|
6722
6722
|
}
|
|
6723
6723
|
}
|
|
6724
6724
|
}
|
|
6725
|
+
const ticketId = ctx.state.ticket?.id;
|
|
6726
|
+
if (ticketId) {
|
|
6727
|
+
const ticketPath = `.story/tickets/${ticketId}.json`;
|
|
6728
|
+
if (!stagedResult.data.includes(ticketPath)) {
|
|
6729
|
+
return {
|
|
6730
|
+
action: "retry",
|
|
6731
|
+
instruction: `Pre-commit hooks may have modified the staged set. Ticket file ${ticketPath} is no longer staged. Run \`git add ${ticketPath}\` and call me again with completedAction: "files_staged".`
|
|
6732
|
+
};
|
|
6733
|
+
}
|
|
6734
|
+
}
|
|
6725
6735
|
ctx.writeState({ finalizeCheckpoint: "precommit_passed" });
|
|
6726
6736
|
return {
|
|
6727
6737
|
action: "retry",
|
|
@@ -7258,7 +7268,7 @@ async function handleStart(root, args) {
|
|
|
7258
7268
|
return guideError(new Error(
|
|
7259
7269
|
`Stale compacted session ${existing.state.sessionId} found (prepared ${Math.round((Date.now() - preparedAt) / 6e4)} minutes ago, never resumed). SessionStart hook is no longer prompting for this session.
|
|
7260
7270
|
- To resume anyway: call action "resume" with sessionId "${existing.state.sessionId}"
|
|
7261
|
-
- To abandon and start fresh: run "claudestory session
|
|
7271
|
+
- To abandon and start fresh: run "claudestory session stop ${existing.state.sessionId}"`
|
|
7262
7272
|
));
|
|
7263
7273
|
}
|
|
7264
7274
|
return guideError(new Error(
|
|
@@ -7279,7 +7289,7 @@ async function handleStart(root, args) {
|
|
|
7279
7289
|
return guideError(new Error(
|
|
7280
7290
|
`${resumable.stale ? "Stale c" : "C"}ompacted session ${sid} found (prepared ${Math.round((Date.now() - preparedAt) / 6e4)} minutes ago, lease expired but not resumed).
|
|
7281
7291
|
- To resume: call action "resume" with sessionId "${sid}"
|
|
7282
|
-
- To abandon: run "claudestory session
|
|
7292
|
+
- To abandon: run "claudestory session stop ${sid}"`
|
|
7283
7293
|
));
|
|
7284
7294
|
}
|
|
7285
7295
|
}
|
|
@@ -7799,7 +7809,7 @@ async function handleReport(root, args) {
|
|
|
7799
7809
|
const report = args.report;
|
|
7800
7810
|
if (state.compactPending && currentState !== "COMPACT") {
|
|
7801
7811
|
return guideError(new Error(
|
|
7802
|
-
`Session has pending compaction in inconsistent state (${currentState}). Call action: "resume" or run "claudestory session
|
|
7812
|
+
`Session has pending compaction in inconsistent state (${currentState}). Call action: "resume" or run "claudestory session stop ${args.sessionId}".`
|
|
7803
7813
|
));
|
|
7804
7814
|
}
|
|
7805
7815
|
const recipe = resolveRecipeFromState(state);
|
|
@@ -7828,7 +7838,7 @@ async function handleResume(root, args) {
|
|
|
7828
7838
|
const resumeState = info.state.preCompactState;
|
|
7829
7839
|
if (!resumeState || !WORKFLOW_STATES.includes(resumeState)) {
|
|
7830
7840
|
return guideError(new Error(
|
|
7831
|
-
`Session ${args.sessionId} has invalid preCompactState: ${resumeState}. Run "claudestory session
|
|
7841
|
+
`Session ${args.sessionId} has invalid preCompactState: ${resumeState}. Run "claudestory session stop ${args.sessionId}" to terminate.`
|
|
7832
7842
|
));
|
|
7833
7843
|
}
|
|
7834
7844
|
const headResult = await gitHead(root);
|
|
@@ -7845,7 +7855,7 @@ async function handleResume(root, args) {
|
|
|
7845
7855
|
data: { reason: "cannot_validate_head", expectedHead: expectedHead ?? null, gitAvailable: headResult.ok }
|
|
7846
7856
|
});
|
|
7847
7857
|
return guideError(new Error(
|
|
7848
|
-
`Cannot validate git state for session ${args.sessionId}. Check git status and try "resume" again, or run "claudestory session
|
|
7858
|
+
`Cannot validate git state for session ${args.sessionId}. Check git status and try "resume" again, or run "claudestory session stop ${args.sessionId}" to end the session.`
|
|
7849
7859
|
));
|
|
7850
7860
|
}
|
|
7851
7861
|
if (expectedHead && headResult.data.hash !== expectedHead) {
|
|
@@ -9256,7 +9266,7 @@ async function ensureGitignoreEntries(gitignorePath, entries) {
|
|
|
9256
9266
|
// src/mcp/index.ts
|
|
9257
9267
|
var ENV_VAR2 = "CLAUDESTORY_PROJECT_ROOT";
|
|
9258
9268
|
var CONFIG_PATH2 = ".story/config.json";
|
|
9259
|
-
var version = "0.1.
|
|
9269
|
+
var version = "0.1.26";
|
|
9260
9270
|
function tryDiscoverRoot() {
|
|
9261
9271
|
const envRoot = process.env[ENV_VAR2];
|
|
9262
9272
|
if (envRoot) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anthropologies/claudestory",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Cross-session context persistence for AI coding projects. Tracks tickets, issues, roadmap, and handovers so every session builds on the last.",
|
|
6
6
|
"keywords": [
|