Bug
pi-embedded-subscribe.handlers.compaction.ts passes an empty object {} as hook context to runAfterCompaction, while before_compaction in the same file correctly passes { sessionKey: ctx.params.sessionKey }.
This causes any plugin after_compaction hook that depends on ctx.sessionKey to silently skip.
Affected Code
// pi-embedded-subscribe.handlers.compaction.ts:70-76
void hookRunnerEnd.runAfterCompaction(
{ messageCount: ..., compactedCount: ... },
{}, // BUG: should be { sessionKey: ctx.params.sessionKey }
)
Compare with before_compaction (line 22-35) which correctly passes { sessionKey: ctx.params.sessionKey }.
Fix
One-liner: {} → { sessionKey: ctx.params.sessionKey }
Impact
Any plugin using after_compaction with ctx.sessionKey (e.g. session-scoped handoff injection via enqueueSystemEvent) silently fails.
Version
2026.2.25
Bug
pi-embedded-subscribe.handlers.compaction.tspasses an empty object{}as hook context torunAfterCompaction, whilebefore_compactionin the same file correctly passes{ sessionKey: ctx.params.sessionKey }.This causes any plugin
after_compactionhook that depends onctx.sessionKeyto silently skip.Affected Code
Compare with
before_compaction(line 22-35) which correctly passes{ sessionKey: ctx.params.sessionKey }.Fix
One-liner:
{}→{ sessionKey: ctx.params.sessionKey }Impact
Any plugin using
after_compactionwithctx.sessionKey(e.g. session-scoped handoff injection viaenqueueSystemEvent) silently fails.Version
2026.2.25