{"_id":"@arcanemachine/pi-session-snapshot","_rev":"9-d48c6cd98eae65cedbbf645fed873faa","name":"@arcanemachine/pi-session-snapshot","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.1":{"name":"@arcanemachine/pi-session-snapshot","version":"0.1.1","keywords":["pi","pi-coding-agent","pi-extension","pi-package","session","snapshot"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-session-snapshot@0.1.1","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-session-snapshot#readme","bugs":{"url":"https://github.com/arcanemachine/pi-session-snapshot/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"3ab19e83e82baa501c0324882b914e9551559c76","tarball":"https://registry.npmjs.org/@arcanemachine/pi-session-snapshot/-/pi-session-snapshot-0.1.1.tgz","fileCount":13,"integrity":"sha512-K0wqJJUCJBHtqArGV4yM8bJx9lUsR8AfFMNNiZ4vGLF/+oU7GaieEwJYh0TgI7BNaYEIQSaYvhaKHvqUMnM0SQ==","signatures":[{"sig":"MEQCIBMzYJ+wNQNH4XBT4jjxPakYhd8CYQ2n+7gHvaaC3U6sAiBn6P5FF68igG+IS/+D5TMS74os9oE71ufnk8A0wL3PmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49404},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"94879451df596418c8b37cb07ac288445f12ca01","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-session-snapshot.git","type":"git"},"_npmVersion":"11.13.0","description":"Save and restore reusable snapshots of the active Pi session path","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.0","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-session-snapshot_0.1.1_1784935977733_0.2920334754896914","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@arcanemachine/pi-session-snapshot","version":"0.1.2","keywords":["pi","pi-coding-agent","pi-extension","pi-package","session","snapshot"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-session-snapshot@0.1.2","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-session-snapshot#readme","bugs":{"url":"https://github.com/arcanemachine/pi-session-snapshot/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"28af92a6133369fc185b4fe16f8b6d3fbed173fd","tarball":"https://registry.npmjs.org/@arcanemachine/pi-session-snapshot/-/pi-session-snapshot-0.1.2.tgz","fileCount":13,"integrity":"sha512-FKPybty3KuvWYy6c+pr0z75x/XFbSj2+GrAOuTKpgsLaD8ezmD8X+CKwOKwRCLbARdTZmw2WB6lLwbfK0lbQQQ==","signatures":[{"sig":"MEUCIHHCUQ0av0g8m9GAjQbLk9/d1T3T5RtLyex+A32a9BM+AiEA2fNntHd1tWVXvxMkl6/lrzwlJZEt4fJoPZgVh/x9tdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49926},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e16ffea1fc48cb93ec725ad468168b4faf013e71","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-session-snapshot.git","type":"git"},"_npmVersion":"11.13.0","description":"Save and restore reusable snapshots of the active Pi session path","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.0","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-session-snapshot_0.1.2_1787017815533_0.13101821529475077","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@arcanemachine/pi-session-snapshot","version":"0.1.3","keywords":["pi","pi-coding-agent","pi-extension","pi-package","session","snapshot"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-session-snapshot@0.1.3","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-session-snapshot#readme","bugs":{"url":"https://github.com/arcanemachine/pi-session-snapshot/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"8900f9dfd7b8c980ea9b1c137ebb3d58d583167e","tarball":"https://registry.npmjs.org/@arcanemachine/pi-session-snapshot/-/pi-session-snapshot-0.1.3.tgz","fileCount":13,"integrity":"sha512-nvfDzMZtb4gUMICy7Zvn3M/TpD2RcjEjohL+QOo2lXxPZC6kWSWg9hqK9gad3Cn3K4rH/ZWKgVzJ5l4VX9zuPQ==","signatures":[{"sig":"MEQCIH1LJXZxB12qUDTF9YibKAd42SP1HGPQnZQKcYwWEv6KAiAjac4ofUOwCXNcXgbdJka7XcOY80+LMWwdbAntPaJLVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49956},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"0e2c16dcd19bfdeecea04941963a2dfaa854edb8","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md","typecheck":"tsc --noEmit","format:check":"prettier --check src/**/*.ts tests/**/*.ts package.json README.md AGENTS.md CHANGELOG.md","prepublishOnly":"npm run typecheck && npm run test"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-session-snapshot.git","type":"git"},"_npmVersion":"11.13.0","description":"Save and restore reusable snapshots of the active Pi session path","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.0","@earendil-works/pi-ai":"0.80.10","@earendil-works/pi-tui":"0.80.10","@earendil-works/pi-coding-agent":"0.80.10"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-session-snapshot_0.1.3_1787018958649_0.943488459014922","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@arcanemachine/pi-session-snapshot","version":"0.1.4","keywords":["pi","pi-coding-agent","pi-extension","pi-package","session","snapshot"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-session-snapshot@0.1.4","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-session-snapshot#readme","bugs":{"url":"https://github.com/arcanemachine/pi-session-snapshot/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-session-snapshot/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"fbbe12875e617147f348f44c167c032489705e1b","tarball":"https://registry.npmjs.org/@arcanemachine/pi-session-snapshot/-/pi-session-snapshot-0.1.4.tgz","fileCount":13,"integrity":"sha512-zLVu9QfZjWQcO/YkxtNu9gm45ILpOWbQXGQu8HrFja+3vteNvLchGrkRbKUxXsBrAEBSqdW8ttK1HO/VFi9AKg==","signatures":[{"sig":"MEQCIFPfp/kUA8sIio1xyW5SzXWnveBfdfvNV/e8KVexYho8AiBU7IV6GIEROyfGpJhcCkRbcD/E1IUbPvwRi+lSDr4BbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50194},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"9474ee639d55ee74f02e9a7834f299b10448a4a1","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","typecheck":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-session-snapshot.git","type":"git"},"_npmVersion":"11.13.0","description":"Save and restore reusable snapshots of the active Pi session path","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.0","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-session-snapshot_0.1.4_1787370017349_0.5706044671566128","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@arcanemachine/pi-session-snapshot","version":"0.1.5","keywords":["pi","pi-coding-agent","pi-extension","pi-package","session","snapshot"],"author":{"name":"Nicholas Moen"},"license":"MIT","_id":"@arcanemachine/pi-session-snapshot@0.1.5","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"homepage":"https://github.com/arcanemachine/pi-session-snapshot#readme","bugs":{"url":"https://github.com/arcanemachine/pi-session-snapshot/issues"},"pi":{"image":"https://raw.githubusercontent.com/arcanemachine/pi-session-snapshot/main/logo.jpg","extensions":["./src/index.ts"]},"dist":{"shasum":"6c1b31418ca86043e85db0adf8e8055b96268a04","tarball":"https://registry.npmjs.org/@arcanemachine/pi-session-snapshot/-/pi-session-snapshot-0.1.5.tgz","fileCount":13,"integrity":"sha512-rqTRkddspWeukUjL917yDy3EiPDu6JqHjgDoqCxDUxQRGVds89C15PR1vd/243cXaeUJXdxCQQuNxaCQjR2xSA==","signatures":[{"sig":"MEQCIEpXb/DbYsHGC04MzJ0m5AqoucLtIsH7FfsQlFhZGF9VAiAs3JVQZNI8HBx/H2mmHq9EWrMuHIPwxWg91M7SGbFvqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51528},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"00aefd67664d747f6dbf02fba71b61c75b65af8c","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","typecheck":"tsc --noEmit","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"repository":{"url":"git+https://github.com/arcanemachine/pi-session-snapshot.git","type":"git"},"_npmVersion":"11.13.0","description":"Save and restore reusable snapshots of the active Pi session path","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","prettier":"^3.8.3","typescript":"^5.9.3","@types/node":"^25.3.0","@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-tui":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-tui":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-session-snapshot_0.1.5_1787959726056_0.0699163912336096","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@arcanemachine/pi-session-snapshot","version":"0.1.6","description":"Save and restore reusable snapshots of the active Pi session path","type":"module","keywords":["pi","pi-coding-agent","pi-extension","pi-package","session","snapshot"],"pi":{"extensions":["./src/index.ts"],"image":"https://raw.githubusercontent.com/arcanemachine/pi-session-snapshot/main/logo.jpg"},"scripts":{"build":"tsc","watch":"tsc --watch","typecheck":"tsc --noEmit","test":"vitest run","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" package.json README.md AGENTS.md CHANGELOG.md LICENSE.md tsconfig.json","prepublishOnly":"npm run format:check && npm run typecheck && npm run test && npm run build"},"author":{"name":"Nicholas Moen"},"license":"MIT","peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*"},"peerDependenciesMeta":{"@earendil-works/pi-ai":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true},"@earendil-works/pi-tui":{"optional":true}},"devDependencies":{"@earendil-works/pi-ai":"0.84.1","@earendil-works/pi-coding-agent":"0.84.1","@earendil-works/pi-tui":"0.84.1","@types/node":"^25.3.0","prettier":"^3.8.3","typescript":"^5.9.3","vitest":"^4.1.6"},"repository":{"type":"git","url":"git+https://github.com/arcanemachine/pi-session-snapshot.git"},"homepage":"https://github.com/arcanemachine/pi-session-snapshot#readme","bugs":{"url":"https://github.com/arcanemachine/pi-session-snapshot/issues"},"engines":{"node":">=22.19.0"},"publishConfig":{"access":"public"},"gitHead":"67a698c1d1461f8c32fe596bff7e59368e036722","_id":"@arcanemachine/pi-session-snapshot@0.1.6","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-FndHTJ2FU84N1VeKPOSug3ZynCw/+35puV8C625sehsU/ZgBMeQ2j0+emYiUFWMNPis1TjkC8w8q0wcAWGDZ7g==","shasum":"65fa4151c8c9b2d38bdb48c9b5f9eb9171d9ce26","tarball":"https://registry.npmjs.org/@arcanemachine/pi-session-snapshot/-/pi-session-snapshot-0.1.6.tgz","fileCount":14,"unpackedSize":137197,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDaYp2dE7FsrYC5O5WCsM6Ywn532FKnW6zEcNYV0Y3twQIgUXn/JkH/cWWTD9fQUiWLdYpSZ1Ipatj/U1JvKpr5nAA="}]},"_npmUser":{"name":"arcanemachine","email":"arcanemachine@gmail.com"},"directories":{},"maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-session-snapshot_0.1.6_1788679763891_0.5063976989539645"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T23:32:57.645Z","modified":"2026-09-06T07:29:24.170Z","0.1.0":"2026-07-24T23:12:19.320Z","0.1.1":"2026-07-24T23:32:57.865Z","0.1.2":"2026-08-18T01:50:15.687Z","0.1.3":"2026-08-18T02:09:18.844Z","0.1.4":"2026-08-22T03:40:17.493Z","0.1.5":"2026-08-28T23:28:46.191Z","0.1.6":"2026-09-06T07:29:24.027Z"},"bugs":{"url":"https://github.com/arcanemachine/pi-session-snapshot/issues"},"author":{"name":"Nicholas Moen"},"license":"MIT","homepage":"https://github.com/arcanemachine/pi-session-snapshot#readme","keywords":["pi","pi-coding-agent","pi-extension","pi-package","session","snapshot"],"repository":{"type":"git","url":"git+https://github.com/arcanemachine/pi-session-snapshot.git"},"description":"Save and restore reusable snapshots of the active Pi session path","maintainers":[{"name":"arcanemachine","email":"arcanemachine@gmail.com"}],"readme":"# pi-session-snapshot\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/arcanemachine/pi-session-snapshot/main/logo.jpg\" alt=\"pi-session-snapshot logo\" width=\"250\" />\n</p>\n\nSave and restore the active path of a given Pi session.\n\n> Like this extension? See [my other Pi extensions](https://github.com/arcanemachine/pi-projects).\n\nUseful for establishing a checkpoint from which you want to resume one or more sessions, such as when you have a fleet of worker agents who you don't want to onboard before each task.\n\n> A session snapshot preserves Pi conversation context only. It does not preserve Git history, files, uncommitted changes, environment variables, or processes.\n\n## Installation\n\n### From GitHub\n\n```bash\npi install git:github.com/arcanemachine/pi-session-snapshot\n```\n\n### From npm\n\n```bash\npi install npm:@arcanemachine/pi-session-snapshot\n```\n\n### From local clone\n\n```bash\npi install /path/to/pi-session-snapshot\n```\n\nOr load the source entrypoint directly during development:\n\n```bash\npi -e /path/to/pi-session-snapshot/src/index.ts\n```\n\n## Commands\n\n```text\n/snapshot\n/snapshot save [name] [--force|-f]\n/snapshot load [name]\n/snapshot list\n/snapshot delete [name] [--force|-f]\n```\n\nRunning `/snapshot` opens a menu for saving, loading, deleting, and listing snapshots. Saving an existing name opens a safe-default confirm: **No** / **Yes** — answering **No** returns to the name field with the entered value intact (so you can save it under a different name), and **Yes** overwrites.\n\nThe top-level actions (`save`, `load`, `list`, `delete`) are autocompleted after `/snapshot `, and `--force` / `-f` are autocompleted after `/snapshot save ` or `/snapshot delete `, with or without a name. `/snapshot list` prints the directory where snapshots are stored along with the saved snapshots.\n\nFor automation or non-TUI use, `--force` is required to replace or delete:\n\n```text\n/snapshot save baseline --force\n/snapshot delete baseline -f\n```\n\nWithout `--force`, an existing noninteractive save fails rather than overwriting, and noninteractive deletion fails rather than deleting.\n\nSnapshots are stored under:\n\n```text\n~/.pi/agent/pi-session-snapshot/<name>.jsonl\n```\n\nSnapshot names may contain letters, numbers, dots, underscores, and hyphens. They must begin and end with a letter or number; paths, whitespace, and traversal are rejected. Lowercase kebab-case is recommended.\n\n## Start Pi from a snapshot\n\nUse Pi's native fork option:\n\n```bash\npi --fork ~/.pi/agent/pi-session-snapshot/baseline.jsonl\n```\n\nOther launch-time flags still compose with the fork:\n\n```bash\npi \\\n  --fork ~/.pi/agent/pi-session-snapshot/baseline.jsonl \\\n  --model openai/gpt-5.4 \\\n  --thinking high\n```\n\nPi does not allow `--fork` together with `--session`, `--continue`, `--resume`, or `--no-session`.\n\n## Semantics\n\nSaving extracts only the current root-to-leaf session path. Alternate branches are omitted. Messages, tool calls/results, compactions, model/thinking changes, and applicable extension entries on the selected path remain part of the Pi session history.\n\nLoading creates a new session in the current working directory. The snapshot remains unchanged as the restored session continues. The active restored path can be branched normally after loading; it starts from the saved path, not from the source session's omitted branches.\n\nIf a restored session receives no new meaningful activity, the extension makes a best-effort attempt to remove its otherwise-unused session file during graceful shutdown or session replacement. A session that starts an agent turn or gains a new message is retained. Hard crashes can leave a file behind.\n\n## Security\n\nSession snapshots can contain prompts, model responses, tool output, paths, and other sensitive conversation context. The extension creates its snapshot directory and files with restrictive permissions where supported. Protect and review snapshots as you would normal Pi session files.\n\n## Development\n\n```bash\nnpm run typecheck\nnpm run test\nnpm run build\nnpm run format:check\nnpm pack --dry-run\n```\n\n`npm run format:check` verifies formatting without changing files. Use `npm run format` only for intentional package-wide reformatting. For focused work, format only the paths you changed, for example `npx prettier --write src/ui/flow.ts`.\n\nAutomated filesystem tests use isolated temporary directories and do not touch the real Pi agent directory.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}