snipara-companion 3.6.21 → 3.6.22

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/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@ Release notes for `snipara-companion`, newest first.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## New In 3.6.22 - 2026-09-12
8
+
9
+ - Saves explicit session summaries and file checkpoints to the hosted journal,
10
+ requiring a journal entry id before reporting success or rotating the session.
11
+ - Retains bounded, redacted local receipts and supports `session-end --retry`
12
+ after a failed write. Empty checkpoints are explicitly skipped.
13
+ - Supports summary input through stdin and host session ids for Codex Stop hooks.
14
+ Reports telemetry delivery separately from journal persistence.
15
+
7
16
  ## New In 3.6.21 - 2026-08-31
8
17
 
9
18
  - Requires manual device-code entry and explicit all-project consent for the
package/README.md CHANGED
@@ -664,6 +664,21 @@ Launch assets, demo scripts, and post drafts live in
664
664
  [docs/launch/LAUNCH_KIT.md](./docs/launch/LAUNCH_KIT.md).
665
665
 
666
666
  Release notes live in [CHANGELOG.md](./CHANGELOG.md).
667
+
668
+ `session-end --summary "What was completed" --files src/example.ts` saves a
669
+ session checkpoint to the hosted journal and prints a local receipt path.
670
+ Hooks can pass the summary through `--summary-stdin` and use `--session-id` for
671
+ the host task identity. Without a summary or files, the checkpoint is explicitly
672
+ skipped. A failed write keeps the checkpoint and session id; retry the printed
673
+ receipt with `session-end --retry <receipt.json>`. `session status` shows the last
674
+ checkpoint status. Receipts live in `.snipara/companion/session-closeouts/` and
675
+ contain a bounded, redacted summary; they are local artifacts, not source files.
676
+ A journal entry id confirms persistence; automation event delivery is reported
677
+ separately. A timeout can leave server acceptance uncertain, so a retry after an
678
+ unconfirmed response may create a second journal entry. New Codex hook bundles
679
+ forward the final assistant summary; older hooks need to be refreshed to do so.
680
+ This checkpoint preserves session context; it does not generate product docs.
681
+
667
682
  When project auth is configured, `workflow phase-commit`, `final-commit`, and
668
683
  `team-sync handoff` also run reviewed Why Capture. The Companion first sends a
669
684
  read-only preview and confirms only when the server detects durable rationale.
package/dist/index.d.ts CHANGED
@@ -48,6 +48,12 @@ declare function saveConfig(config: Partial<RLMConfig>, options?: ConfigResoluti
48
48
  */
49
49
  declare function getConfigPath(options?: ConfigResolutionOptions): string;
50
50
 
51
+ interface SessionCheckpoint {
52
+ sessionId: string;
53
+ summary: string;
54
+ files: string[];
55
+ }
56
+
51
57
  interface ContextQueryResult {
52
58
  sections: Array<{
53
59
  title: string;
@@ -320,6 +326,9 @@ interface SessionPersistResult {
320
326
  success: boolean;
321
327
  session_id: string;
322
328
  files_tracked: number;
329
+ status: "saved" | "skipped";
330
+ entry_id?: string;
331
+ date?: string;
323
332
  }
324
333
  type WhyCaptureSourceKind = "commit" | "phase_commit" | "final_commit" | "handoff";
325
334
  interface WhyCaptureInput {
@@ -379,6 +388,7 @@ interface EndOfTaskCommitWhyInput {
379
388
  }
380
389
  interface JournalAppendResult {
381
390
  success?: boolean;
391
+ entry_id?: string;
382
392
  date?: string;
383
393
  message?: string;
384
394
  }
@@ -1185,9 +1195,10 @@ declare class RLMClient {
1185
1195
  */
1186
1196
  trackFiles(files: string[]): Promise<TrackFileResult>;
1187
1197
  /**
1188
- * Persist session context using snipara_remember
1198
+ * Persist an explicit bounded checkpoint to the hosted journal. An event
1199
+ * acknowledgement is not a persistence receipt.
1189
1200
  */
1190
- persistSession(): Promise<SessionPersistResult>;
1201
+ persistSession(input?: Partial<SessionCheckpoint>): Promise<SessionPersistResult>;
1191
1202
  /**
1192
1203
  * Recall memories with optional lifecycle warnings.
1193
1204
  */