Skip to content

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Apr 18:47
· 1345 commits to main since this release

[2.2.0] - 2026-04-06

Bug Fixes

  • Rename merged workflow to publish.yml for PyPI trusted publisher
  • Auto-migrate parked_topics table + add timer pause/reset controls
  • Security hardening + SSE optimization + parking dedup + docs update
  • Tmux pane creation — auto-switch, sidebar launch, bundled config
  • Tmux split sizing — switch client before split, drop hardcoded dimensions
  • Textual import — work decorator moved to textual namespace in 8.x
  • Clean panes + respect user's tmux config
  • Don't auto-load bundled tmux config — preserves user's theme
  • PERSONA_DIR path traversal — was 4 parents, needs 5
  • Web background launch uses studyctl entry point, not uv run
  • Resume blocked by stale session state after cleanup
  • Resume reuses session dir + saves session context to DB
  • Check Claude projects dir for resume detection, not .claude/ in cwd
  • Sidebar Q sends C-c to agent before cleanup
  • Reduce study session latency — CLAUDE.md + concise persona
  • Sidebar Q sends /exit not C-c, studyctl wrapper + PATH for agent
  • Add cli/main.py + wrapper integration tests
  • Sidebar Q test passes + resume -r flag verification
  • Resolve CI failures, Copilot review comments, and study session bugs
  • Exclude integration tests from pre-push pytest hook
  • Kill orphaned sidebar/agent processes after test suite
  • Doctor Kiro binary name (kiro → kiro-cli) + agent smoke tests
  • Sidebar Pilot test race — add await pilot.pause() before widget query
  • Wire adapter mcp_setup() call in session start
  • Doctor exit code aborts CI before filter runs + simplify .gitignore
  • Auto-create sessions DB on first use + atomic state file writes
  • Stale mock targets in test_mcp_tools + update roadmap
  • Obfuscate test Slack token to pass GitHub push protection
  • Multi-agent cleanup — crash recovery, MCP paths, schema drift
  • Claude trust bypass, browser polling, LAN URL display
  • Browser open survives os.execvp + draggable split-pane layout
  • Terminal panel visibility + browser open via os.fork
  • Session dashboard fills viewport when split-container is active
  • Add 'Return to inline' button on pop-out placeholder
  • Tmux dotted lines + iframe survives pop-out round-trip
  • Tmux window-size largest + iframe always loaded behind placeholder
  • Replace broken return-to-inline with clear instructions
  • Security and reliability — path traversal, format injection, file locking, PID cleanup
  • Content CLI signatures, code dedup, and 226 new tests
  • SSE duplicate div, flashcard_count API key, E2E demo test
  • 2 pre-existing bugs in query_logic.py
  • Always read lan_username from config, not just when password is empty
  • Always read lan_username from config, not just when password is empty
  • eval: Persona target starts sessions headlessly via internal API
  • eval: Increase LLM timeout to 120s, surface error details in judge
  • eval: Capture agent pane by ID, add debug logging to capture.py
  • eval: Two-phase capture + trust specific session dirs
  • eval: Auto-accept Claude Code trust dialog during eval sessions
  • eval: Compare pane content by value, not length (TUI agents)
  • eval: Correct Bedrock model ID to us.anthropic.claude-sonnet-4-6
  • eval: Clear pane ID on teardown to prevent stale pane reuse
  • eval: Increase capture timeouts for Claude Code response times
  • ci: Resolve nightly-install, CI test, and UAT failures
  • ci: Apply base schema before migrations on fresh DB
  • ci: Add --agent to double-start test, skip nested tmux on CI
  • ci: Pass -m integration to per-file UAT steps
  • doctor: Remove dead eval check left behind when eval moved to dev/
  • Propagate STUDYCTL_* env vars to tmux cleanup subprocess
  • test: Use .first for duplicate terminal panel locators in E2E tests

CI/CD

  • Add nightly UAT workflow for tmux integration tests

