bvandeusen
bf292e6019
docs: remove extraneous content — pipeline internals moved to architecture, changelog removed
...
- features.md: remove SQL impl detail from tasks section, sw.js reference from PWA section,
and entire "LLM Chat — Internal Pipeline" section (moved to architecture.md)
- architecture.md: add "LLM Pipeline Internals" section (intent routing, tool loop, duplicate
guards, context window, research pipeline, image cache)
- development.md: remove site-specific NFS path from custom runner instructions
- Remove changelog.md (duplicates git history)
- README.md: remove changelog link
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-25 08:38:44 -04:00
bvandeusen
e2133529a0
docs: add missing content from summary.md (API reference, Android app, file structure, LLM internals)
...
- docs/api-reference.md: complete REST API endpoint reference (~60+ routes)
- docs/android-app.md: Flutter companion app stack, architecture, feature status
- docs/architecture.md: detailed file-by-file reference for all backend services and frontend components
- docs/features.md: LLM pipeline internals (intent routing, tool loop, duplicate guards, image search, research pipeline), roadmap
- docs/development.md: full migration chain (0001–0026) with naming and caveats
- README.md: link to new api-reference and android-app docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 21:25:12 -04:00
bvandeusen
47e248d9ac
docs: restructure documentation into docs/ directory, slim README, add project .mcp.json
...
- README.md: reduced to overview + quick start + links to docs/
- docs/architecture.md: stack, design decisions, data models, key services
- docs/configuration.md: all env vars, docker-compose setup, production + security
- docs/development.md: dev workflow, CI/CD, migrations, release process
- docs/features.md: detailed feature breakdown + keyboard shortcuts
- docs/api-keys-and-mcp.md: API key management + Fable MCP install guide
- docs/sso-oauth.md: OAuth/OIDC setup (replaces docs/oauth-setup.md)
- docs/changelog.md: development history from summary.md
- Remove summary.md (content distributed across docs/)
- Remove docs/oauth-setup.md (superseded by docs/sso-oauth.md)
- .gitignore: add .mcp.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 21:03:15 -04:00
bvandeusen
6180ee65c3
feat: add .env and Claude config downloads to API key reveal
...
After creating a key, two download buttons appear:
- 'Download .env' — pre-filled FABLE_URL + FABLE_API_KEY
- 'Download Claude config' — ready-to-paste mcpServers JSON block
Also adds Future Task A (in-app install instructions) and Future Task B
(Forgejo MCP) to the implementation plan.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 21:44:34 -04:00
bvandeusen
c24b21f259
docs: add Fable MCP implementation plan
...
17-task TDD plan covering Phase 1 (API key auth, search endpoint,
conversation type wiring, Settings UI) and Phase 2 (fable-mcp Python
package with all tool modules, tests, and Claude Code registration).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 20:24:51 -04:00
bvandeusen
e54d172487
docs: fix 8 spec review issues in Fable MCP design
...
- Add migration down_revision = "0026"
- Document create_conversation service + route changes for conversation_type
- Document SSE wire format (endpoints, event schema, termination event)
- Add retention sweep exclusion for mcp conversation type
- Rename type→content_type in search, document is_task mapping
- Clarify API keys cannot access admin-protected routes
- Document POST /api/chat/conversations accepting conversation_type body field
- Add delete_milestone to milestones tool list
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 20:03:53 -04:00
bvandeusen
f9973e22f1
docs: add Fable MCP design spec
...
Design for two sub-projects: API key auth support in fabledassistant
(bearer tokens, read/write scope, Settings UI) and a standalone Python
MCP server at fable-mcp/ exposing notes, tasks, projects, milestones,
semantic search, and chat tools to Claude Code.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 20:00:26 -04:00
bvandeusen
de4ab53363
Add implementation plans: sharing/collaboration and backup rewrite
...
- docs/plans/2026-03-11-sharing-collaboration.md
7 chunks / 12 tasks covering DB migration, models, access control service,
groups CRUD, sharing service, notifications, and all frontend components
- docs/plans/2026-03-11-backup-rewrite.md
4 tasks covering v2 export (full + user), v2 restore with FK re-mapping,
and round-trip verification; v1 restore preserved
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-11 11:46:54 -04:00
bvandeusen
3b5e84052a
Remove docs/superpowers and gitignore it
...
Planning artifacts (specs/plans) generated by Claude Code sessions don't belong
in the repo. Removing existing files and ignoring the directory going forward.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-10 22:40:44 -04:00
bvandeusen
89f3d94895
docs: settings rework implementation plan
...
Tasks: AppHeader/router cleanup, SettingsView sidebar layout,
inline Users and Logs panels.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-10 21:11:12 -04:00
bvandeusen
1047298765
docs: settings rework design spec
...
Sidebar navigation with User/Admin groups, Option-A grouped card
content style, cog header direct link, Users and Logs panels inlined.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-10 20:43:04 -04:00
bvandeusen
b37e15d59a
Add Authentik OAuth/OIDC SSO, email change, and setup docs
...
Phase 18 changes:
OAuth/OIDC SSO (Authorization Code + PKCE):
- alembic/versions/0015_add_oauth_fields.py: add oauth_sub UNIQUE column,
drop NOT NULL on password_hash
- src/fabledassistant/services/oauth.py: OIDC discovery (cached), build_auth_url,
exchange_code, get_userinfo, find_or_create_oauth_user (sub→email auto-link→create)
- src/fabledassistant/routes/auth.py: GET /api/auth/oauth/login and
GET /api/auth/oauth/callback; LOCAL_AUTH_ENABLED guards on login/register;
/api/auth/status now returns oauth_enabled + local_auth_enabled
- src/fabledassistant/config.py: OIDC_ISSUER, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET,
OIDC_SCOPES, LOCAL_AUTH_ENABLED, oidc_enabled() classmethod
- src/fabledassistant/models/user.py: password_hash nullable, oauth_sub field,
has_password bool in to_dict()
- src/fabledassistant/services/auth.py: create_user accepts password=None +
oauth_sub kwarg; authenticate returns None for OAuth-only users;
add get_user_by_oauth_sub, link_oauth_sub, update_user_email
- frontend: AuthStatus + User types updated; auth store exposes oauthEnabled +
localAuthEnabled; LoginView shows SSO button / hides password form accordingly
Email change:
- PUT /api/auth/email: requires password confirmation for local-auth users,
skips check for OAuth-only users; enforces email uniqueness
- SettingsView.vue: new Email Address section pre-filled with current email,
updates authStore.user in-place on success
Docs:
- docs/oauth-setup.md: step-by-step Authentik provider setup, example
docker-compose env vars, account linking explanation, per-provider issuer URL table
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-25 20:12:13 -05:00