Skip to content

Latest commit

 

History

History
111 lines (87 loc) · 4.8 KB

File metadata and controls

111 lines (87 loc) · 4.8 KB

Progress

A working log. Update it as work happens, not only at releases — it is what lets a session (human or agent) pick up where the last one stopped.

Conventions: newest first within each section. Move items down as they land. When something ships, note the date. If a decision was made along the way, add an ADR to DECISIONS.md and cite it here rather than re-explaining.

Last updated: 2026-07-29


In flight

Documentation harness

This file, plus AGENTS.md, ARCHITECTURE.md, DECISIONS.md, docs/vsceasy.md and docs/modules/. Written 2026-07-29 by reconstructing the design from the source (ADR-025 made that feasible).

Known gaps to close as work touches them:

  • The README lists five MCP tools; the server implements nine (verify_problem, update_problem, delete_problem, get_practice_habits are undocumented there).
  • No CI configuration in the repository — tests and typecheck are run by hand.
  • CHANGELOG.md still describes only 0.0.1; the Learn track and the Makefile landed after it.
  • The header comment in src/lib/lessons/trace.ts says "all 48 of them"; there are 84 lessons. A count in a comment goes stale — it should not name a number.

Shipped

2026-07-29

  • Debugging exercises. Debug Exercise Tests (cmd+alt+d, dashboard button, status-bar menu) launches the tests under the debugger via the language adapter — Bun's adapter for TS/JS, debugpy for Python (ADR-029). Typing-target refuses with an explanation; debugRuns is counted, not penalised. Gating is pure and covered by 8 unit tests.

  • Goals and streaks. Day streak derived from history, a daily goal of problems and/or minutes, and a 30-day calendar. Surfaced in the dashboard (Habits card with an editable goal), the status bar (streak when idle, amber when a live streak is unfulfilled), the catalogue tree (one row above the patterns) and the MCP server (get_practice_habits).

    A day is a local calendar day and any finished session counts (ADR-026); either half of the goal satisfies it and it lives in the ORM so an agent can read it (ADR-027); the computation is pure and shared with the MCP process rather than reimplemented (ADR-028). See docs/modules/habits.md.

    Verified: 21 new unit tests covering DST, year boundaries and the open-day case, plus an end-to-end call against the built MCP binary.

  • Learn track complete — foundations, AI engineering and ML engineering lessons, resizable lesson sidebar, lesson translation.

2026-07-28

  • Makefile for building and installing locally (make install).
  • AI Engineering and ML Engineering lesson tracks.
  • Resizable Learn sidebar.

0.0.1 — 2026-07-28

Initial release.

  • Four practice modes: typing target, assisted, TDD, blind (ADR-006).
  • Typing speed and accuracy tracking; paste blocked everywhere (ADR-006, ADR-008).
  • Exercise generation via Ollama or any OpenAI-compatible endpoint, with two-sided verification (ADR-003) and repair-on-retry (ADR-004).
  • Topic-weakness tracking feeding the generator.
  • Problem import/export, and adding a problem from a plain statement (ADR-024).
  • "Ask the Coach" chat with persistent threads (ADR-019, ADR-020).
  • MCP server for connecting an AI agent (ADR-010, ADR-023).
  • Spanish problem statements, prose only (ADR-014, ADR-015).

Next

Unordered; nothing here is committed to.

  • Close the documentation gaps listed above — MCP tool list, changelog, CI.
  • More languages. The adapter seam is ready (ADR-002); Go and Rust are the obvious candidates, each one entry in src/lib/languages.ts plus a runner.
  • Spaced repetition. The history to drive it exists; what is missing is a scheduling model for when a solved problem should come back. The day arithmetic in src/lib/streaks.ts is reusable for it.
  • Goal variants. Weekly goals that tolerate a day off, and per-pattern completion targets, were both considered and deliberately left out of the first cut (ADR-027) — revisit if the daily goal proves too rigid.
  • Session review. The post-session diff against the reference solution is computed but only lightly surfaced.
  • Pattern-level progress. The catalogue tree tracks per-pattern progress; the dashboard does not show it.

Known issues

  • computeStats recomputes over the whole history on every call, and the dashboard calls it on every history change. Fine at the 500-record cap (ADR-009), worth revisiting if that cap moves.
  • Generation quality depends entirely on the local model. Below roughly 7B, verification (ADR-003) rejects most attempts and the run falls back to the built-in bank — correct behaviour, but slow to arrive at.