docs: the assessment-levels vision (post-release arc) + the 0.3.0 release list
Vision-assessment records the 2026-10-06 thinking round: propositions as the unit, forecast semantics (mastery = P(correct unaided retrieval)), the Beta-with-decay estimator (BKT rejected: binary-only, guess-less, never forgets, unidentifiable at our volume; the weighted average completed with prior + recency + uncertainty), the e-table over outcome x rung x missClass, uniform 1/k credit (optional missed-field upgrade unruled), no new outcome enum values, PRACTICE-ONLY perimeter (ruled — quiz nodes are session-scoped plan objects, no honest mapping), mastery computed-on-read over the already durable problem/conclude calls (no stored ledger, graph untouched). Release-0.3 captures the owner's polish brain-dump (graph rendering toggle separate from extraction + open home-view question, question keybinds/VIM, session naming, markdown + graph exports, graph defaults, compaction dialog Esc law, keyboard audit) and the schema-lock position with the persistent surface inventory and pre-release gap list (schemaVersion stamps, pi-ai pins).
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# First Release (0.3.0) — polish list + lock question
|
||||
|
||||
Started 2026-10-06, owner brain-dump round. Priority 1 — everything else (assessment levels → docs/vision-assessment.md) comes after. Items are captured as spoken; design decisions inside them are **unruled** unless marked.
|
||||
|
||||
## Polish items (owner list, 2026-10-06)
|
||||
|
||||
1. **Graph rendering toggle — separate from the extraction pipeline.**
|
||||
Today's graph on/off switch toggles extraction. Wanted: two switches —
|
||||
one for the *pipeline* (named for what it does), one for *rendering*
|
||||
("graph on/off" = the graph view renders or not). Data, chains model,
|
||||
extraction all keep working with rendering off.
|
||||
- Open: **what is the home view when graph rendering is off?** It must
|
||||
keep the import-notes button, the chains-view button, and the graph
|
||||
pipeline cost readout. Candidate raised and not rejected: the chains
|
||||
view (the chain table is already a complete non-graph presentation of
|
||||
propositions + chains). A "giant DAG" was raised and rejected. Unruled.
|
||||
2. **Keyboard navigation for questions** — arrow buttons (next/previous
|
||||
question) are currently click-only; make them real keybinds, with VIM
|
||||
bindings (j/k or similar) as the goal. Maybe rebindable, maybe not — unruled.
|
||||
3. **Session naming.** First-message-as-name is not clean (the first message
|
||||
is always long). Owner dislikes LLM-generated names. A naming popup after
|
||||
first send was considered — possibly annoying; unruled. (Fact: the top-bar
|
||||
title is already click-to-rename; whatever lands should agree with it.)
|
||||
4. **Export sessions as markdown** — likely a right-click action on a session
|
||||
in the sidebar. (Fact: core/session-markdown.ts already renders whole
|
||||
sessions to markdown for extraction — the serialization exists.)
|
||||
5. **Export the reasoning chains / graph** — format unruled (JSON is the
|
||||
obvious candidate: serve the graph snapshot). Placement unruled.
|
||||
6. **Graph default settings refinement** — current defaults not ideal; minor.
|
||||
7. **Compaction summary dialog** — covers the entire screen and doesn't look
|
||||
good; Esc prompts a dismiss question instead of just closing. Law stated:
|
||||
**Esc always acts on the current element on screen.**
|
||||
8. **General keyboard audit** — everything must work from the keyboard; some
|
||||
minor things don't. Examples to be enumerated in the round.
|
||||
|
||||
## What does "released" change in development? (the lock question)
|
||||
|
||||
Position agreed 2026-10-06: releasing means **on-disk user data acquires
|
||||
compatibility obligations** — after 0.3.0, persistent-schema changes are
|
||||
migrations with tolerant reads, not free edits plus wipe-your-dev-data.
|
||||
Nothing is frozen forever; the discipline changes.
|
||||
|
||||
Persistent surfaces (the obligation set):
|
||||
- `data/chats/*.json` — ChatRecord: messages (pi-ai wire shapes: thinking
|
||||
blocks, toolCalls, usage), turns, kind, graphContext. The deepest lock —
|
||||
and coupled to the pi-ai library's serialization (a pi-ai bump becomes a
|
||||
migration event post-release).
|
||||
- `data/graph/` — nodes.jsonl, chains.jsonl, coverage.jsonl, sources.json,
|
||||
sessions.jsonl (append-only ledgers), positions.json, render-settings.json.
|
||||
- `data/settings.json` (models, toggles, compaction…), `auth.json` (BYOK keys).
|
||||
- Client localStorage (camera, filters, zoom, kind filter).
|
||||
- `data/jobs/` — treat as scratch/transient, no obligation.
|
||||
|
||||
Known gaps to close *before* release (proposals, unruled):
|
||||
- **No schemaVersion anywhere.** Cheap now, load-bearing later: stamp
|
||||
ChatRecord, settings, and the ledgers with a version at write time;
|
||||
readers default missing → current. This is what makes later migrations
|
||||
painless.
|
||||
- **Pin pi-ai/pi-agent-core exact versions** so record shapes move only
|
||||
deliberately.
|
||||
- Release engineering outside code: signing/notarization await Apple
|
||||
Developer enrollment (DMG is unsigned today); no auto-updater (manual
|
||||
download acceptable for 0.3.0 if stated); packaged-app data location
|
||||
already correct (LH_DATA_DIR → userData).
|
||||
Reference in New Issue
Block a user