Releases
v2.0.0
v2.0.0 — Unified Study Platform
Compare
Sorry, something went wrong.
No results found
[2.0.0] - 2026-03-16
Bug Fixes
Make repo URLs independent of hosting platform
Resolve remaining pyright errors and ruff formatting
Install-agents.sh compatibility with macOS default bash 3.2
Append topics template to existing config if missing
Install CLI tools globally via uv tool install
Make root a virtual workspace, fix deprecated license format
Artefact links open in new tab with raw binary for playback
Use raw.githubusercontent.com URLs for artefact playback
Correct bugs in spaced repetition, progress tracking, and config
Resample kokoro 24kHz→48kHz to fix crackling on some audio devices
Move skills to resources in Kiro agent config (skills field not supported)
Add study-speak directive to persona prompt (resources alone not enough)
Remove sentence splitting — single call eliminates inter-sentence gaps
Harden sync.py against SQL/command injection, add .gitignore DB patterns
Align Python version to >=3.12, consolidate ruff config
Defer config loading, remove getattr magic, narrow exception handlers
Symlink kiro references to agents/shared, align Claude session protocol
ICS timezone suffix, return type hints, falsy check correction
CI failures — ruff format, pyright type errors, scheduler test, untrack index.html from LFS
Update pre-commit hooks for monorepo layout
Suppress pyright for optional mcp import inline
Checkout LFS files in docs deploy so artefacts aren't pointers
Correct bugs in progress tracking, config, and study sessions
Add build-system config to workspace root pyproject.toml
Expand tilde paths in remote SSH commands
Seed remote DB on first push, handle missing remote on pull
Install kokoro TTS deps with agent-session-tools, warn on fallback
Register tui command in studyctl CLI
Remove list_concepts import that doesn't exist in history.py
Relax glob patterns to match NotebookLM quiz/flashcard filenames
Resolve all ruff and pyright CI failures for TUI
Rewrite Kiro exporter for v2 table and nested message format
Add studyctl pyright to pre-commit and move pytest to pre-push
Replace non-deterministic GROUP BY with ROW_NUMBER() in get_due_cards
Display per-source stats in export progress bar, not cumulative
Narrow suppress(Exception) to specific types with logging
Use sys.executable for textual-serve subprocess
Ttyd --interface arg order causing bind failure
Use parent directory name when course dir is 'downloads'
Close out code review items A1-A4 and consolidate TODO
Match stdlib server JSON format for app.js backward compat
Constrain session config bar to fit within parent card
Guard web tests with importorskip(fastapi) for CI
CI/CD
Add Python version matrix (3.12/3.13) and GitHub Pages deployment
Add CHANGELOG, git-cliff config, and release workflow
Documentation
Add README, guides, roadmap, and contributing
Improve README intro with AuDHD-focused description
Add MCP integrations, calendar time-blocking, and WSL2 support
Update README with win tracking, calendar blocks, status line, and MCP integrations
Add acknowledgement to Teng Lin for notebooklm-py
Add NotebookLM-generated artefacts to README
Update README, agent-install, and roadmap for all platforms
Add study-speak voice output to session protocol
Add full path fallback for study-speak in session protocol
Make study-speak mandatory in session protocol
Add @speak-start/@speak-stop toggle for voice output
Add voice output guide, update README and roadmap
Replace placeholder URLs, update CLI reference, fix documentation gaps
Add artefacts page to MkDocs, update nav
Update roadmap with review findings, add v1.3 AuDHD features
Suppress interleaving on low energy, add admonition style guide
Mark interleaving suppression and admonition guide as complete
Mark auto-resume, streaks, progress-map, medication timing as complete
Add comprehensive test coverage plan (5 waves, ~1560 new test lines)
Add study-speak MCP server docs, fix agent MCP configs, expand voice guide
Unify voice behavior — speak questions, answers, and key principles
Mark AuDHD methodology enhancements as complete
Mark MkDocs documentation site as complete
Update README, agent-install, and roadmap for all platforms
Update artefact links
Document unified hosts config and session-sync integration
Update TODO with phases 6-13 roadmap from marathon session
Compound learnings from marathon session
Update artefact links
Update artefact links
Update artefact links
Add TUI dashboard docs to README, setup guide, and CLI reference
Add TUI screenshot via headless Textual capture
Comprehensive update for web PWA, voice, and accessibility features
Add unified study platform brainstorm, plan, research, and reviews
Update all user-facing documentation for Phase 0+1 changes
Features
Add agent-session-tools package
Add studyctl package
Add kiro-cli agent definitions and skills
Add claude code agents and status line
Add install scripts
Add calendar time-blocking with ICS generation
Add GitHub Pages artefact player and reusable setup script
Publish NotebookLM artefacts with GitHub Pages player
Unify agent framework across all platforms with shared AuDHD methodology
Add emotional regulation, transition support, parking lot, and sensory patterns
Add MkDocs Material documentation site with AuDHD-friendly design
Add study-speak CLI for TTS voice output
Switch study-speak to kokoro-onnx (am_michael, ~1.5s TTFA)
Add study-speak as Kiro skill with @speak-start/@speak-stop toggle
Add study-speak MCP server for native Kiro tool integration
Study-speak MCP server for Kiro agent
Speak full response in sentences, not just the question
Add voice/speed/pause config for study-speak
Add studyctl docs command group (serve, open, list, read)
Add PDA demand-light mode, express session start, expanded RSD coverage
Add auto-resume, streaks, progress-map, medication timing
Publish NotebookLM artefacts with GitHub Pages player
Add logo integration for GitHub Pages and repository
Auto-install uv and optional voice model download in install.sh
Add v1.4 pedagogical intelligence — teach-back, breaks, wind-down, bridges
Add interactive config init, config show, NotebookLM settings, agent install integration
Unify agent framework across all platforms with shared methodology
Add concept graph layer — Phase A schema + data migration
Teach study mentor agents about eBook audio overviews
Add install-tools.sh for global CLI tool installation
Session-sync reads hosts from studyctl config
Teach agents about quiz & flashcard generation from Obsidian
Add StudyCards TUI with spaced repetition and voice support
Implement list_concepts() and wire into TUI Concepts tab
Add course picker modal for multiple study directories
Add retry wrong answers mode with r key binding
Add tui.theme config option and fix voice toggle focus
Add dyslexic-friendly mode with OpenDyslexic font guidance
Add --serve flag with OpenDyslexic font in web UI
Add --host flag for LAN access in serve mode
Add o key to toggle dyslexic-friendly mode in TUI
Use ttyd as primary web serve backend, textual-serve as fallback
Add study PWA web app with flashcard and quiz review
Add voice, navigation, and remove ttyd/textual-serve code
Add source filter, card limit, history, heatmap, theme, voice improvements
Add Pomodoro timer with audio chime and browser notifications
Add speak-once button on cards for on-demand voice
Phase 1 content absorption — port pdf-by-chapters into studyctl content
Phase 2 FastAPI web UI — replace stdlib server with FastAPI
Phase 3 MCP agent integration — FastMCP server with 6 tools
Phase 4 PyPI packaging, setup wizard, Homebrew formula
Refactoring
Remove bedrock proxy exporter (no longer supported)
Consolidate config to ~/.config/studyctl/
Standardise artefact names, add Repo Deep Dive section
Consolidate duplicated functions into shared modules
Split query_sessions.py into query_utils, formatters modules
Unify hosts config with hostname-based auto-detection
Consolidate install scripts into single install.sh
Phase 0 pre-work — config consolidation, CLI split, WAL mode, service layer
Styling
Format studyctl package with ruff
Testing
Add comprehensive test coverage (72 → 390 tests)
You can’t perform that action at this time.