@scotthamilton77/sidekick 0.1.29 → 0.1.30
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.
|
@@ -124,3 +124,8 @@ settings:
|
|
|
124
124
|
# When non-off, the persona-voice reminder is replaced by a compact caveman
|
|
125
125
|
# directive and the statusline shows the level.
|
|
126
126
|
cavemanMode: "off"
|
|
127
|
+
# Inject persona/caveman into non-interactive (claude -p) sessions. Default
|
|
128
|
+
# false — no human reads a programmatic session, so the voice is wasted tokens.
|
|
129
|
+
# Set true to opt back in.
|
|
130
|
+
injectPersonaIntoNonInteractiveSessions: false
|
|
131
|
+
injectCavemanIntoNonInteractiveSessions: false
|
package/dist/bin.js
CHANGED
|
@@ -47579,7 +47579,7 @@ var require_build_identity = __commonJS({
|
|
|
47579
47579
|
var path_1 = __importDefault2(require("path"));
|
|
47580
47580
|
var DEV_PREFIX = "dev:";
|
|
47581
47581
|
var NO_DIST_SENTINEL = "nodist";
|
|
47582
|
-
function computeBuildIdentity(injectedVersion = true ? "0.1.
|
|
47582
|
+
function computeBuildIdentity(injectedVersion = true ? "0.1.30" : void 0, devFingerprint = computeDevFingerprint) {
|
|
47583
47583
|
return injectedVersion !== void 0 ? injectedVersion : DEV_PREFIX + devFingerprint();
|
|
47584
47584
|
}
|
|
47585
47585
|
function computeDevFingerprint() {
|
|
@@ -76837,7 +76837,9 @@ var require_types3 = __commonJS({
|
|
|
76837
76837
|
llmProfiles: {},
|
|
76838
76838
|
weights: {},
|
|
76839
76839
|
persistThroughClear: true,
|
|
76840
|
-
cavemanMode: "off"
|
|
76840
|
+
cavemanMode: "off",
|
|
76841
|
+
injectPersonaIntoNonInteractiveSessions: false,
|
|
76842
|
+
injectCavemanIntoNonInteractiveSessions: false
|
|
76841
76843
|
}
|
|
76842
76844
|
};
|
|
76843
76845
|
exports2.RESUME_MIN_CONFIDENCE = 0.7;
|
|
@@ -77776,6 +77778,10 @@ var require_update_summary = __commonJS({
|
|
|
77776
77778
|
ctx.logger.debug("Session summary disabled; skipping analysis", { sessionId, reason });
|
|
77777
77779
|
return;
|
|
77778
77780
|
}
|
|
77781
|
+
if (ctx.sessionType === "non-interactive") {
|
|
77782
|
+
ctx.logger.debug("Non-interactive session; skipping summary analysis", { sessionId, reason });
|
|
77783
|
+
return;
|
|
77784
|
+
}
|
|
77779
77785
|
try {
|
|
77780
77786
|
const countdown = await loadCountdownState(summaryState, sessionId);
|
|
77781
77787
|
const startTime = Date.now();
|
|
@@ -78148,6 +78154,28 @@ var require_dist5 = __commonJS({
|
|
|
78148
78154
|
}
|
|
78149
78155
|
});
|
|
78150
78156
|
|
|
78157
|
+
// ../feature-reminders/dist/handlers/consumption/session-type-gate.js
|
|
78158
|
+
var require_session_type_gate = __commonJS({
|
|
78159
|
+
"../feature-reminders/dist/handlers/consumption/session-type-gate.js"(exports2) {
|
|
78160
|
+
"use strict";
|
|
78161
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
78162
|
+
exports2.suppressReminderForSessionType = suppressReminderForSessionType;
|
|
78163
|
+
var types_js_1 = require_types2();
|
|
78164
|
+
var PERSONA_REMINDERS = /* @__PURE__ */ new Set([types_js_1.ReminderIds.REMEMBER_YOUR_PERSONA, types_js_1.ReminderIds.PERSONA_CHANGED]);
|
|
78165
|
+
function suppressReminderForSessionType(reminderName, sessionType, config) {
|
|
78166
|
+
if (sessionType !== "non-interactive")
|
|
78167
|
+
return false;
|
|
78168
|
+
if (PERSONA_REMINDERS.has(reminderName)) {
|
|
78169
|
+
return config.injectPersonaIntoNonInteractiveSessions !== true;
|
|
78170
|
+
}
|
|
78171
|
+
if (reminderName === types_js_1.ReminderIds.CAVEMAN_MODE) {
|
|
78172
|
+
return config.injectCavemanIntoNonInteractiveSessions !== true;
|
|
78173
|
+
}
|
|
78174
|
+
return false;
|
|
78175
|
+
}
|
|
78176
|
+
}
|
|
78177
|
+
});
|
|
78178
|
+
|
|
78151
78179
|
// ../feature-reminders/dist/handlers/staging/stage-persona-reminders.js
|
|
78152
78180
|
var require_stage_persona_reminders = __commonJS({
|
|
78153
78181
|
"../feature-reminders/dist/handlers/staging/stage-persona-reminders.js"(exports2) {
|
|
@@ -78163,6 +78191,7 @@ var require_stage_persona_reminders = __commonJS({
|
|
|
78163
78191
|
var types_1 = require_dist();
|
|
78164
78192
|
var reminder_utils_js_1 = require_reminder_utils();
|
|
78165
78193
|
var types_js_1 = require_types2();
|
|
78194
|
+
var session_type_gate_js_1 = require_session_type_gate();
|
|
78166
78195
|
var throttle_utils_js_1 = require_throttle_utils();
|
|
78167
78196
|
async function restagePersonaRemindersForActiveSessions(ctxFactory, sessionIds, logger) {
|
|
78168
78197
|
logger.info("Re-staging persona reminders for active sessions", { count: sessionIds.length });
|
|
@@ -78378,6 +78407,10 @@ var require_stage_persona_reminders = __commonJS({
|
|
|
78378
78407
|
async function resolvePersonaContextForSnapshot(ctx, sessionId) {
|
|
78379
78408
|
if (!isPersonaInjectionEnabled(ctx))
|
|
78380
78409
|
return void 0;
|
|
78410
|
+
const personaConfig = ctx.config.getFeature("session-summary").settings?.personas ?? {};
|
|
78411
|
+
if ((0, session_type_gate_js_1.suppressReminderForSessionType)(types_js_1.ReminderIds.REMEMBER_YOUR_PERSONA, ctx.sessionType, personaConfig)) {
|
|
78412
|
+
return void 0;
|
|
78413
|
+
}
|
|
78381
78414
|
const persona = await loadPersonaForSession(ctx, sessionId);
|
|
78382
78415
|
if (!persona)
|
|
78383
78416
|
return void 0;
|
|
@@ -78774,6 +78807,7 @@ var require_consumption_handler_factory = __commonJS({
|
|
|
78774
78807
|
var events_js_1 = require_events2();
|
|
78775
78808
|
var types_1 = require_dist();
|
|
78776
78809
|
var cli_staging_reader_js_1 = require_cli_staging_reader();
|
|
78810
|
+
var session_type_gate_js_1 = require_session_type_gate();
|
|
78777
78811
|
function buildDefaultResponse(reminder, supportsBlocking) {
|
|
78778
78812
|
const response = {};
|
|
78779
78813
|
if (supportsBlocking && reminder.blocking) {
|
|
@@ -78807,7 +78841,8 @@ var require_consumption_handler_factory = __commonJS({
|
|
|
78807
78841
|
paths: cliCtx.paths,
|
|
78808
78842
|
sessionId
|
|
78809
78843
|
});
|
|
78810
|
-
const
|
|
78844
|
+
const personaConfig = cliCtx.config.getFeature("session-summary").settings?.personas ?? {};
|
|
78845
|
+
const reminders = reader.listReminders(hook).filter((r) => !(0, session_type_gate_js_1.suppressReminderForSessionType)(r.name, event.context.sessionType, personaConfig));
|
|
78811
78846
|
if (reminders.length === 0) {
|
|
78812
78847
|
return { response: {} };
|
|
78813
78848
|
}
|
|
@@ -79879,7 +79914,8 @@ var require_hook = __commonJS({
|
|
|
79879
79914
|
timestamp: Date.now(),
|
|
79880
79915
|
correlationId,
|
|
79881
79916
|
...input.agentId !== void 0 && { agentId: input.agentId },
|
|
79882
|
-
...input.agentType !== void 0 && { agentType: input.agentType }
|
|
79917
|
+
...input.agentType !== void 0 && { agentType: input.agentType },
|
|
79918
|
+
sessionType: input.sessionType
|
|
79883
79919
|
};
|
|
79884
79920
|
switch (hookName) {
|
|
79885
79921
|
case "SessionStart":
|
|
@@ -87523,6 +87559,7 @@ var require_cli = __commonJS({
|
|
|
87523
87559
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
87524
87560
|
exports2.UnknownOptionError = void 0;
|
|
87525
87561
|
exports2.parseArgs = parseArgs;
|
|
87562
|
+
exports2.resolveSessionType = resolveSessionType;
|
|
87526
87563
|
exports2.parseHookInput = parseHookInput;
|
|
87527
87564
|
exports2.initializeRuntime = initializeRuntime;
|
|
87528
87565
|
exports2.initializeSession = initializeSession;
|
|
@@ -87531,7 +87568,7 @@ var require_cli = __commonJS({
|
|
|
87531
87568
|
var promises_12 = require("node:fs/promises");
|
|
87532
87569
|
var node_stream_1 = require("node:stream");
|
|
87533
87570
|
var yargs_parser_1 = __importDefault2(require_build());
|
|
87534
|
-
var VERSION = true ? "0.1.
|
|
87571
|
+
var VERSION = true ? "0.1.30" : "dev";
|
|
87535
87572
|
var SANDBOX_ERROR_MESSAGE = `Error: Daemon commands cannot run in sandbox mode.
|
|
87536
87573
|
|
|
87537
87574
|
Claude Code's sandbox blocks Unix socket operations required for daemon IPC.
|
|
@@ -87661,7 +87698,14 @@ Example: { "command": "pnpm sidekick daemon status", "dangerouslyDisableSandbox"
|
|
|
87661
87698
|
writeStatus: Boolean(parsed["write-status"])
|
|
87662
87699
|
};
|
|
87663
87700
|
}
|
|
87664
|
-
function
|
|
87701
|
+
function resolveSessionType(agentId, entrypoint) {
|
|
87702
|
+
if (agentId)
|
|
87703
|
+
return "agent";
|
|
87704
|
+
if (entrypoint === "sdk-cli")
|
|
87705
|
+
return "non-interactive";
|
|
87706
|
+
return "interactive";
|
|
87707
|
+
}
|
|
87708
|
+
function parseHookInput(stdinData, entrypoint) {
|
|
87665
87709
|
if (!stdinData?.trim()) {
|
|
87666
87710
|
return void 0;
|
|
87667
87711
|
}
|
|
@@ -87686,6 +87730,7 @@ Example: { "command": "pnpm sidekick daemon status", "dangerouslyDisableSandbox"
|
|
|
87686
87730
|
permissionMode,
|
|
87687
87731
|
agentId,
|
|
87688
87732
|
agentType,
|
|
87733
|
+
sessionType: resolveSessionType(agentId, entrypoint),
|
|
87689
87734
|
raw
|
|
87690
87735
|
};
|
|
87691
87736
|
} catch {
|
|
@@ -87696,7 +87741,7 @@ Example: { "command": "pnpm sidekick daemon status", "dangerouslyDisableSandbox"
|
|
|
87696
87741
|
const stderr = options.stderr ?? new node_stream_1.PassThrough();
|
|
87697
87742
|
const parsed = parseArgs(options.argv);
|
|
87698
87743
|
const homeDir = options.homeDir ?? options.env?.HOME;
|
|
87699
|
-
const hookInput = parseHookInput(options.stdinData);
|
|
87744
|
+
const hookInput = parseHookInput(options.stdinData, options.env?.CLAUDE_CODE_ENTRYPOINT);
|
|
87700
87745
|
const runtime = (0, runtime_1.bootstrapRuntime)({
|
|
87701
87746
|
projectDir: parsed.projectDir,
|
|
87702
87747
|
logLevel: parsed.logLevel,
|
package/dist/daemon.js
CHANGED
|
@@ -46603,7 +46603,7 @@ var require_build_identity = __commonJS({
|
|
|
46603
46603
|
var path_1 = __importDefault(require("path"));
|
|
46604
46604
|
var DEV_PREFIX = "dev:";
|
|
46605
46605
|
var NO_DIST_SENTINEL = "nodist";
|
|
46606
|
-
function computeBuildIdentity(injectedVersion = true ? "0.1.
|
|
46606
|
+
function computeBuildIdentity(injectedVersion = true ? "0.1.30" : void 0, devFingerprint = computeDevFingerprint) {
|
|
46607
46607
|
return injectedVersion !== void 0 ? injectedVersion : DEV_PREFIX + devFingerprint();
|
|
46608
46608
|
}
|
|
46609
46609
|
function computeDevFingerprint() {
|
|
@@ -75601,7 +75601,9 @@ var require_types3 = __commonJS({
|
|
|
75601
75601
|
llmProfiles: {},
|
|
75602
75602
|
weights: {},
|
|
75603
75603
|
persistThroughClear: true,
|
|
75604
|
-
cavemanMode: "off"
|
|
75604
|
+
cavemanMode: "off",
|
|
75605
|
+
injectPersonaIntoNonInteractiveSessions: false,
|
|
75606
|
+
injectCavemanIntoNonInteractiveSessions: false
|
|
75605
75607
|
}
|
|
75606
75608
|
};
|
|
75607
75609
|
exports2.RESUME_MIN_CONFIDENCE = 0.7;
|
|
@@ -76540,6 +76542,10 @@ var require_update_summary = __commonJS({
|
|
|
76540
76542
|
ctx.logger.debug("Session summary disabled; skipping analysis", { sessionId, reason });
|
|
76541
76543
|
return;
|
|
76542
76544
|
}
|
|
76545
|
+
if (ctx.sessionType === "non-interactive") {
|
|
76546
|
+
ctx.logger.debug("Non-interactive session; skipping summary analysis", { sessionId, reason });
|
|
76547
|
+
return;
|
|
76548
|
+
}
|
|
76543
76549
|
try {
|
|
76544
76550
|
const countdown = await loadCountdownState(summaryState, sessionId);
|
|
76545
76551
|
const startTime = Date.now();
|
|
@@ -76912,6 +76918,28 @@ var require_dist5 = __commonJS({
|
|
|
76912
76918
|
}
|
|
76913
76919
|
});
|
|
76914
76920
|
|
|
76921
|
+
// ../feature-reminders/dist/handlers/consumption/session-type-gate.js
|
|
76922
|
+
var require_session_type_gate = __commonJS({
|
|
76923
|
+
"../feature-reminders/dist/handlers/consumption/session-type-gate.js"(exports2) {
|
|
76924
|
+
"use strict";
|
|
76925
|
+
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
76926
|
+
exports2.suppressReminderForSessionType = suppressReminderForSessionType;
|
|
76927
|
+
var types_js_1 = require_types2();
|
|
76928
|
+
var PERSONA_REMINDERS = /* @__PURE__ */ new Set([types_js_1.ReminderIds.REMEMBER_YOUR_PERSONA, types_js_1.ReminderIds.PERSONA_CHANGED]);
|
|
76929
|
+
function suppressReminderForSessionType(reminderName, sessionType, config) {
|
|
76930
|
+
if (sessionType !== "non-interactive")
|
|
76931
|
+
return false;
|
|
76932
|
+
if (PERSONA_REMINDERS.has(reminderName)) {
|
|
76933
|
+
return config.injectPersonaIntoNonInteractiveSessions !== true;
|
|
76934
|
+
}
|
|
76935
|
+
if (reminderName === types_js_1.ReminderIds.CAVEMAN_MODE) {
|
|
76936
|
+
return config.injectCavemanIntoNonInteractiveSessions !== true;
|
|
76937
|
+
}
|
|
76938
|
+
return false;
|
|
76939
|
+
}
|
|
76940
|
+
}
|
|
76941
|
+
});
|
|
76942
|
+
|
|
76915
76943
|
// ../feature-reminders/dist/handlers/staging/stage-persona-reminders.js
|
|
76916
76944
|
var require_stage_persona_reminders = __commonJS({
|
|
76917
76945
|
"../feature-reminders/dist/handlers/staging/stage-persona-reminders.js"(exports2) {
|
|
@@ -76927,6 +76955,7 @@ var require_stage_persona_reminders = __commonJS({
|
|
|
76927
76955
|
var types_1 = require_dist();
|
|
76928
76956
|
var reminder_utils_js_1 = require_reminder_utils();
|
|
76929
76957
|
var types_js_1 = require_types2();
|
|
76958
|
+
var session_type_gate_js_1 = require_session_type_gate();
|
|
76930
76959
|
var throttle_utils_js_1 = require_throttle_utils();
|
|
76931
76960
|
async function restagePersonaRemindersForActiveSessions(ctxFactory, sessionIds, logger) {
|
|
76932
76961
|
logger.info("Re-staging persona reminders for active sessions", { count: sessionIds.length });
|
|
@@ -77142,6 +77171,10 @@ var require_stage_persona_reminders = __commonJS({
|
|
|
77142
77171
|
async function resolvePersonaContextForSnapshot(ctx, sessionId) {
|
|
77143
77172
|
if (!isPersonaInjectionEnabled(ctx))
|
|
77144
77173
|
return void 0;
|
|
77174
|
+
const personaConfig = ctx.config.getFeature("session-summary").settings?.personas ?? {};
|
|
77175
|
+
if ((0, session_type_gate_js_1.suppressReminderForSessionType)(types_js_1.ReminderIds.REMEMBER_YOUR_PERSONA, ctx.sessionType, personaConfig)) {
|
|
77176
|
+
return void 0;
|
|
77177
|
+
}
|
|
77145
77178
|
const persona = await loadPersonaForSession(ctx, sessionId);
|
|
77146
77179
|
if (!persona)
|
|
77147
77180
|
return void 0;
|
|
@@ -77538,6 +77571,7 @@ var require_consumption_handler_factory = __commonJS({
|
|
|
77538
77571
|
var events_js_1 = require_events2();
|
|
77539
77572
|
var types_1 = require_dist();
|
|
77540
77573
|
var cli_staging_reader_js_1 = require_cli_staging_reader();
|
|
77574
|
+
var session_type_gate_js_1 = require_session_type_gate();
|
|
77541
77575
|
function buildDefaultResponse(reminder, supportsBlocking) {
|
|
77542
77576
|
const response = {};
|
|
77543
77577
|
if (supportsBlocking && reminder.blocking) {
|
|
@@ -77571,7 +77605,8 @@ var require_consumption_handler_factory = __commonJS({
|
|
|
77571
77605
|
paths: cliCtx.paths,
|
|
77572
77606
|
sessionId
|
|
77573
77607
|
});
|
|
77574
|
-
const
|
|
77608
|
+
const personaConfig = cliCtx.config.getFeature("session-summary").settings?.personas ?? {};
|
|
77609
|
+
const reminders = reader.listReminders(hook).filter((r) => !(0, session_type_gate_js_1.suppressReminderForSessionType)(r.name, event.context.sessionType, personaConfig));
|
|
77575
77610
|
if (reminders.length === 0) {
|
|
77576
77611
|
return { response: {} };
|
|
77577
77612
|
}
|
|
@@ -80018,12 +80053,18 @@ var require_daemon_helpers = __commonJS({
|
|
|
80018
80053
|
"use strict";
|
|
80019
80054
|
Object.defineProperty(exports2, "__esModule", { value: true });
|
|
80020
80055
|
exports2.REGISTRY_HEARTBEAT_INTERVAL_MS = exports2.EVICTION_INTERVAL_MS = exports2.HEARTBEAT_INTERVAL_MS = exports2.IDLE_CHECK_INTERVAL_MS = exports2.VERSION = void 0;
|
|
80056
|
+
exports2.nextStoredSessionType = nextStoredSessionType;
|
|
80021
80057
|
exports2.diffConfigs = diffConfigs;
|
|
80022
80058
|
exports2.resolveTranscriptPath = resolveTranscriptPath;
|
|
80023
80059
|
exports2.shouldRunStartupCleanup = shouldRunStartupCleanup;
|
|
80024
80060
|
exports2.getPersonaInjectionEnabled = getPersonaInjectionEnabled;
|
|
80025
80061
|
exports2.getCavemanConfigDefault = getCavemanConfigDefault;
|
|
80026
80062
|
var core_1 = require_dist4();
|
|
80063
|
+
function nextStoredSessionType(current, incoming) {
|
|
80064
|
+
if (incoming && incoming !== "agent")
|
|
80065
|
+
return incoming;
|
|
80066
|
+
return current;
|
|
80067
|
+
}
|
|
80027
80068
|
exports2.VERSION = (0, core_1.computeBuildIdentity)();
|
|
80028
80069
|
exports2.IDLE_CHECK_INTERVAL_MS = 30 * 1e3;
|
|
80029
80070
|
exports2.HEARTBEAT_INTERVAL_MS = 5 * 1e3;
|
|
@@ -80663,6 +80704,13 @@ var require_daemon = __commonJS({
|
|
|
80663
80704
|
sessionLogWriter;
|
|
80664
80705
|
/** In-memory compaction snapshots keyed by sessionId. Populated by PreCompact, consumed by PostCompact. */
|
|
80665
80706
|
compactionSnapshots = /* @__PURE__ */ new Map();
|
|
80707
|
+
/**
|
|
80708
|
+
* Parent session type keyed by sessionId. Only updated by parent hooks
|
|
80709
|
+
* (interactive/non-interactive); subagent 'agent' hooks share the parent
|
|
80710
|
+
* sessionId and are ignored so they cannot flip the stored type. Surfaced onto
|
|
80711
|
+
* DaemonContext.sessionType to gate expensive session-summary work.
|
|
80712
|
+
*/
|
|
80713
|
+
sessionTypes = /* @__PURE__ */ new Map();
|
|
80666
80714
|
/** Cache persona for handoff on clear. */
|
|
80667
80715
|
cachePersonaForClear(personaId) {
|
|
80668
80716
|
this.lastClearedPersona = { personaId, timestamp: Date.now() };
|
|
@@ -81026,6 +81074,10 @@ var require_daemon = __commonJS({
|
|
|
81026
81074
|
* Uses the same infrastructure as the IPC handlers for message generation.
|
|
81027
81075
|
*/
|
|
81028
81076
|
async regenerateMessagesForSession(sessionId) {
|
|
81077
|
+
if (this.sessionTypes.get(sessionId) === "non-interactive") {
|
|
81078
|
+
this.logger.debug("Non-interactive session; skipping message regeneration", { sessionId });
|
|
81079
|
+
return;
|
|
81080
|
+
}
|
|
81029
81081
|
this.logger.info("Regenerating messages after persona change", { sessionId });
|
|
81030
81082
|
try {
|
|
81031
81083
|
await (0, persona_transition_js_1.stagePersonaTransition)(this.stateService, sessionId);
|
|
@@ -81111,6 +81163,11 @@ var require_daemon = __commonJS({
|
|
|
81111
81163
|
throw new Error("hook.invoke requires hook and event parameters");
|
|
81112
81164
|
}
|
|
81113
81165
|
const { sessionId, correlationId } = event.context ?? {};
|
|
81166
|
+
if (sessionId) {
|
|
81167
|
+
const next = (0, daemon_helpers_js_1.nextStoredSessionType)(this.sessionTypes.get(sessionId), event.context?.sessionType);
|
|
81168
|
+
if (next !== void 0)
|
|
81169
|
+
this.sessionTypes.set(sessionId, next);
|
|
81170
|
+
}
|
|
81114
81171
|
const requestLogger = this.logger.child({
|
|
81115
81172
|
context: { sessionId, correlationId }
|
|
81116
81173
|
});
|
|
@@ -81221,7 +81278,8 @@ ${postCompactResponse.additionalContext}` : postCompactResponse.additionalContex
|
|
|
81221
81278
|
llm: void 0,
|
|
81222
81279
|
profileFactory: void 0,
|
|
81223
81280
|
orchestrator: this.orchestrator,
|
|
81224
|
-
personaClearCache: { consume: () => this.consumeCachedPersona() }
|
|
81281
|
+
personaClearCache: { consume: () => this.consumeCachedPersona() },
|
|
81282
|
+
sessionType: this.sessionTypes.get(sessionId) ?? "interactive"
|
|
81225
81283
|
};
|
|
81226
81284
|
const [personaContext, userProfileContext] = await Promise.all([
|
|
81227
81285
|
(0, feature_reminders_1.resolvePersonaContextForSnapshot)(minimalCtx, sessionId),
|
|
@@ -81290,6 +81348,7 @@ ${postCompactResponse.additionalContext}` : postCompactResponse.additionalContex
|
|
|
81290
81348
|
const log = options?.logger ?? this.logger;
|
|
81291
81349
|
const sessionId = event.context?.sessionId;
|
|
81292
81350
|
if (sessionId) {
|
|
81351
|
+
this.sessionTypes.delete(sessionId);
|
|
81293
81352
|
const payload = event.payload;
|
|
81294
81353
|
log.info("[persona-lifecycle] ClearHandoff: handleSessionEnd entered", {
|
|
81295
81354
|
sessionId,
|
|
@@ -81668,7 +81727,8 @@ ${postCompactResponse.additionalContext}` : postCompactResponse.additionalContex
|
|
|
81668
81727
|
orchestrator: this.orchestrator,
|
|
81669
81728
|
personaClearCache: {
|
|
81670
81729
|
consume: () => this.consumeCachedPersona()
|
|
81671
|
-
}
|
|
81730
|
+
},
|
|
81731
|
+
sessionType: this.sessionTypes.get(sessionId) ?? "interactive"
|
|
81672
81732
|
};
|
|
81673
81733
|
this.handlerRegistry.updateSession({ sessionId, transcriptPath });
|
|
81674
81734
|
this.handlerRegistry.setStagingProvider(() => stagingService);
|