Documentation

  • Fix version refs, Python 3.12+ requirement, and doc consistency
  • Update roadmap, TODO, and CLI reference for v2.1.0
  • Update all user-facing docs for core-only compaction
  • Add live session dashboard brainstorm
  • Add unified session architecture brainstorm
  • Compound learnings — parallel research catches plan assumptions
  • Update README, CLI reference, and roadmap for studyctl study command
  • Update CLI reference, README, roadmap for session lifecycle
  • Add system overview — full component map with Mermaid diagrams
  • Update TODO.md with v2.2 live session dashboard progress
  • Add solution doc for tmux session management and CI fixes
  • Update TODO.md with v2.2.1 completed items and next steps
  • Update roadmap with v2.2.1 completed, clean next phases
  • Comprehensive TODO with study backlog, testing mandate, estimates
  • Add session handoff for 2026-04-02
  • Add session handoff for 2026-04-03
  • Comprehensive system architecture with PlantUML diagrams
  • Update architecture, roadmap, and test counts for v2.2 completion
  • Fix stale references — query_sessions split, config unification, FCIS paths
  • Add v2.2 release handoff — remaining refactors plan
  • Compound solution doc — SQLite schema drift + CI mock targeting
  • Update all documentation for current architecture
  • Add Phase 6 complete handoff for next session
  • Compound learning — multi-agent adapter mcp_setup() gap
  • Update artefact links
  • Update artefact links
  • Update roadmap — multi-agent complete, v2.2.0 scope defined
  • Update all documentation for ttyd + multi-agent cleanup
  • Update roadmap, CLI reference, and .gitignore for v2.2.0 local LLMs
  • Add content pipeline, TUI, and web UI user guides
  • Persona optimisation Tier 2 design spec
  • Persona eval implementation plan — 13 tasks across 4 chunks
  • Persona optimizer loop plan + session handoff
  • Add autoresearch persona optimizer runbook
  • Add CI workflow failures solution (7 root causes)
  • Add C4 architecture diagrams (context, container, component)

Features

  • Add live session foundation — parking lot persistence, session CLI, IPC protocol
  • Add cmux native dashboard — Phase 1.5 agent protocol + MCP config
  • Add web PWA live session dashboard — Phase 2
  • Add studyctl study command — Phase 1 unified session architecture
  • Auto-cleanup when agent exits + sidebar end-session binding
  • Persistent session directories for AI conversation history
  • Pomodoro countdown timer in Textual sidebar
  • Studyctl topic command + persona CLI instructions + resume context
  • Integration tests with mock agent — 7 pass, real tmux sessions
  • Comprehensive integration tests — 22 pass, full lifecycle
  • Add bridge CLI command + 4 E2E experience verification tests
  • Add studyctl clean command with FCIS architecture
  • Tmux-resurrect compatibility — auto-clean, docs, doctor check
  • Study backlog phase 1 — topics CRUD, auto-persist, agent surfacing
  • Study backlog phase 2 — AI prioritization, MCP tools, session-db integration
  • Vendor HTMX, Alpine.js, SSE extension, OpenDyslexic for offline PWA
  • V2.2 Phase A — break suggestions, energy streaks, MCP registration, vendor Inter
  • V2.2 Phase B — nested tmux UAT and --end from outside tests
  • Phase 6 CI/CD — nightly install, pre-release gate, backup/restore
  • Phase 2 multi-agent support — wire Gemini, Kiro, OpenCode adapters
  • Migrate session-db-mcp server from extract_session_to_db
  • Ttyd integration — web terminal, --lan flag, browser auto-open
  • Same-origin ttyd proxy + LAN password protection + pop-out fix
  • Local LLM support — Ollama and LM Studio adapters
  • Study briefing — cohesive loop connecting content, review, and sessions
  • Autoresearch iterate runner + persona effectiveness tracking
  • web: Unified sidebar navigation with 4 content views
  • web: Rewrite flashcard/quiz engine as Alpine.js components
  • web: Alpine Pomodoro store, delete app.js + session.html
  • Topic_slug in session DB + LAN username/password config
  • Web session start/end, tmux safety guard, LAN auth tests, content CLI tests
  • eval: Autonomous persona evaluation harness — 13 tasks, 130 tests
  • Autoresearch Phase 3 — reporting, regression detection, CI workflow
  • eval: Add AWS Bedrock provider for LLM judge
  • eval: Add judge feedback for persona prompt optimisation
  • eval: Log agent response, judge scores, dimensions, and feedback
  • persona: Autoresearch-optimised study mentor persona
  • persona: Autoresearch-optimised co-study companion persona

Refactoring

  • Consolidate test infrastructure and document conventions (#1)
  • Move clean_logic to package level + wire service layer
  • Create logic/ subpackage + fix parking table schema drift
  • Clean up config loader, split query_sessions monolith, fix CI failures
  • 3 quick fixes from comprehensive code review
  • Split god modules — history/, session/, topics.py + SM-2 fix
  • Code quality sweep — circular deps, deduplication, agent config consistency
  • eval: Replace tmux capture with claude -p print mode
  • Remove eval harness module (moved to dev/)
  • Remove dead EvalConfig from settings (eval moved to dev/)

Testing

  • Add sidebar Q cleanup test (xfail — tmux send-keys vs Textual)
  • Add harness matrix agent and test_harness_matrix.py
  • web: Add 13 Playwright sidebar E2E tests, update terminal tests
  • content: Add integration tests for generate, download, list, delete CLI
  • Fill coverage gaps found during v2.2.0 audit
  • Add web CLI command tests (7 tests)

Compact

  • Strip to 4 core features, prune CLI to 13 commands, fix doctor tests

Merge

  • Resolve conflicts with main (local LLMs + PID safety)