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).
65 lines
3.9 KiB
Markdown
65 lines
3.9 KiB
Markdown
# 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).
|