Conversation
) The review screen shall show the cited PDF page with the stored bounding box highlighted. pdf.js renders the original in the browser from the existing tenant-checked document route: no new route, no public URL, no third-party request, no extra load on the stateless AI service. Apache-2.0, pinned; loaded lazily only when a PDF source is shown. Decision and rejected options: ADR-0002. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…highlighted - source view carries the cited segment's page and box for a PDF document itself (not for a PDF inside an Outlook message: the route serves the .msg) - client component renders that page with pdf.js from the tenant-checked document route, magnified around the highlight, "Ganze Seite" toggle; falls back to the text view when the page cannot be rendered - uncertain, missing and unverified values say why in plain language Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…ts a PDF position list (#74) Recordings follow in the next commit (tests red until then). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…; docs (#74) - integration: the review sample has mail + PDF, and its uncertain value opens on the PDF page with a region - E2E: page rendered, highlight visible, plain-language reason; moving to a position by keyboard moves the highlight - architecture map and CHANGELOG The recordings of werk-ost (mail + PDF) are still missing: the Gemini free tier answered 503/429 on two recording runs. Sample tests stay red until then. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Deployment failed for project requestflow with the following error: Learn More: https://vercel.com/doc-edit?upgradeToPro=build-rate-limit |
|
Deployment failed for project requestflow-ai with the following error: Learn More: https://vercel.com/doc-edit?upgradeToPro=build-rate-limit |
This was referenced Sep 28, 2026
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warum
Fixes #74 · Showcase-Review 2026-09-27, P1 Punkt 2 (Epic #19) · Entscheidung pdf.js: ADR-0002
Arbeitsstand
.msg, nicht den Anhang).pdfjs-dist+ ADR-0002;region(Seite + Box) in der Quellansicht; Überlagerung Box → Prozent; Klartext-Gründe; Client-Komponente mit vergrößertem Ausschnitt um die Fundstelle, „Ganze Seite“, Lade- und Fehlerzustand; Musterfallwerk-ost= Mail + synthetische PDF-Positionsliste (mehrere Dateien je Musterfall, Aufzeichnung je Datei); Integrations- und E2E-Erwartungen; Architekturkarte, CHANGELOG.werk-ost.recording.json+werk-ost-positionen.recording.jsonfehlt. Zwei Läufe vonpnpm samples:record werk-ostgegen den Showcase-KI-Dienst scheiterten (16 Versuche): Gemini Free Tier antwortete erst 503 (überlastet), dann 429 (Rate-Limit). Vermutlich Tageskontingent erschöpft – weitere Versuche verbrennen nur Kontingent. Bis dahin sindsamples.test.ts(Unit) und damitverifyrot. Danach: frischer Review./Rotate 90bereits gedreht) – geprüft mit einer gedrehten Test-PDF, siehe ADR-0002.AI_SERVICE_URL=… AI_SERVICE_TOKEN=… pnpm samples:record werk-ost, Ergebnis prüfen (Lieferterminuncertainaus der PDF, Positionen aus der PDF), Tests anpassen, CI.Was ist passiert (Klartext)
Bisher zeigte die Prüfseite die Fundstelle eines Werts nur als Text. Jetzt sieht man bei PDF-Dokumenten die Originalseite selbst, und die Stelle, aus der die KI den Wert gelesen hat, ist farbig umrahmt. Wählt man einen anderen Wert (mit Maus oder Tastatur), springt die Markierung dorthin. Neben unsicheren oder fehlenden Werten steht in einfachen Worten, warum sie geprüft werden müssen, zum Beispiel „Kalenderwoche ohne Datum“. Die PDF wird nur über den bestehenden, geschützten Download geladen – es geht keine Anfrage an fremde Server.
Plan-Pflicht (SYSTEM.md §4)
Impact Manifest
review(source-view.ts:region),samples(Musterfall mit PDF, Aufzeichnung je Datei),app(Prüfseite:pdf-page.tsx,pdf-overlay.ts,reason-label.ts, CSS). Neue Abhängigkeitpdfjs-dist6.3.289 (Apache-2.0) – ADR-0002.SourceViewbekommtregion: PageRegion | null(öffentlicher Typ des Review-Moduls). Das Original kommt weiter nur überGET /api/documents/:id(Tenant-Prüfung, 404 für fremde Dokumente).region(gültige Box, Mail, PDF in.msg, kaputte Boxen),overlayOf(Prozent, Rand, gedrehte Seite, außerhalb),reasonText(Grund, Rückfall je Status, belegt/korrigiert). Integration – bestehender Test der Download-Route (kein fremdes Dokument) bleibt grün; Musterfall-Seed mit PDF. E2E – Musterfall: Seite gerendert, Markierung sichtbar, Wechsel des Werts per Tastatur verschiebt die Markierung, Klartext-Grund.PdfLocator);textlines-Pipeline liefert eine Box je Textzelle (lokal mit der synthetischen Positionsliste geprüft); pdf.js 6 enthält keineval/new Functionund kenntisEvalSupportednicht mehr.new URL(…, import.meta.url)) – Beweis im CI-Build + E2E; Rendering-Fehler fallen auf die Textansicht zurück. Rollback per Revert.Geändert
package.json,pnpm-lock.yaml:pdfjs-dist6.3.289docs/decisions/ADR-0002-pdf-page-view.md(neu),INDEX.mdsrc/features/review/source-view.ts(+ Test),index.ts:region,PageRegionsrc/app/requests/[id]/pdf-page.tsx(neu),pdf-overlay.ts(+ Test, neu),reason-label.ts(+ Test, neu),review-parts.tsx,page.tsx,src/app/review.csssrc/features/samples/samples.ts(+ Test),seed.ts,index.ts,src/samples-record.ts: Musterfall aus mehreren Dateien, Aufzeichnung je Dateisrc/features/samples/data/werk-ost.eml(Positionen jetzt im Anhang),werk-ost-positionen.pdf(neu, synthetisch, unkomprimiert – der Inhalt ist im PDF lesbar)tests/integration/samples.test.ts,tests/e2e/sample-smoke.spec.tsdocs/technical/architecture.md,CHANGELOG.mdNachweis (SYSTEM.md §11)
verify:changed: grün –source-view.test.ts11/11 (die zwei neuen zuerst rot),pdf-overlay.test.ts4/4,reason-label.test.ts3/3;tsc,eslintsauberverify: rot, erwartet – Aufzeichnung fehlt (siehe Arbeitsstand). Der erste CI-Lauf ohne Musterfall-Änderung war grün (36451819606: Build mit pdf.js und Worker-Pfad ok, Integration 144/144, E2E 3/3); der Vercel-Web-Preview baute ebenfalls. Der rote Check „Vercel – requestflow-ai“ ist die volle Container-Registry (infra(ai): Vercel container registry is full – AI service builds fail #98), nicht dieser PR.verify:full/ E2E-Spec:sample-smoke.spec.tserweitert (PDF gerendert, Markierung, Klartext-Grund, Wechsel per Tastatur) – läuft nach der AufzeichnungDoku-Entscheidung (genau eine)
review(gerenderte PDF-Seite, Klartext-Grund),samples(Musterfall mit PDF)[Unreleased](sichtbares Feature oder Verhalten – im selben PR, nie „später"): Added-Eintrag feat(review): original PDF page beside the extracted values with the cited passage highlighted #74Entferntes oder Umbenanntes:
docs/+ README gegrept, Treffer bereinigt: nichts entferntDateigrößen und neue Bausteine (SYSTEM.md §7)
Dateien über 500 Zeilen im Diff (Ausnahmen: generierter Code, Lockfiles, Fixtures, Migrationen, Schemas, Ressourcen, Doku, Konfiguration):
Über 800 Zeilen mit neuer Fachlogik oder über 1000 Zeilen (P1/P2): nicht betroffen
Neue Shared-Komponente, Utility-Datei, Adapter oder fachlicher Service:
source-view.ts,review-parts.tsx,value-label.ts,describe-failure.ts); gefunden: keine Darstellung, Boxen wurden gespeichert, aber nie genutzt (feat(review): review fields beside their source, correct, approve or reject #8); Gründe wurden nirgends angezeigt. Neu nur in der App-Schicht der Prüfseite, keine geteilte Komponente.Subagent-Einsätze
Keine bisher.
Risiken / offene Punkte
🤖 Generated with Claude Code