feat(horatio): add Horatio actor script memorization app
Two-package monorepo:
- horatio_core: pure Dart package (parser, SRS, planner)
- horatio_app: Flutter UI (Bloc/Cubit, GoRouter, TTS)
Features:
- Script import (txt, docx, pdf) with drag-and-drop
- Four script format parsers (colon, bracketed, parenthetical, screenplay)
- SM-2 spaced repetition for line memorization
- Rehearsal mode with TTS and line comparison
- 5 bundled public domain scripts
Quality:
- 83 core tests + 160 app tests, both 100% branch coverage
- Strict analysis (130+ lint rules, fatal-infos)
- Dead code detection script (dead_code.sh)
- run.sh pipeline: analyze, test, dead-code, run, web
- Pre-commit hook for horatio test coverage
2026-03-29 14:44:57 +02:00
|
|
|
name: horatio_app
|
|
|
|
|
description: >-
|
|
|
|
|
Horatio — the actor's faithful companion for script memorization.
|
|
|
|
|
Multiplatform app with dialogue rehearsal and spaced repetition.
|
|
|
|
|
publish_to: none
|
|
|
|
|
version: 0.1.0
|
|
|
|
|
|
|
|
|
|
environment:
|
|
|
|
|
sdk: ^3.11.0
|
|
|
|
|
flutter: ">=3.10.0"
|
|
|
|
|
|
|
|
|
|
dependencies:
|
|
|
|
|
flutter:
|
|
|
|
|
sdk: flutter
|
|
|
|
|
flutter_bloc: ^9.0.0
|
|
|
|
|
equatable: ^2.0.7
|
|
|
|
|
go_router: ^17.1.0
|
|
|
|
|
flutter_tts: ^4.2.0
|
|
|
|
|
file_picker: ^10.3.10
|
|
|
|
|
desktop_drop: ^0.7.0
|
|
|
|
|
device_preview: ^1.3.1
|
|
|
|
|
drift: ^2.22.0
|
|
|
|
|
sqlite3_flutter_libs: ^0.6.0+eol
|
feat: annotations subsystem — core models, drift DB, cubits, and UI
Add the complete annotations feature for marking and annotating script text:
Core models (horatio_core):
- TextMark, LineNote, AnnotationSnapshot, MarkType, NoteCategory
- Script.id field + UUID generation in text_parser
Database layer (horatio_app):
- Drift tables: text_marks, line_notes, annotation_snapshots
- AppDatabase with AnnotationDao (full CRUD + streams + bulk replace)
State management:
- AnnotationCubit: mark/note CRUD, line selection, editing context
- AnnotationHistoryCubit: snapshot save/restore with stream updates
UI components:
- MarkOverlay: colored span rendering for text marks
- NoteIndicator: per-line note count badge
- MarkTypePicker: 6-type ActionChip selector
- NoteEditorSheet: category dropdown + text field bottom sheet
- AnnotationEditorScreen: full editor with long-press marks + note editing
- AnnotationHistoryScreen: snapshot timeline with restore dialog
Wiring:
- main.dart: async DB init with path_provider
- app.dart: RepositoryProvider<AnnotationDao>
- router.dart: /annotations + /annotation-history routes
- role_selection_screen: Annotate Script option
- run.sh: app_codegen step + coverage filtering for generated code
352 tests (105 core + 247 app), 100% branch coverage, zero dead code.
2026-03-29 17:59:26 +02:00
|
|
|
uuid: ^4.5.1
|
feat(horatio): add Horatio actor script memorization app
Two-package monorepo:
- horatio_core: pure Dart package (parser, SRS, planner)
- horatio_app: Flutter UI (Bloc/Cubit, GoRouter, TTS)
Features:
- Script import (txt, docx, pdf) with drag-and-drop
- Four script format parsers (colon, bracketed, parenthetical, screenplay)
- SM-2 spaced repetition for line memorization
- Rehearsal mode with TTS and line comparison
- 5 bundled public domain scripts
Quality:
- 83 core tests + 160 app tests, both 100% branch coverage
- Strict analysis (130+ lint rules, fatal-infos)
- Dead code detection script (dead_code.sh)
- run.sh pipeline: analyze, test, dead-code, run, web
- Pre-commit hook for horatio test coverage
2026-03-29 14:44:57 +02:00
|
|
|
path_provider: ^2.1.0
|
|
|
|
|
path: ^1.9.0
|
|
|
|
|
intl: ^0.20.2
|
2026-03-29 21:11:43 +02:00
|
|
|
shared_preferences: ^2.3.0
|
|
|
|
|
audioplayers: ^6.1.0
|
feat(horatio): add Horatio actor script memorization app
Two-package monorepo:
- horatio_core: pure Dart package (parser, SRS, planner)
- horatio_app: Flutter UI (Bloc/Cubit, GoRouter, TTS)
Features:
- Script import (txt, docx, pdf) with drag-and-drop
- Four script format parsers (colon, bracketed, parenthetical, screenplay)
- SM-2 spaced repetition for line memorization
- Rehearsal mode with TTS and line comparison
- 5 bundled public domain scripts
Quality:
- 83 core tests + 160 app tests, both 100% branch coverage
- Strict analysis (130+ lint rules, fatal-infos)
- Dead code detection script (dead_code.sh)
- run.sh pipeline: analyze, test, dead-code, run, web
- Pre-commit hook for horatio test coverage
2026-03-29 14:44:57 +02:00
|
|
|
horatio_core:
|
|
|
|
|
path: ../horatio_core
|
|
|
|
|
speech_to_text: ^7.3.0
|
|
|
|
|
record: ^6.2.0
|
|
|
|
|
|
|
|
|
|
archive: any
|
|
|
|
|
xml: any
|
|
|
|
|
dev_dependencies:
|
|
|
|
|
flutter_test:
|
|
|
|
|
sdk: flutter
|
|
|
|
|
flutter_lints: ^6.0.0
|
feat: annotations subsystem — core models, drift DB, cubits, and UI
Add the complete annotations feature for marking and annotating script text:
Core models (horatio_core):
- TextMark, LineNote, AnnotationSnapshot, MarkType, NoteCategory
- Script.id field + UUID generation in text_parser
Database layer (horatio_app):
- Drift tables: text_marks, line_notes, annotation_snapshots
- AppDatabase with AnnotationDao (full CRUD + streams + bulk replace)
State management:
- AnnotationCubit: mark/note CRUD, line selection, editing context
- AnnotationHistoryCubit: snapshot save/restore with stream updates
UI components:
- MarkOverlay: colored span rendering for text marks
- NoteIndicator: per-line note count badge
- MarkTypePicker: 6-type ActionChip selector
- NoteEditorSheet: category dropdown + text field bottom sheet
- AnnotationEditorScreen: full editor with long-press marks + note editing
- AnnotationHistoryScreen: snapshot timeline with restore dialog
Wiring:
- main.dart: async DB init with path_provider
- app.dart: RepositoryProvider<AnnotationDao>
- router.dart: /annotations + /annotation-history routes
- role_selection_screen: Annotate Script option
- run.sh: app_codegen step + coverage filtering for generated code
352 tests (105 core + 247 app), 100% branch coverage, zero dead code.
2026-03-29 17:59:26 +02:00
|
|
|
build_runner: ^2.4.0
|
|
|
|
|
drift_dev: ^2.22.0
|
feat(horatio): add Horatio actor script memorization app
Two-package monorepo:
- horatio_core: pure Dart package (parser, SRS, planner)
- horatio_app: Flutter UI (Bloc/Cubit, GoRouter, TTS)
Features:
- Script import (txt, docx, pdf) with drag-and-drop
- Four script format parsers (colon, bracketed, parenthetical, screenplay)
- SM-2 spaced repetition for line memorization
- Rehearsal mode with TTS and line comparison
- 5 bundled public domain scripts
Quality:
- 83 core tests + 160 app tests, both 100% branch coverage
- Strict analysis (130+ lint rules, fatal-infos)
- Dead code detection script (dead_code.sh)
- run.sh pipeline: analyze, test, dead-code, run, web
- Pre-commit hook for horatio test coverage
2026-03-29 14:44:57 +02:00
|
|
|
bloc_test: ^10.0.0
|
|
|
|
|
mocktail: ^1.0.0
|
|
|
|
|
plugin_platform_interface: any
|
|
|
|
|
flutter:
|
|
|
|
|
uses-material-design: true
|
|
|
|
|
assets:
|
|
|
|
|
- assets/public_domain/
|
2026-03-30 20:18:33 +02:00
|
|
|
- assets/demo_recordings/
|