Skip to content

docs: state what is actually built, and what is not - #68

Merged
ndemianc merged 2 commits into
developfrom
docs/status-truth
Aug 15, 2026
Merged

docs: state what is actually built, and what is not#68
ndemianc merged 2 commits into
developfrom
docs/status-truth

Conversation

@ndemianc

Copy link
Copy Markdown
Contributor

Both tracked design docs said "Status: proposed" for work that shipped months ago. The memory doc in particular was edited across #64/#65/#66 while its own header claimed none of it existed.

Headers and the milestone list now carry a state audited against the code, not recalled:

doc was now
levelcode-sessions-experience.md proposed E1/E3 shipped · E4 partial · E2 not started
levelcode-sessions-memory.md proposed M1–M4 complete

The finding worth having

E2 — the switcher and in-panel search — is entirely unbuilt. No search input, no filter chips, no scope switch, no keybindings; AI: Sessions is the only registered command.

That's the largest remaining gap in the experience, and the one users hit first once a project holds more than a screenful of sessions: the panel scrolls but does not search. Both the header and E2 now say so plainly, because "Status: proposed" on a doc describing a shipped panel hid it completely.

Also corrected: the FLIP filter reflow sat in E4 as an independent polish item, but it can't ship before E2 — it would have no filters to reflow.

A scope correction

Only two of these docs are in the repo. levelcode-chat-sessions-design.md and MEMORIES.md are untracked local drafts, so they aren't repo documentation and aren't mine to commit.

I'd been describing this as "four docs" for several turns. git grep only searches tracked files, so it kept reporting them clean while sed/grep on disk read them fine — which is exactly how they got miscounted. Worth knowing if you intended either to be part of the repo.

No code changed.

Both tracked design docs said "Status: proposed" for work that shipped months
ago. The memory doc in particular was edited across #64/#65/#66 while its own
header claimed none of it existed.

Replaced the headers and the milestone list with a state AUDITED against the
code rather than recalled:

  sessions-experience    E1/E3 shipped, E4 partial, E2 NOT STARTED
  sessions-memory        M1-M4 complete

The finding worth having: **E2 — the switcher and in-panel search — is entirely
unbuilt.** No search input, no filter chips, no scope switch, no keybindings;
`AI: Sessions` is the only command. That is the largest remaining gap in the
experience and the one users hit first once a project holds more than a
screenful of sessions: the panel scrolls but does not search.

Also corrected: the FLIP filter reflow was listed in E4 as an independent item,
but it cannot ship before E2 — it would have no filters to reflow.

Scope note: only TWO of these docs are in the repo. levelcode-chat-sessions-
design.md and MEMORIES.md are UNTRACKED local drafts, so they are not repo
documentation and not mine to commit. `git grep` had been silently skipping
them, which is how they were miscounted as part of this debt in the first place.

No code changed.
Copilot AI lite review requested due to automatic review settings August 15, 2026 01:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Sessions documentation headers/milestone status to reflect what is actually implemented in extensions/levelcode-ai, so the docs match shipped behavior.

Changes:

  • Mark levelcode-sessions-memory.md as shipped (M1–M4 complete) in the header.
  • Mark levelcode-sessions-experience.md as partially shipped, explicitly calling out E2 (switcher + search) as not started.
  • Annotate E1/E3 as shipped and E4 as partial within the experience milestones list.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
docs/levelcode-sessions-memory.md Updates the doc header status to “shipped” and ties it to the implementation phases.
docs/levelcode-sessions-experience.md Updates the doc header status to “partially shipped” and annotates E1–E4 milestone shipping state.
Suppressed comments (1)

docs/levelcode-sessions-experience.md:385

  • This sentence is technically inaccurate/ambiguous as written: the extension contributes many commands and keybindings; it looks like you intended to say that AI: Sessions is the only sessions-related command and there are no sessions keybindings. Clarifying avoids readers interpreting it as “the only command in the product”.
**E2 — the switcher & search** *(M)* — ❌ **not started.** There is no in-panel search input, no filter chips, no scope switch, and no `⌃⌘P` jump — `AI: Sessions` is the only command and there are no keybindings. This is the largest remaining gap in the experience, and the one users will notice first once a project has more than a screenful of sessions: the panel can be scrolled but not *searched*. — `⌃⌘P` fuzzy jump; in-panel search over title+files+commands; filter chips; scope switch. *Ships the keyboard-first, search-what-it-did lead over Cursor.* Exit: type a filename, resume the session that edited it, in three keystrokes.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

# LevelCode Sessions — Project Memory & Continuity

