feat(email): Slice 3 wire admission so only document_image continues - #1398
feat(email): Slice 3 wire admission so only document_image continues#1398seonghobae wants to merge 9 commits into
Conversation
Add four synthetic multipart/related .eml fixtures and failing acceptance tests for CID resolution, unresolved CID fail-closed, 1x1 tracking-pixel exclusion, and repeated base64 hash provenance. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Resolve cid: against same-message multipart/related parts, fail closed on unresolved CID, and classify tracking_pixel, unsupported_media, and document_image from local header and dimension evidence only. No remote fetch, OCR, or VLM. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Add APA 7 RFC and email-tracking citations, state the no-fetch admission boundary, and record the anti-pattern so 1x1 beacons are not treated as document evidence. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Bring live develop@a81ac4f7 into #1397 so predecessor-head evidence does not transfer. Keep the admission contract unchanged. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Prove the local parse/resolution path still treats a 1x1 CID tracker or unresolved CID as usable document input until admission is called first. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Call admit_email_inline_media() first on the local parse path and quarantine tracking_pixel, unsupported_media, and unresolved_cid_reference so they cannot continue as OCR or document evidence. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Document that later parse/resolution must send only document_image continuations downstream and must not send tracker or unresolved CID bytes to a model. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
Warning Review limit reached
Next review available in: 17 minutes Limit details: You’ve used all 1 included review currently available under your plan. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (8)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
PR governance metadata gate is not ready for
|
|
@coderabbitai review |
|
Normal merge of cursor/email-media-admission-slice3-c9de@37b4af56 into the wiring branch. Predecessor-head evidence does not transfer. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
@coderabbitai review Please review the unchanged exact current head |
|
|
40aef47 to
5a80583
Compare
Description
#1350 Slice 3 follow-on stacked on Draft #1397. Admission existed on the parent, but nothing called it, so a 1×1 CID tracker or unresolved CID could still reach the local parse/resolution path as usable document input.
This draft wires
admit_email_inline_media()throughresolve_email_inline_media()and the existingparse_eml/parse_eml_bytespath. Onlydocument_imageadmissions continue.tracking_pixel,unsupported_media, andunresolved_cid_referenceare quarantined with those stable error_codes and are dropped from filename-bearing image attachments. No OCR, VLM, NewsDOM, egress, or new tables. The #1376EmailMediaArtifactpixel contract is not copied.Exact previous head:
db9688768cb682edbc0195913e8ae9b0e1551dfb(stale parent51c003d701cce4eb0779ccbba96c499fb3e5379d)Exact current head:
1af546dbb01964e9a620ed341ae0dd3dab9439fdExact parent SHA (live #1397 head):
37b4af566d749028f7dc99545fff1db517d61d1aLive develop SHA:
dd8d15191338b841f9e6f3a06507c6a5643b95d0Predecessor evidence does not transfer. The previous wiring-head tests, coverage, and review evidence, and #1397 predecessor-head evidence, are not this head's proof. Re-run the focused wiring tests on this exact head.
Refs #1350
Customer next action
Send only
document_imagecontinuations downstream. Do not send a tracker, unsupported part, or unresolved CID to a model. Do not merge this draft until it is no longer Draft and a qualifying independent APPROVE exists on the unchanged head. Keep #1397 Draft as well.Type of change
Exact-head verification
Retarget: normal merge
1af546dbof live #1397 (cursor/email-media-admission-slice3-c9de@37b4af56, which already containsdevelop@dd8d1519) intocursor/email-media-admission-wiring-cd1a. Not a squash. Not a force-push of develop. #1399 and #1400 were not retargeted.Focused product tests on this exact head:
Local count on
1af546db: 61 passed. Predecessor-head counts do not transfer.Checklist:
Merge boundary
This PR must remain Draft. Merge is prohibited while Draft and prohibited without a qualifying independent non-author APPROVE on the unchanged head. Do not self-approve, mark Ready, squash-merge over a draft, merge #1397, or treat predecessor/stacked/#1376 evidence as this head's proof.