Review GitHub-hosted HTML as executable, commit-pinned artifacts directly on blob and pull-request pages—including exact base/head comparisons—inside an isolated sandbox. Public previews are credential-free; private previews use the signed-in github.com browser session.
- Review generated HTML reports without cloning a repository.
- Run interactive examples and demos from their exact commit.
- Compare executable HTML before and after a pull request.
- Test responsive layouts at common viewport widths.
- Review private HTML without exposing GitHub credentials to preview code.
- Diagnose missing repository resources and preview failures.
- GitHub-native Code / Preview tab relationship.
- Code remains default and recoverable.
- Preview executes scripts in an opaque sandbox.
- Repository resources resolve against exact owner, repository, ref, and path.
- Full preview opens in a dedicated extension page.
- Code diff — native GitHub source diff.
- Before & after — executable base/head comparison.
- After preview — executable head-only view.
- Open after preview — dedicated commit-pinned page.
- Forks use each side's exact repository and SHA.
- Comparison includes synchronized scrolling, viewport widths, reload, fullscreen, and side-specific partial states.
- Private previews use the signed-in
github.combrowser session. - The extension never asks for, accepts, or stores a personal access token.
- Repository files use GitHub's same-origin
/raw/<ref>/<path>route with the existing browser session; GitHub may redirect to a short-lived signedraw.githubusercontent.comURL that the extension packages and discards. - Session cookies remain browser-managed and are never read by extension code.
- Authenticated resources are packaged before sandbox delivery.
- Preview HTML never contains tokens, session cookies, or signed raw URLs.
All user-facing previews are executable. There is no hidden static mode and no DNR-based CSP relaxation.
sandbox.htmlis the execution boundary.- Sandbox origin is opaque;
allow-same-originis never granted. - Preview code has no extension API or parent DOM access.
- Scripts and external network access are on.
- Full preview may use forms, modals, popups, and downloads.
- UI must describe this behavior accurately and never call executable preview “static” or unqualified “safe.”
- Public and private repository CSS and scripts are fetched at exact refs.
- Private subresources are packaged as data URLs into the sandbox.
- Public subresources are rewritten to commit-pinned CDN URLs (jsDelivr).
- Stylesheets retain activation semantics.
- Relative/root module graphs are packaged recursively.
- Bare module specifiers remain available to document import maps.
- External resources remain external.
- Resolver applies per-resource, aggregate-byte, depth, and concurrency limits.
- Failures remain visible through actionable diagnostics while usable content continues rendering.
Required release proof:
- TypeScript compile.
- Unit, GitHub API, resolver, privacy, performance, and manifest contracts.
- Hermetic deterministic extension E2E.
- Live GitHub compatibility smoke.
- Stable and debug ZIP construction.
- Installation and smoke test from exact ZIP artifacts.
- Tag, package, and manifest version parity.
- Current Playwright Chromium on supported CI operating systems.
- Retained traces/screenshots on browser failures.
- Exact commit integrity over branch-latest convenience.
- Source view always recoverable.
- Executable behavior disclosed plainly.
- Failures actionable, never represented only as “Partial.”
- Private credentials stay outside executable content.
- GitHub-native interaction before separate application chrome.
- Behavioral tests over source-text assertions.