Skip to content

Commit 7c5ecb1

Browse files
committed
docs(persist): add privacy note about plaintext session storage
Persistence writes file URIs, ranges, titles, provider names, pin/buffer-mode flags, parent popup ids, and capture timestamps as JSON under stdpath("state")/peekstack/, alongside per-session created_at and updated_at metadata. Spell that out in the README and vimdoc so users with persistence enabled can decide whether to enable it on shared machines or sensitive repositories.
1 parent c1ce4e9 commit 7c5ecb1

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,14 @@ for a name instead of using the default.
331331
> Persistence uses repository storage when the current working directory is inside a git repository.
332332
> Outside a git repository, sessions fall back to cwd-based storage.
333333
334+
> [!IMPORTANT]
335+
> Sessions are written as plain JSON under `vim.fn.stdpath("state") .. "/peekstack/"`. Each entry
336+
> stores the file URI, line/column range, title, provider name, pin/buffer-mode flags, parent
337+
> popup id, and the timestamp the entry was captured. Each session also tracks `created_at` and
338+
> `updated_at` metadata. Any path you peek at while persistence is enabled is recorded on disk in
339+
> cleartext, so avoid enabling persistence on shared machines or for repositories whose file paths
340+
> or symbol names are sensitive.
341+
334342
### Auto persist (optional)
335343

336344
When `persist.auto.enabled = true`, peekstack can automatically restore and save a session:

doc/peekstack.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,17 @@ Auto persistence (`persist.auto`) requires `persist.enabled = true`:
449449
Auto persistence runs only inside a git repository and always uses
450450
the repository session storage.
451451

452+
PRIVACY NOTE *peekstack-persist-privacy*
453+
454+
Sessions are written as plain JSON under
455+
`vim.fn.stdpath("state") .. "/peekstack/"`. Each entry stores the file
456+
URI, line/column range, title, provider name, pin/buffer-mode flags,
457+
parent popup id, and the timestamp the entry was captured. Each session
458+
also tracks `created_at` and `updated_at` metadata. Any path you peek at
459+
while persistence is enabled is recorded on disk in cleartext, so avoid
460+
enabling persistence on shared machines or for repositories whose file
461+
paths or symbol names are sensitive.
462+
452463
==============================================================================
453464
SETUP RELOAD *peekstack-setup-reload*
454465

0 commit comments

Comments
 (0)