From be171b581799671c760940f30a7ea5cfe129a325 Mon Sep 17 00:00:00 2001 From: yunrongy424-oss Date: Thu, 28 May 2026 21:20:16 +0800 Subject: [PATCH] feat(bounty): Add private comment export guard --- .../README.md | 22 +++ .../demo.js | 127 +++++++++++++++ .../index.js | 148 ++++++++++++++++++ .../make-demo-video.py | 70 +++++++++ .../reports/demo.mp4 | Bin 0 -> 98661 bytes .../reports/readiness-report.json | 74 +++++++++ .../reports/readiness-report.md | 38 +++++ .../reports/readiness-summary.svg | 14 ++ .../test.js | 105 +++++++++++++ 9 files changed, 598 insertions(+) create mode 100644 collaborative-private-comment-export-guard/README.md create mode 100644 collaborative-private-comment-export-guard/demo.js create mode 100644 collaborative-private-comment-export-guard/index.js create mode 100644 collaborative-private-comment-export-guard/make-demo-video.py create mode 100644 collaborative-private-comment-export-guard/reports/demo.mp4 create mode 100644 collaborative-private-comment-export-guard/reports/readiness-report.json create mode 100644 collaborative-private-comment-export-guard/reports/readiness-report.md create mode 100644 collaborative-private-comment-export-guard/reports/readiness-summary.svg create mode 100644 collaborative-private-comment-export-guard/test.js diff --git a/collaborative-private-comment-export-guard/README.md b/collaborative-private-comment-export-guard/README.md new file mode 100644 index 00000000..851119c9 --- /dev/null +++ b/collaborative-private-comment-export-guard/README.md @@ -0,0 +1,22 @@ +# Collaborative Private Comment Export Guard + +This standalone SCIBASE issue #12 slice reviews collaborative editor export +packets before public PDF, HTML, or LaTeX release. + +It checks: + +- Private and reviewer-only comments do not leak into public exports. +- Public export profiles require unresolved comment threads to be closed. +- Reviewer mentions belong to the invited reviewer roster. +- Sensitive inline annotations have redaction evidence before release. +- Reviewer packets redact emails and phone numbers in thread text. + +## Run + +```bash +node collaborative-private-comment-export-guard/test.js +node collaborative-private-comment-export-guard/demo.js +python collaborative-private-comment-export-guard/make-demo-video.py +``` + +Generated artifacts are written under `reports/` for review. diff --git a/collaborative-private-comment-export-guard/demo.js b/collaborative-private-comment-export-guard/demo.js new file mode 100644 index 00000000..27b973a1 --- /dev/null +++ b/collaborative-private-comment-export-guard/demo.js @@ -0,0 +1,127 @@ +const fs = require('fs'); +const path = require('path'); + +const { + buildExportPacket, + reviewExportCommentPrivacy +} = require('./index'); + +const ROOT = __dirname; +const REPORTS = path.join(ROOT, 'reports'); +fs.mkdirSync(REPORTS, { recursive: true }); + +const workspace = { + id: 'collab-editor-demo-12', + title: 'Quantum Materials Draft', + invitedReviewerIds: ['rv-alpha', 'rv-beta'], + exportProfiles: { + publicPdf: { allowedVisibilities: ['public'], requireResolvedThreads: true }, + reviewerPackage: { allowedVisibilities: ['public', 'reviewer-only'], requireResolvedThreads: false } + }, + documents: [ + { + id: 'public-ready', + exportProfile: 'publicPdf', + threads: [ + { + id: 'th-ready', + visibility: 'public', + resolved: true, + mentions: ['rv-alpha'], + text: 'Clarify method wording before public release.' + } + ], + inlineAnnotations: [{ kind: 'public-note', text: 'Visible caption note.' }], + redactionEvidence: ['public-comment-scan'] + }, + { + id: 'public-hold', + exportProfile: 'publicPdf', + threads: [ + { + id: 'th-private', + visibility: 'private', + resolved: false, + mentions: ['rv-gamma'], + text: 'Do not publish reviewer phone +1 555 010 3311 or delta@private.example' + } + ], + inlineAnnotations: [{ kind: 'sensitive-inline', text: 'Embargo note.' }], + redactionEvidence: [] + }, + { + id: 'reviewer-ready', + exportProfile: 'reviewerPackage', + threads: [ + { + id: 'th-reviewer', + visibility: 'reviewer-only', + resolved: false, + mentions: ['rv-alpha'], + text: 'Reviewer package can retain this note.' + } + ], + inlineAnnotations: [], + redactionEvidence: ['reviewer-package-scan'] + } + ] +}; + +function markdownReport(packet) { + const lines = [ + '# Collaborative Private Comment Export Guard', + '', + `Workspace: ${packet.title}`, + `Digest: ${packet.digest}`, + '', + '## Summary', + '', + `- Ready exports: ${packet.summary.ready}`, + `- Held exports: ${packet.summary.hold}`, + '', + '## Documents' + ]; + + for (const document of packet.documents) { + lines.push('', `### ${document.documentId}`, ''); + lines.push(`- Export profile: ${document.exportProfile}`); + lines.push(`- Decision: ${document.decision}`); + lines.push(`- Threads: ${document.metrics.threadCount}`); + lines.push(`- Private threads: ${document.metrics.privateThreadCount}`); + lines.push(`- Holds: ${document.holds.join(', ') || 'none'}`); + lines.push(`- Redacted thread count: ${document.redactedThreadText.length}`); + } + + return `${lines.join('\n')}\n`; +} + +function svgSummary(packet) { + const rows = packet.documents + .map((document, index) => { + const y = 168 + index * 68; + const color = document.decision === 'ready' ? '#22c55e' : '#ef4444'; + return [ + ``, + `${document.documentId}: ${document.decision}`, + `holds ${document.holds.length} | private ${document.metrics.privateThreadCount}` + ].join('\n'); + }) + .join('\n'); + + return ` + + Private Comment Export Guard + Ready ${packet.summary.ready} | Hold ${packet.summary.hold} + ${rows} + +`; +} + +const review = reviewExportCommentPrivacy(workspace); +const packet = buildExportPacket(workspace, review); + +fs.writeFileSync(path.join(REPORTS, 'readiness-report.json'), `${JSON.stringify(packet, null, 2)}\n`); +fs.writeFileSync(path.join(REPORTS, 'readiness-report.md'), markdownReport(packet)); +fs.writeFileSync(path.join(REPORTS, 'readiness-summary.svg'), svgSummary(packet)); + +console.log(JSON.stringify(packet.summary)); diff --git a/collaborative-private-comment-export-guard/index.js b/collaborative-private-comment-export-guard/index.js new file mode 100644 index 00000000..52d5d2ef --- /dev/null +++ b/collaborative-private-comment-export-guard/index.js @@ -0,0 +1,148 @@ +const crypto = require('crypto'); + +function stableStringify(value) { + if (Array.isArray(value)) { + return `[${value.map(stableStringify).join(',')}]`; + } + + if (value && typeof value === 'object') { + return `{${Object.keys(value) + .sort() + .map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`) + .join(',')}}`; + } + + return JSON.stringify(value); +} + +function digest(value) { + return `sha256:${crypto.createHash('sha256').update(stableStringify(value)).digest('hex')}`; +} + +function redactText(value) { + return String(value || '') + .replace(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/gi, '[redacted-email]') + .replace(/\b(?:\+?\d[\d\s().-]{6,}\d)\b/g, '[redacted-phone]'); +} + +function exportProfile(workspace, document) { + return workspace.exportProfiles[document.exportProfile] || { + allowedVisibilities: ['public'], + requireResolvedThreads: true + }; +} + +function reviewThread(thread, profile, invitedReviewerIds) { + const holds = []; + const allowed = new Set(profile.allowedVisibilities || ['public']); + const invited = new Set(invitedReviewerIds || []); + + if (!allowed.has(thread.visibility)) { + holds.push(`visibility-not-allowed:${thread.id}:${thread.visibility}`); + } + + if (profile.requireResolvedThreads && thread.resolved !== true) { + holds.push(`unresolved-thread:${thread.id}`); + } + + for (const mention of thread.mentions || []) { + if (!invited.has(mention)) { + holds.push(`uninvited-mention:${thread.id}:${mention}`); + } + } + + return holds; +} + +function reviewDocument(workspace, document) { + const profile = exportProfile(workspace, document); + const holds = []; + + for (const thread of document.threads || []) { + holds.push(...reviewThread(thread, profile, workspace.invitedReviewerIds)); + } + + if ((document.inlineAnnotations || []).some((annotation) => annotation.kind === 'sensitive-inline')) { + holds.push('sensitive-inline-annotation'); + } + + if (holds.length > 0 && (document.redactionEvidence || []).length === 0) { + holds.push('missing-redaction-evidence'); + } + + const decision = holds.length === 0 ? 'ready' : 'hold'; + + return { + documentId: document.id, + exportProfile: document.exportProfile, + decision, + holds, + metrics: { + threadCount: (document.threads || []).length, + privateThreadCount: (document.threads || []).filter((thread) => thread.visibility !== 'public').length, + unresolvedThreadCount: (document.threads || []).filter((thread) => thread.resolved !== true).length, + inlineAnnotationCount: (document.inlineAnnotations || []).length + }, + actions: { + releaseExport: decision === 'ready', + redactPrivateThreads: holds.some((hold) => hold.startsWith('visibility-not-allowed')), + requireCommentResolution: holds.some((hold) => hold.startsWith('unresolved-thread')), + notifyWorkspaceAdmins: holds.length > 0 + } + }; +} + +function reviewExportCommentPrivacy(workspace) { + const documentReviews = (workspace.documents || []).map((document) => + reviewDocument(workspace, document) + ); + const readyCount = documentReviews.filter((review) => review.decision === 'ready').length; + const holdCount = documentReviews.length - readyCount; + const review = { + workspaceId: workspace.id, + title: workspace.title, + readyCount, + holdCount, + documentReviews + }; + + return { + ...review, + digest: digest(review) + }; +} + +function buildExportPacket(workspace, review) { + return { + workspaceId: workspace.id, + title: workspace.title, + summary: { + ready: review.readyCount, + hold: review.holdCount + }, + documents: review.documentReviews.map((documentReview) => { + const document = (workspace.documents || []).find( + (candidate) => candidate.id === documentReview.documentId + ); + + return { + documentId: documentReview.documentId, + exportProfile: documentReview.exportProfile, + decision: documentReview.decision, + holds: documentReview.holds, + metrics: documentReview.metrics, + redactedThreadText: (document && document.threads || []).map((thread) => ({ + threadId: thread.id, + visibility: thread.visibility, + text: redactText(thread.text) + })) + }; + }), + digest: review.digest + }; +} + +module.exports = { + buildExportPacket, + reviewExportCommentPrivacy +}; diff --git a/collaborative-private-comment-export-guard/make-demo-video.py b/collaborative-private-comment-export-guard/make-demo-video.py new file mode 100644 index 00000000..6bc3e84c --- /dev/null +++ b/collaborative-private-comment-export-guard/make-demo-video.py @@ -0,0 +1,70 @@ +from pathlib import Path + +from PIL import Image, ImageDraw, ImageFont + + +ROOT = Path(__file__).resolve().parent +REPORTS = ROOT / "reports" +REPORTS.mkdir(exist_ok=True) +OUTPUT = REPORTS / "demo.mp4" + + +def load_font(size): + for candidate in [ + "C:/Windows/Fonts/arial.ttf", + "C:/Windows/Fonts/segoeui.ttf", + "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", + ]: + path = Path(candidate) + if path.exists(): + return ImageFont.truetype(str(path), size) + return ImageFont.load_default() + + +def frame(progress): + image = Image.new("RGB", (1280, 720), "#111827") + draw = ImageDraw.Draw(image) + draw.rounded_rectangle((58, 70, 1222, 650), radius=18, fill="#1f2937", outline="#f472b6", width=4) + + title = load_font(42) + heading = load_font(28) + body = load_font(24) + small = load_font(18) + + draw.text((100, 125), "Collaborative Private Comment Export Guard", fill="white", font=title) + lines = [ + "Checks public exports for private and reviewer-only comments", + "Blocks unresolved threads when public release requires resolution", + "Flags mentions of reviewers outside the invited roster", + "Holds sensitive inline annotations without redaction evidence", + "Redacts emails and phone numbers from reviewer packets", + "Emits deterministic JSON, Markdown, SVG, and demo evidence", + ] + + visible = min(len(lines), 1 + int(progress * len(lines))) + for index, line in enumerate(lines[:visible]): + y = 205 + index * 54 + draw.text((100, y), line, fill="#fce7f3", font=heading if index < 3 else body) + + draw.rounded_rectangle((100, 590, 1080, 615), radius=10, fill="#334155") + draw.rounded_rectangle((100, 590, 100 + int(980 * progress), 615), radius=10, fill="#f472b6") + draw.text((100, 635), "SCIBASE issue #12 collaborative editor - synthetic demo", fill="#fbcfe8", font=small) + return image + + +def main(): + try: + import imageio.v3 as iio + except Exception as exc: # pragma: no cover - helper path for local artifact generation + raise SystemExit( + "imageio and imageio-ffmpeg are required to regenerate reports/demo.mp4. " + "The committed demo.mp4 is already generated for review." + ) from exc + + frames = [frame(index / 59) for index in range(60)] + iio.imwrite(OUTPUT, frames, fps=15, codec="libx264", quality=8, macro_block_size=16) + print(f"Wrote {OUTPUT.relative_to(ROOT)}") + + +if __name__ == "__main__": + main() diff --git a/collaborative-private-comment-export-guard/reports/demo.mp4 b/collaborative-private-comment-export-guard/reports/demo.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..74636927bc0fc06f379f0e48a4ce7e63812784f7 GIT binary patch literal 98661 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 + + Private Comment Export Guard + Ready 2 | Hold 1 + +public-ready: ready +holds 0 | private 0 + +public-hold: hold +holds 5 | private 1 + +reviewer-ready: ready +holds 0 | private 1 + diff --git a/collaborative-private-comment-export-guard/test.js b/collaborative-private-comment-export-guard/test.js new file mode 100644 index 00000000..94e0ed0f --- /dev/null +++ b/collaborative-private-comment-export-guard/test.js @@ -0,0 +1,105 @@ +const assert = require('assert'); + +const { + buildExportPacket, + reviewExportCommentPrivacy +} = require('./index'); + +const workspace = { + id: 'collab-editor-12', + title: 'Quantum Materials Draft', + invitedReviewerIds: ['rv-alpha', 'rv-beta'], + exportProfiles: { + publicPdf: { allowedVisibilities: ['public'], requireResolvedThreads: true }, + reviewerPackage: { allowedVisibilities: ['public', 'reviewer-only'], requireResolvedThreads: false } + }, + documents: [ + { + id: 'doc-ready', + exportProfile: 'publicPdf', + threads: [ + { + id: 'th-001', + visibility: 'public', + resolved: true, + mentions: ['rv-alpha'], + text: 'Clarify method wording before public release.' + } + ], + inlineAnnotations: [{ kind: 'public-note', text: 'Visible caption note.' }], + redactionEvidence: ['public-comment-scan'] + }, + { + id: 'doc-private-leak', + exportProfile: 'publicPdf', + threads: [ + { + id: 'th-002', + visibility: 'private', + resolved: false, + mentions: ['rv-gamma'], + text: 'Do not publish reviewer phone +1 555 010 3311 or delta@private.example' + }, + { + id: 'th-003', + visibility: 'reviewer-only', + resolved: true, + mentions: ['rv-beta'], + text: 'Internal reviewer-only concern.' + } + ], + inlineAnnotations: [{ kind: 'sensitive-inline', text: 'Draft contains embargo note.' }], + redactionEvidence: [] + }, + { + id: 'doc-reviewer-package', + exportProfile: 'reviewerPackage', + threads: [ + { + id: 'th-004', + visibility: 'reviewer-only', + resolved: false, + mentions: ['rv-alpha'], + text: 'Reviewer package can retain this note.' + } + ], + inlineAnnotations: [], + redactionEvidence: ['reviewer-package-scan'] + } + ] +}; + +const result = reviewExportCommentPrivacy(workspace); + +assert.strictEqual(result.readyCount, 2); +assert.strictEqual(result.holdCount, 1); +assert.ok(result.digest.startsWith('sha256:')); + +const ready = result.documentReviews.find((review) => review.documentId === 'doc-ready'); +assert.strictEqual(ready.decision, 'ready'); +assert.deepStrictEqual(ready.holds, []); +assert.strictEqual(ready.actions.releaseExport, true); + +const blocked = result.documentReviews.find((review) => review.documentId === 'doc-private-leak'); +assert.strictEqual(blocked.decision, 'hold'); +assert.ok(blocked.holds.includes('visibility-not-allowed:th-002:private')); +assert.ok(blocked.holds.includes('visibility-not-allowed:th-003:reviewer-only')); +assert.ok(blocked.holds.includes('unresolved-thread:th-002')); +assert.ok(blocked.holds.includes('uninvited-mention:th-002:rv-gamma')); +assert.ok(blocked.holds.includes('sensitive-inline-annotation')); +assert.ok(blocked.holds.includes('missing-redaction-evidence')); +assert.strictEqual(blocked.actions.releaseExport, false); + +const reviewerPackage = result.documentReviews.find( + (review) => review.documentId === 'doc-reviewer-package' +); +assert.strictEqual(reviewerPackage.decision, 'ready'); +assert.strictEqual(reviewerPackage.actions.releaseExport, true); + +const packet = buildExportPacket(workspace, result); +const serialized = JSON.stringify(packet); +assert.ok(!serialized.includes('delta@private.example')); +assert.ok(!serialized.includes('+1 555 010 3311')); +assert.deepStrictEqual(packet.summary, { ready: 2, hold: 1 }); + +console.log('collaborative-private-comment-export-guard tests passed');