Phase 9d: Pre-Flight — Protocol-Mirror durch upstream ersetzt

@mana/shared-share-protocol@0.1.0 ist jetzt installierbar (NPM_AUTH_TOKEN
aus claudebot-Verdaccio-Account). Lokaler protocol/-Mirror zeigt jetzt
auf upstream:

- envelope.ts → Re-Export von ShareEnvelopeSchema/Strict, parseEnvelope,
  ENVELOPE_VERSION, ShareEnvelope
- search.ts → Re-Export von SearchHitSchema, SearchResultEnvelopeSchema,
  SEARCH_ENVELOPE_VERSION, SearchHit, SearchResultEnvelope
- payloads.ts → Re-Export der Format-Schemas (Quote/Link/Text);
  Cards-spezifische PAYLOAD_SCHEMAS / validatePayloadForType bleiben
  lokal (Akzeptanz-Liste ist Cards-Layer, nicht Föderation)

Spec-Drift gefixt: der frühere Mirror nutzte MANA_TYPE_URL = 'mana/url',
upstream definiert MANA_TYPE_LINK = 'mana/link'. app-manifest.json,
share-handlers (UrlPayload → LinkPayload, "mana/url" → "mana/link")
und Doku-Kommentare auf den Spec-konformen Namen umgestellt.

DNS-Korrektur in Repo-.npmrc: pkg.mana.how-Tunnel ist Lame-Duck (404),
npm.mana.how ist die produktive Verdaccio-Route nach 2026-05-07-Re-Deploy.
~/.npmrc bleibt unangetastet — Anpassung ist user-side.

Tests + svelte-check 0 errors, 92 Tests grün (41 Domain + 46 API + 5
Web), prod-Build sauber.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-05-08 18:00:56 +02:00
parent 47419b3cac
commit aff4d9536a
8 changed files with 78 additions and 170 deletions

View file

@ -1,5 +1,5 @@
import { newReview, subIndexCount } from '@cards/domain';
import type { QuotePayload, TextPayload, UrlPayload } from '@cards/domain';
import type { QuotePayload, TextPayload, LinkPayload } from '@cards/domain';
import type { CardsDb } from '../db/connection.ts';
import { cards, reviews } from '../db/schema/index.ts';
@ -89,13 +89,13 @@ export async function createCardFromQuote(
}
/**
* mana/url Karte. Front = Titel (oder URL falls kein Titel),
* mana/link Karte. Front = Titel (oder URL falls kein Titel),
* Back = URL + Description/Snippet.
*/
export async function saveLinkAsCard(
db: CardsDb,
userId: string,
payload: UrlPayload
payload: LinkPayload
): Promise<HandlerResult> {
const front = payload.title ?? payload.url;
const summary = payload.description ?? payload.snippet ?? '';