Conversation
New standalone product under packages/webnotary — an MV3 extension that captures pages as self-verifying evidence bundles for legal/compliance use: - Capture pipeline (service worker): page metadata via injected collector, atomic full-page screenshot (DevTools protocol, viewport fallback), MHTML archive, SHA-256 evidence manifest, parallel RFC 3161 timestamp requests, chain-of-custody PDF, store-only ZIP bundle saved via offscreen document. - From-scratch libraries (vanilla ES modules, zero deps, shared with Node): DER codec, RFC 3161 client + CMS token verifier (RSA v1.5/PSS, ECDSA, ESS certID, nonce/imprint checks), X.509 parser, ZIP writer/reader, minimal PDF 1.4 writer, report/VERIFY.txt builders. - UI: popup with live step progress + capture history, options page (operator identity, TSA selection incl. custom endpoint via optional host permission), drag-and-drop offline bundle verifier page. - Icons generated programmatically (scripts/make-icons.mjs, pure Node). - Tests: 24 passing, including a full round trip against a local OpenSSL TSA (RSA + ECDSA), tamper/nonce/imprint negatives, openssl ts -verify interop, unzip/zipfile ZIP validation, and PDF xref structure checks. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ADq3sRhdQmdf7uoUkD8qi1
- scripts/build-zip.mjs: reproducible Chrome Web Store upload package (release/webnotary-0.1.0.zip, manifest at ZIP root, prints SHA-256) - test/smoke-chromium.mjs: end-to-end test in headless Chromium — loads a test build, captures a local page, timestamps against a local OpenSSL TSA, downloads the bundle, verifies digests + RFC 3161 token with the extension's own verifier and openssl ts -verify (run: ALL OK) - store-assets/: 3 listing screenshots (1280x800, real UI incl. verified bundle), promo tile 440x280, marquee 1400x560 - docs/sample-bundle.zip: real bundle produced by the smoke run - README: publishing instructions Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ADq3sRhdQmdf7uoUkD8qi1
WebNotary is a standalone product (legal-evidence capture) with no code or release cycle shared with the VEIL packages, and its Chrome Web Store listing needs public docs URLs. It now lives at https://github.com/far-reach/webnotary with its full history preserved via subtree split. Removes packages/webnotary and its workspace entry here, and adds CLAUDE.md recording the one-product-per-repo convention. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ADq3sRhdQmdf7uoUkD8qi1
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.
WebNotary was developed on this branch and has now been split out to its own repository: https://github.com/far-reach/webnotary (full history preserved via
git subtree split).Why
WebNotary is a legal-evidence capture product that shares no code, tooling, or release cycle with the VEIL packages. Keeping it here caused three concrete problems:
What this PR now contains
packages/webnotary/and its workspace entry / npm script from the monorepo.README.md, linking to the new repository.CLAUDE.mdrecording the one product per repo convention, so future work doesn't recreate the problem.The net effect on the monorepo is a small subtraction; the extension itself lives on unchanged in its new home, where CI runs its test suite on every push.
🤖 Generated with Claude Code
https://claude.ai/code/session_01ADq3sRhdQmdf7uoUkD8qi1