**Status:** proposed · **Scope:** `extensions/levelcode-ai` + the sessions store · **Third of the triad:** [`levelcode-chat-sessions-design.md`](./levelcode-chat-sessions-design.md) stores a chat · [`levelcode-sessions-experience.md`](./levelcode-sessions-experience.md) lets you browse it · **this doc lets the project *remember itself*.**
**Status:** **shipped** — M1–M4 complete (§10) · **Scope:** `extensions/levelcode-ai` + the sessions store · **Third of the triad:** [`levelcode-chat-sessions-design.md`](./levelcode-chat-sessions-design.md) stores a chat · [`levelcode-sessions-experience.md`](./levelcode-sessions-experience.md) lets you browse it · **this doc lets the project *remember itself*.**
# LevelCode Sessions — Experience Design

**Status:** proposed · **Scope:** `extensions/levelcode-ai` webview + a thin store · **Builds on:** [`levelcode-chat-sessions-design.md`](./levelcode-chat-sessions-design.md) (the persistence spine) · **Owns:** everything a user sees, touches, and feels
**Status:** **partially shipped** — E1/E3 done, E4 mostly done, **E2 (search + switcher) not started**; see §10 · **Scope:** `extensions/levelcode-ai` webview + a thin store · **Builds on:** [`levelcode-chat-sessions-design.md`](./levelcode-chat-sessions-design.md) (the persistence spine) · **Owns:** everything a user sees, touches, and feels
Review found the Status lines linking to ./levelcode-chat-sessions-design.md,
which 404s on GitHub. The link was not wrong; the file was held back by a line in
.git/info/exclude — a LOCAL, per-clone exclusion that is never committed, so the
doc existed on one machine and nowhere else.

Publishing it rather than de-linking, because four tracked files send readers
there and two of them are SOURCE:

  docs/levelcode-sessions-experience.md    links to it
  docs/levelcode-sessions-memory.md        links to it
  extensions/levelcode-ai/sessionStore.js  "The design lives in
  extensions/levelcode-ai/sessionEvents.js   docs/levelcode-chat-sessions-design.md"

Anyone cloning this repo reads those two headers and finds nothing. 279 lines,
zero TODO/FIXME markers — finished prose describing shipped work.

It carries the same audited status as its siblings, from the same pass over the
code: Phases 1-3 shipped; Phase 4 partial — pins, 30-day auto-archive, Undo
behind Done/Delete, the sparkline, files chips, state pills, empty states and
Copy-as-Markdown are in; in-panel search and the switcher are NOT. Phase 4's
"polish" was hiding that, which is the same omission E2 was hiding in the
experience doc.

docs/MEMORIES.md stays untracked, deliberately and unchanged. Its only reference
is in an UNCOMMITTED CLAUDE.md edit, so it breaks nothing today, and it describes
a memories.js that was never built — committing it would reintroduce the exact
"docs claim work that does not exist" problem this branch exists to remove.
@ndemianc

Copy link
Copy Markdown
Contributor Author

Both comments are the same finding, and it's the direct consequence of this PR's own scope note. Fixed in 7f35d3f.

The link wasn't wrong — the file was held back

docs/levelcode-chat-sessions-design.md was excluded by a line in .git/info/exclude — a local, per-clone file that is never committed and never shared. So the doc existed on one machine and nowhere else, and git grep had been silently skipping it, which is how it got miscounted in the first place.

I published it rather than de-linking, because four tracked files send readers there and two of them are source:

docs/levelcode-sessions-experience.md links to it
docs/levelcode-sessions-memory.md links to it
extensions/levelcode-ai/sessionStore.js "The design lives in docs/levelcode-chat-sessions-design.md"
extensions/levelcode-ai/sessionEvents.js same

Anyone cloning this repo reads those two headers and finds nothing. 279 lines, zero TODO/FIXME markers — finished prose describing shipped work.

It carries the same audited status as its siblings, from the same pass over the code: Phases 1–3 shipped; Phase 4 partial. In: pins, 30-day auto-archive, Undo behind Done/Delete, sparkline, files chips, state pills, empty states, Copy-as-Markdown. Not in: in-panel search and the switcher. Phase 4's generic "polish" was hiding that — the same omission E2 was hiding on the experience side.

Verified afterwards that every relative link across all three docs now resolves: 4 links, 0 broken.

Deliberately not done

docs/MEMORIES.md stays untracked. Its only reference is in an uncommitted CLAUDE.md edit, so it breaks nothing today, and it describes a memories.js that was never built — committing it would reintroduce the exact "docs claim work that doesn't exist" problem this branch removes. That one is a product call, not cleanup.

@ndemianc
ndemianc merged commit 37cd2ca into develop Aug 15, 2026
1 check passed
@ndemianc
ndemianc deleted the docs/status-truth branch August 15, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants