Skip to content

Commit 7df8661

Browse files
Merge pull request #2 from NetDevAutomate/feat/study-command-e2e
feat: merge study command + E2E experience tests + bridge CLI
2 parents 969c2de + cfa0c44 commit 7df8661

72 files changed

Lines changed: 6832 additions & 2840 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,3 +480,5 @@ docs/plans/
480480

481481
# Artefacts (served from artefact-store, not committed to source repo)
482482
docs/artefacts/
483+
pytest-of-*/
484+
uv-*.lock

README.md

Lines changed: 100 additions & 348 deletions
Large diffs are not rendered by default.

TODO.md

Lines changed: 77 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,114 @@
1-
# Socratic Study Mentor -- Active Backlog
1+
# Socratic Study Mentor Active Backlog
22

33
> Single source of truth for outstanding work.
4-
> For Phase 1-4 implementation details, see `docs/plans/2026-03-15-feat-unified-study-platform-plan.md`.
4+
> System overview: `docs/system-overview.md`
5+
6+
## Core Features (maintained)
7+
8+
| Feature | Status |
9+
|---------|--------|
10+
| Socratic AI sessions (Claude, Kiro, Gemini, OpenCode) | Active |
11+
| Content pipeline → NotebookLM (split, process, autopilot) | Active |
12+
| Flashcard/quiz review (PWA web app, SM-2) | Active |
13+
| Session intelligence (export, search, sync) | Active |
14+
| Live study sessions (`studyctl study` + tmux + sidebar) | Active |
515

616
## Completed (summary)
717

818
| Phase | Description | Status |
919
|-------|-------------|--------|
10-
| 1 | Fix broken code (spaced repetition, progress, config) | Done |
11-
| 2 | Unify agent framework (5 platforms, shared docs) | Done |
12-
| 3 | AuDHD methodology (emotional regulation, parking lot, etc.) | Done |
13-
| 4 | Documentation site (MkDocs Material, font toggle, custom admonitions) | Done |
14-
| 5 | Documentation & install polish (README, agent-install, roadmap) | Done |
15-
| 6 | Centralised artefact store (GitHub Pages, config, store module) | Done |
16-
| 7 | Unified config & cross-machine sync (hosts, SSH, install scripts) | Done |
17-
| 8 | StudyCards TUI (review_loader, review_db, SM-2, voice toggle) | Done |
18-
| 9 | TUI polish & PWA web app (Pomodoro, voice, accessibility) | Done |
19-
| Phase 0 | Pre-work: config consolidation, CLI split, WAL mode, service layer | Done |
20+
| 1-9 | Foundation, agents, AuDHD methodology, docs, artefacts, config, TUI, PWA | Done |
21+
| Phase 0 | Config consolidation, CLI split, WAL mode, service layer | Done |
2022
| Phase 1 | Content absorption: 7 modules, 10 CLI commands, 76 tests | Done |
21-
| Phase 4 | PyPI + Homebrew tap live, OIDC trusted publishing | Done |
23+
| Phase 4 | PyPI + Homebrew tap, OIDC trusted publishing | Done |
2224
| Phase 5 | Doctor/upgrade/install-mentor: 3 CLI commands, 7 checker modules | Done |
23-
| Fixes | Export progress bar (A1), list_concepts (A2), course picker (A3), retry wrong (A4), SQL/connection leaks (A5), narrow exceptions (A6) | Done |
25+
| Compaction | Strip to 4 core features, 13 CLI commands | Done |
2426

25-
## Unified Platform Plan -- Next Phases
27+
### v2.2 — Live Session Dashboard (on `feat+live-session-dashboard` branch)
2628

27-
### Phase 6: CI/CD Pipeline (next)
29+
| Item | Status |
30+
|------|--------|
31+
| Session CLI (`session start/end/status`, `park`) + IPC protocol | Done |
32+
| cmux agent protocol (Phase 1.5) | Done |
33+
| Web dashboard — SSE + HTMX + Alpine.js (`/session`) | Done |
34+
| Bug fixes — parking dedup, IPC permissions 0700/0600, CORS, SSE mtime | Done |
35+
| `studyctl study` — tmux session, agent launcher (Claude), Textual sidebar | Done |
36+
| Agent personas (`study.md`, `co-study.md`) | Done |
37+
| Auto-cleanup on agent exit + sidebar `Q` end session | Done |
38+
| Persistent session directories with conversation resume (`claude -r`) | Done |
39+
| Pomodoro countdown timer (25/5/25/5/25/5/25/15 cycle) | Done |
40+
| Catppuccin-compatible tmux overlay (no theme clobbering) | Done |
41+
| System overview doc (`docs/system-overview.md`) | Done |
42+
| **359 tests pass, all pre-commit hooks pass** | |
2843

29-
Nightly drift detection, pre-release gate, Docker image pipeline. Spec at `docs/ci-cd-pipeline.md`.
44+
**Not yet merged to main. Pending: test `--resume` in a real study session, then squash-merge + release v2.2.0.**
3045

31-
### Phase 7: Docker Web + Server-Side TTS
46+
## Next
47+
48+
### v2.2 — Remaining Polish (Phase 2)
3249

33-
Docker image running `studyctl web` with kokoro-onnx server-side TTS.
50+
- [ ] Vendor HTMX + Alpine.js into `web/static/` (remove CDN, enable offline PWA)
51+
- [ ] Parked topic warmup at session start (surface unresolved topics from previous sessions)
52+
- [ ] Break suggestions at timer threshold crossings (from `break-science.md`)
53+
- [ ] Energy streaks — correlate energy levels with session outcomes in `studyctl streaks`
3454

35-
### Phase 2: FastAPI Web UI
55+
### Phase 6: CI/CD Pipeline
3656

37-
Replace stdlib HTTP server with FastAPI. HTMX + Alpine.js frontend, artefact viewer, progress dashboard. Migrate all 11 existing routes.
57+
Nightly drift detection, pre-release gate, Docker image pipeline. Spec at `docs/ci-cd-pipeline.md`.
58+
59+
- [ ] Nightly: fresh install on Ubuntu + macOS, `studyctl doctor --json` as gate
60+
- [ ] Pre-release: upgrade path N-1 → N, triggered on release tags
61+
- [ ] Docker: `studyctl-web` image with server-side TTS, health check via doctor
3862

39-
See: `docs/plans/2026-03-15-feat-unified-study-platform-plan.md` -- Phase 2
63+
### Phase 3: Devices (ttyd + LAN access)
4064

41-
### Phase 3: MCP Agent Integration
65+
- [ ] ttyd via nginx/Caddy proxy (Unix socket, htpasswd auth)
66+
- [ ] pyrage + macOS Keychain for password management
67+
- [ ] Web terminal embed (iframe with LAN IP, `frame-ancestors` CSP)
68+
- [ ] `studyctl study --lan` flag
4269

43-
FastMCP v1 server with stdio transport. Flashcard/quiz generation tools, study context tools, onboarding agent skill.
70+
### Phase 7: Docker Web + Server-Side TTS
4471

45-
See: `docs/plans/2026-03-15-feat-unified-study-platform-plan.md` -- Phase 3
72+
- [ ] Docker image running `studyctl web` with kokoro-onnx TTS
73+
- [ ] FastAPI audio endpoint for browser playback
4674

4775
## Standalone Items (not blocked by phases)
4876

4977
- [ ] Obsidian export: convert flashcard JSON to Obsidian `#flashcard` format (Spaced Repetition plugin compatible)
78+
- [ ] Merge `feat+live-session-dashboard` to main + release v2.2.0
79+
- [ ] Textual sidebar tests (using Textual test framework)
80+
81+
## Archived Features (in git history, restore on demand)
82+
83+
- TUI dashboard (`studyctl tui`) — replaced by Textual sidebar in tmux
84+
- Scheduler (launchd/cron management)
85+
- Calendar .ics generation (`schedule-blocks`)
86+
- Knowledge bridges DB + CLI commands
87+
- Teach-back scoring DB + CLI commands
88+
- Crush + Amp agent definitions
5089

5190
## Deferred (add when real demand appears)
5291

53-
- LAN password auth (`--password` flag + HTTP Basic Auth)
92+
- LAN password auth (Phase 3 — ttyd + pyrage + Keychain)
5493
- Config editor web UI
55-
- GitHub Issues API feedback
56-
- TUI artefact browser
57-
- Native iOS/macOS app (research in `docs/research/swift-poc-feasibility.md`)
94+
- Native iOS/macOS app
5895
- AWS cloud sync (Cognito, DynamoDB, push notifications)
96+
- Agents: Gemini, Kiro, OpenCode launch commands (add when testing against binaries)
5997

6098
## Key File References
6199

62100
| Item | Location |
63101
|------|----------|
64-
| Unified Platform Plan | `docs/plans/2026-03-15-feat-unified-study-platform-plan.md` |
65-
| Brainstorm (decisions) | `docs/brainstorms/2026-03-15-unified-study-platform-brainstorm.md` |
66-
| Code Review Items | `code-review-plan-items.md` |
102+
| System Overview | `docs/system-overview.md` |
103+
| Session Architecture Plan | `docs/plans/2026-03-29-feat-unified-session-architecture-plan.md` |
67104
| CLI Package | `packages/studyctl/src/studyctl/cli/` |
105+
| Study Orchestrator | `packages/studyctl/src/studyctl/cli/_study.py` |
106+
| tmux Wrapper | `packages/studyctl/src/studyctl/tmux.py` |
107+
| Agent Launcher | `packages/studyctl/src/studyctl/agent_launcher.py` |
108+
| Textual Sidebar | `packages/studyctl/src/studyctl/tui/sidebar.py` |
109+
| Web PWA + Session Dashboard | `packages/studyctl/src/studyctl/web/` |
110+
| Agent Personas | `agents/shared/personas/` |
68111
| Services Layer | `packages/studyctl/src/studyctl/services/` |
69-
| Settings (config) | `packages/studyctl/src/studyctl/settings.py` |
70112
| Review DB (SM-2) | `packages/studyctl/src/studyctl/review_db.py` |
71-
| TUI Source | `packages/studyctl/src/studyctl/tui/` |
72-
| Web PWA | `packages/studyctl/src/studyctl/web/` |
73-
| Hosts Config | `~/.config/studyctl/config.yaml` |
113+
| Config | `~/.config/studyctl/config.yaml` |
114+
| Session Directories | `~/.config/studyctl/sessions/` |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)