Skip to content

Releases: tkpratardan/lemma

Release list

v3.1.1

Choose a tag to compare

@tkpratardan tkpratardan released this 09 Jul 15:28

First release. Lemma drives a live notebook instead of a static file: it reads real kernel state, applies a data scientist's rigor to whatever question you're asking, and works across ten agent hosts from one install.

What ships

  • The persona (AGENTS.md): names the question's mode first, sets a baseline before a complex model, splits data the way deployment will actually see it, never evaluates on training data, sets a seed. It layers on top of a repo's own rules instead of replacing them.
  • Live-notebook tools across three surfaces: vscode_* for VS Code/Cursor, pycharm_*/jupyterlab_* plus shared notebook_* verbs for PyCharm (disk + kernel) and JupyterLab (real-time collaboration, no plugin needed). The agent reads what the kernel actually holds instead of guessing from a prior cell.
  • Nine question-mode skills: lemma-eda, lemma-baseline, lemma-model, lemma-describe, lemma-inference, lemma-causal, lemma-unsupervised, lemma-leakage, lemma-review. The mode picks the method, so a causal question gets causal rigor instead of predict-track defaults.
  • One-command install across ten hosts: Claude Code, Cursor, VS Code, Windsurf, Claude Desktop, Codex, GitHub Copilot CLI, Antigravity/Gemini CLI, opencode, OpenClaw. lemma --configure vscode|pycharm|jupyter restricts a host to one surface.
  • A human-in-the-loop diff gate in VS Code/Cursor: every AI edit renders as Accept / Always Allow / Discard, so the agent acts without acting unsupervised.
  • JupyterLab auto-discovery: when lemma runs colocated with a Jupyter server, a local terminal, or spawned by Jupyter AI's own ACP integration, it finds the running server itself instead of asking for a URL.
  • A drift check: after any notebook-mutating call, a one-line nudge asks whether the result still serves the stated goal, on Claude Code, Codex, Copilot CLI, and Cursor.
  • Update awareness: the installer checks npm's registry and tells you when a newer version exists, before it changes anything else.

Fixed

  • Every plugin-route host (Claude Code, Codex, Copilot, Antigravity, Gemini CLI) installs via a plain git fetch with no node_modules. The MCP server used to crash on startup with zero tools registered. It now bundles into a single dependency-free bin/lemma-mcp.mjs.
  • A notebook path with a subdirectory, notebooks/foo.ipynb, broke JupyterLab's connection: the code encoded the whole path, turning / into %2F, which Jupyter's server never reads as a directory separator.
  • JupyterLab's real-time collaboration silently failed on servers running jupyter_server_documents (Jupyter AI's newer RTC backend). The old session endpoint 404s there; lemma now falls back to that backend's own file-ID lookup.
  • Claude Code's plugin install skipped the persona-delivery hook on an unverified assumption that MCP's own instructions field would deliver it instead. It often doesn't. The hook fires regardless now.
  • Codex and Copilot used the wrong CLI verbs, and Copilot delivered the persona twice, once by hook, once by MCP.