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>
This commit is contained in:
@@ -97,6 +97,41 @@ Required secrets (repo → Settings → Secrets → Actions):
|
||||
- `REGISTRY_USER` — Forgejo username
|
||||
- `REGISTRY_TOKEN` — Forgejo PAT with `write:packages` scope
|
||||
|
||||
## Migration Chain
|
||||
|
||||
Current migration sequence (all idempotent raw SQL):
|
||||
|
||||
```
|
||||
0001 create_notes_table
|
||||
0002 create_tasks_table
|
||||
0003 task_note_companion (data migration)
|
||||
0004 merge_tasks_into_notes
|
||||
0005 add_chat_tables
|
||||
0006 add_settings_table
|
||||
0007 add_title_and_updated_at_indexes
|
||||
0008 add_users_and_user_id
|
||||
0009 add_message_status
|
||||
0010 add_app_logs_table
|
||||
0011 add_password_reset_tokens
|
||||
0012 add_invitation_tokens
|
||||
0013 add_tool_calls_to_messages
|
||||
0014 add_note_embeddings
|
||||
0015 add_oauth_fields
|
||||
0016 add_image_cache
|
||||
0017 add_projects
|
||||
0018 add_push_subscriptions
|
||||
0019 add_note_parent_and_project_fields
|
||||
0020 add_milestones
|
||||
0021 add_task_logs
|
||||
0022 add_note_versions_and_drafts
|
||||
0023 add_tags_to_note_versions
|
||||
0024 add_session_version
|
||||
0025 add_sharing_and_notifications
|
||||
0026 add_briefing_tables
|
||||
```
|
||||
|
||||
**Important:** Do NOT use `op.create_table()` or `sa.Enum()` — SQLAlchemy's event system can fire `CREATE TYPE` even with `create_type=False`, causing failures on re-run. Always use raw SQL with `IF NOT EXISTS` / `DO $$ BEGIN ... EXCEPTION WHEN duplicate_object` guards.
|
||||
|
||||
## Project Conventions
|
||||
|
||||
### Backend
|
||||
|
||||
Reference in New Issue
Block a user