Erste lauffähige Version der Reader-App des Vereins mana e.V. Drei Use-Cases unter einem Dach: kuratierter News-Feed, Pocket-Style Save-it-later mit Highlights, RSS-Recherche. Standalone-Peer-App: eigene DB (mana_lesen, Schema reader), eigene Webapp, Föderation HTTP/JWT mit mana-auth + mana-news-pool + mana-research. Pattern aus seepuls/cards übernommen. Phasen: - λ-0 Repo-Skelett (pnpm-workspace, turbo, docker-compose, app-manifest, CLAUDE.md, STATUS.md, README.md) - λ-0 packages/lesen-domain — Pure-TS Feed-Engine + Types + Source-Meta-Liste; 9/9 Vitest grün - λ-0 PORTS.md-Eintrag in mana/docs (lesen-api 3099, lesen-web 3100) - λ-1 DB-Schema mit 8 Tabellen (saved_articles, highlights, article_tags, preferences, reactions, import_jobs, import_items, extract_pickup); db:push grün - λ-2 Auth-Föderation: JWKS-Cache-Middleware aus mana-auth, Service-Key-Middleware; Pflicht-Endpoints (dsgvo, search, share/receive, tools/:name) - λ-3 Core-API: /articles CRUD + /extract/preview, /highlights, /preferences (singleton + auto-create), /reactions mit Auto-Weight-Diff via applyReaction, /feed (Pool-Proxy mit server-side feed-engine-Ranking) - λ-4 Web-UI minimal: API-Client, Feed-Page + Lese-Liste mit Save-Form, Recherche-Tab-Stub Plattform-Lifts (parallel, vor Deploy): shared-rss → mana/packages (Lift-A, vendored bis dahin), news-ingester → mana-news-pool (Lift-B, Port 3079 reserviert in PORTS.md), News-Research → mana-research integrieren (Lift-C deferred). Encryption initial AUS (Cards-Konvention). lesen.dev_token im localStorage als DEV-Auth-Stub bis Auth-Portal-Migration. Lokal verifiziert: - pnpm install / docker:up / db:push / dev → grün - Type-Check apps/api + apps/web → 0 errors - Build apps/web → grün - Smoke-Probes: /healthz, /.well-known/mana-app.json, JWT-Gate, Service-Key-Gate, DSGVO-Export
22 lines
354 B
JSON
22 lines
354 B
JSON
{
|
|
"$schema": "https://turbo.build/schema.json",
|
|
"tasks": {
|
|
"build": {
|
|
"dependsOn": ["^build"],
|
|
"outputs": ["dist/**", ".svelte-kit/**", "build/**"]
|
|
},
|
|
"type-check": {
|
|
"dependsOn": ["^build"]
|
|
},
|
|
"test": {
|
|
"dependsOn": ["^build"]
|
|
},
|
|
"dev": {
|
|
"cache": false,
|
|
"persistent": true
|
|
},
|
|
"clean": {
|
|
"cache": false
|
|
}
|
|
}
|
|
}
|