This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Keying | Human-readable project path slug **plus** the real path stored inside each file | A renamed folder degrades to "listed under old name", never to "lost" |
| Index | `index.json` per project, **rebuildable by scanning** | An index may cache, it must never be load-bearing (anti-Copilot #vscdb-corruption) |
| What gets summarized | **Nothing at rest.** Transcripts are stored verbatim | Disk is free; tokens are not. Summarizing to store pays money to lose information |
| Where summarization IS used | (a) resume when the transcript exceeds the context budget — reuse `compactAgentMemory`; (b) async title generation | The user's instinct ("summarize with an LLM") lands here, not in storage |
| Privacy | Local files only; never uploaded | The BYOK promise; M9 sync may later offer opt-in encrypted sync of this same format |
## 4. Data model
```
~/.levelcode/sessions/
<project-slug>/ e.g. -Users-ada-code-thin-ly (path, slashes → dashes)
**Phase 1 — persistence spine** *(M)* — ✅ **shipped.** `sessionStore.js` (slug, ids, append-only JSONL, the rebuildable index) + `sessionEvents.js` (the event kinds and `deriveEntry`).
`sessionStore.js` (new, pure Node — unit-testable like `update.js`): slugging,
meta/append/read/scan/index, atomic index writes, lock files, schema versioning.
Wire `conversation`/`agentMessages`/checkpoint boundaries into per-turn appends;
live-session id in `workspaceState`; reload replays. *Exit test: kill -9 the editor
mid-turn; reopen; the session lists and resumes with at most the in-flight turn
missing.*
**Phase 2 — History UI + New Chat sealing** *(M)* — ✅ **shipped.** The Sessions panel, time buckets, the card, and seal-on-New-Chat.
Webview list + actions, toast, palette commands, rename/delete/export. `newChat()`
seals + rotates. *Exit test: three chats in a row; all three listed, titled (fallback
titles), resumable; delete works; folder rename in Finder → sessions still listed
(under the stored real path) and resumable.*
**Phase 3 — resume tiers + titles** *(M)* — ✅ **shipped.** `sessionResume.js` plans the three tiers against the model's window and `describeResume` writes the honest note; titles derive, and rename is an append-only event.
Three-tier resume with `compactAgentMemory` reuse; async cheap-lane titles; the
paid-compact confirmation; interrupted-run/reload honesty lines. *Exit test: a 200k-
token stored session resumes into a 128k-window model via tier 3, the briefing chat
line appears, and the next agent turn acts on state only present in the summarized
head (proving the briefing carried it).*
**Phase 4 — polish** *(S)* — ⚠️ **partial.** Shipped: pins, archive + 30-day auto-archive, Undo behind Done/Delete, the sparkline, files-touched chips, state pills, empty states, and Copy-as-Markdown export. **Not built:** in-panel search and the `⌃⌘P` switcher (that is E2 in the experience doc — see its §10), and the seal-to-history fly / resume-morph animations (E4).
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs: state what is actually built, and what is not #68
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
docs: state what is actually built, and what is not #68
Filter by extension
Viewed files
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
Uh oh!
There was an error while loading. Please reload this page.