The Phase 7 template strip left script-level state, functions, and
imports that no template ever referenced. TypeScript strict mode
(noUnusedLocals + noUnusedParameters) caught all of them on CI.
Removed from the script:
- chat retention: chatRetentionDays, savingRetention, saveRetention
- VAPID/push: vapidResetting/Msg/Error, resetVapidKeys, usePushStore,
pushStore.checkSubscription() call in onMounted
- admin voice block: adminVoiceEnabled, adminVoiceSttModel,
savingAdminVoice, adminVoiceSaved, voiceLoadingModels,
saveAdminVoice, reloadVoiceModels (plus the matching admin
template block — that was still present and referenced these)
- user voice block: voiceStatus, voiceStatusLoading, availableVoices,
voiceTtsVoice, voiceTtsSpeed, voiceSpeechStyle, savingVoice,
voiceSaved, voiceTabLoaded, the whole voice library
(voiceLibrary, voiceLibraryLoading/Error/Filter/Expanded,
installingVoiceIds, uninstallingVoiceIds, filteredVoiceLibrary,
formatVoiceSize, loadVoiceLibrary, refreshInstalledVoices,
installLibraryVoice, uninstallLibraryVoice, loadVoiceTab,
voicePreviewing, previewVoice, saveVoiceSettings)
- observations / consolidation: consolidating, clearingObs,
observations, observationsExpanded/Loading/Loaded,
toggleObservations, onToggleCloseout, runConsolidate,
clearObservations
- assistant / model management: assistantName, defaultModel,
backgroundModel, installedModels, defaultChatModel, OllamaModel
interface, ollamaModels, pullModelName, pullProgress, pulling,
deletingModel, formatBytes, loadOllamaModels, pullModel,
deleteModel, saveAssistant, saving, saved
- api/client imports: getVoiceStatus, getVoiceList, getVoiceLibrary,
installVoice, uninstallVoice, synthesiseSpeech, consolidateProfile,
clearProfileObservations, listProfileObservations,
VoiceStatusResult, VoiceEntry, VoiceLibraryEntry,
ProfileObservationEntry
Surviving: journalConfig + locations editor + temp_unit selector
(Profile→Locations section still uses these to manage home/work
addresses for any future feature; the journal-specific prep/closeout
fields on the same object are dead but harmless as object members).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fabled Scribe
A self-hosted second brain and project management application with integrated LLM capabilities. Write, organise, and act on your notes and tasks with the help of a local AI assistant — all running on your own hardware.
Features
Notes and tasks with a Markdown editor, sub-tasks, milestones, and kanban project workspaces. AI chat with streaming responses, RAG over your notes, and tool use (web search, calendar, weather). A daily briefing that digests your tasks, RSS feeds, and weather on a schedule. Knowledge graph, per-user/group sharing, PWA with push notifications, an MCP server for external AI clients, and an Android companion app.
Quick Start
Prerequisites: Docker and Docker Compose. 8 GB+ RAM recommended for LLM inference.
Download docker-compose.quickstart.yml from this repo, then:
# Optional but recommended — set a secret key
export SECRET_KEY=your-random-secret-here
docker compose -f docker-compose.quickstart.yml up -d
Open http://localhost:5000. The first user to register becomes admin. Go to Settings → General to pull an LLM model — qwen3:8b or llama3.1:8b are good starting points.
GPU: Ollama runs CPU-only by default. See the comments in
docker-compose.quickstart.ymlto enable NVIDIA GPU passthrough.
Development: To build from source, see Development.
Documentation
| Doc | Contents |
|---|---|
| Architecture | Stack, design decisions, data models, key services |
| Configuration | Environment variables, Docker Compose, production setup, security |
| Features | Detailed feature breakdown and keyboard shortcuts |
| Development | Dev workflow, CI/CD, migrations, release process |
| API Keys & MCP | API key management and Fable MCP install guide |
| SSO / OAuth | OIDC setup for Authentik, Keycloak, and other providers |
| API Reference | All REST API endpoints |
| Android App | Flutter companion app architecture and feature status |
License
This project is privately maintained.