mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-06 06:52:20 +02:00
docs(email): point the specs at the canonical module paths
The move left three documents naming `routes/email_routes.py`, `routes/email_helpers.py` and `routes/email_pollers.py` as where the code is. The shims keep those import paths working, so nothing breaks — but each of those files is now seventeen lines that redirect, and a reader sent there finds no email code at all. Follows the phrasing specs/persistence.md already uses for the contacts and vault subpackages: name the canonical path and note the shims.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"""odysseus-mail — Unix-style command-line wrapper around the email
|
||||
backend that powers the web UI.
|
||||
|
||||
Calls the same helpers `routes/email_helpers.py` exports, so a request
|
||||
Calls the same helpers `routes/email/email_helpers.py` exports, so a request
|
||||
issued from the shell hits IMAP/SMTP through the same connection pool
|
||||
and the same parsing pipeline as the HTTP routes. State is shared via
|
||||
`data/app.db` and `data/.app_key` (passwords decrypt automatically).
|
||||
|
||||
@@ -8,7 +8,8 @@ This spec covers mail and contacts in:
|
||||
|
||||
- app wiring in `app.py`;
|
||||
- `core.database.EmailAccount`;
|
||||
- `routes/email_routes.py`, `routes/email_helpers.py`, and `routes/email_pollers.py`;
|
||||
- canonical `routes/email/email_routes.py`, `routes/email/email_helpers.py`, and
|
||||
`routes/email/email_pollers.py`, plus their shims at the old flat paths;
|
||||
- email threading in `src/email_thread_parser.py`;
|
||||
- email MCP tools in `mcp_servers/email_server.py`;
|
||||
- canonical contact/CardDAV routes in `routes/contacts/contacts_routes.py`,
|
||||
|
||||
@@ -16,7 +16,7 @@ This spec covers durable state in:
|
||||
- `src/attachment_refs.py`, `src/upload_handler.py`, and
|
||||
`routes/upload_routes.py` for durable upload references and retention;
|
||||
- JSON stores managed by `core/auth.py`, `src/settings.py`, `src/api_key_manager.py`, `src/preset_manager.py`, `src/integrations.py`, `src/upload_handler.py`, `src/personal_docs.py`, `src/research_handler.py`, `src/bg_jobs.py`, `routes/prefs_routes.py`, canonical `routes/contacts/contacts_routes.py` and `routes/vault/vault_routes.py` plus their shims, `routes/cookbook_routes.py`, and memory/skills managers;
|
||||
- `routes/email_helpers.py` scheduled-email storage;
|
||||
- canonical `routes/email/email_helpers.py` scheduled-email storage;
|
||||
- `routes/backup_routes.py` and `scripts/odysseus-backup`;
|
||||
- runtime data under `data/`.
|
||||
|
||||
@@ -61,7 +61,7 @@ Email default-account state is serialized per owner. Startup normalizes legacy d
|
||||
|
||||
`core/models.py` owns pure dataclasses used by `SessionManager`. It does not own database persistence.
|
||||
|
||||
`routes/email_helpers.py` owns a second SQLite database at `data/scheduled_emails.db` for scheduled email, summary, reply, tag, sender-signature, urgency-alert, calendar-extraction, and cache state. Its migrations and owner backfills are local to that module, not `core/database.py`, and those auxiliary tables are owner-scoped.
|
||||
`routes/email/email_helpers.py` owns a second SQLite database at `data/scheduled_emails.db` for scheduled email, summary, reply, tag, sender-signature, urgency-alert, calendar-extraction, and cache state. Its migrations and owner backfills are local to that module, not `core/database.py`, and those auxiliary tables are owner-scoped.
|
||||
|
||||
## Migration Policy
|
||||
|
||||
|
||||
Reference in New Issue
Block a user