vjuu 0.3.2

Fast review window for AI-agent handoffs: markdown, diffs and code with inline comments.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>vjuu</title>
<!-- Fetch fonts alongside the scripts; otherwise first paint waits for them after layout. -->
<link rel="preload" href="vendor/inter.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="vendor/jetbrains-mono.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="vendor/diff2html.min.css">
<link rel="stylesheet" href="style.css">
<!-- After style.css, so a theme's colours win; compiled by vjuu from the themes folder. -->
<link rel="stylesheet" href="theme.css" id="theme-css">
<style id="theme-preview"></style>
</head>
<body>
<!-- The window is frameless: this is its title bar. Empty space drags the window. -->
<header id="titlebar">
  <span id="brand">vjuu</span>
  <span id="session"></span>
  <span id="context"></span>
  <span id="name"></span>
  <button id="view" hidden title="Toggle unified / side-by-side (v)">Side-by-side</button>
  <button id="settings-open" title="Settings">&#x2699;</button>
  <div id="window-controls">
    <button data-cmd="minimize" title="Minimize">&#xE921;</button>
    <button data-cmd="maximize" id="max" title="Maximize">&#xE922;</button>
    <button data-cmd="close" id="close" title="Close">&#xE8BB;</button>
  </div>
</header>
<nav id="files" hidden title="Files (f to hide)"></nav>
<div id="scroll">
  <main id="content"></main>
  <section id="overall-box">
    <label for="overall">Overall</label>
    <textarea id="overall" rows="3" placeholder="General comment (optional)"></textarea>
  </section>
  <button id="sel-comment" hidden title="Comment on the selected lines (c)">Comment</button>
</div>
<footer id="statusbar">
  <span id="count"></span>
  <span id="hint">&uarr;&darr; move &middot; Enter or click to comment &middot; &larr;&rarr; files &middot; Ctrl+Enter done</span>
  <button id="done" title="Ctrl+Enter">Done</button>
</footer>
<dialog id="settings">
  <h2>Settings</h2>
  <label class="theme"><b>Theme</b> <select id="theme"></select></label>
  <div id="auto-themes">
    <label class="theme">When the system is light <select id="theme-light"></select></label>
    <label class="theme">When the system is dark <select id="theme-dark"></select></label>
  </div>
  <p class="cli"><button id="themes-open">Open themes folder</button> Copy a theme there to make your own.</p>
  <p>What vjuu opens for Claude Code:</p>
  <label><input type="checkbox" name="plan"><b>Plan review</b>
    <span>Open a finished plan before you approve it; comments send it back to Claude.</span></label>
  <label><input type="checkbox" name="ask"><b>Questions</b>
    <span>Answer Claude's questions here instead of the terminal picker.</span></label>
  <label><input type="checkbox" name="turn"><b>Turn review</b>
    <span>After each turn with edits, open the diff of what Claude changed.</span></label>
  <label><input type="checkbox" name="permission"><b>Permission prompts</b>
    <span>Allow or deny what Claude wants to run here, with the command or diff in full.</span></label>
  <label><input type="checkbox" name="focus"><b>Bring new windows to the front</b>
    <span>Off: a new review opens behind the window you are in, with a notification.</span></label>
  <label><input type="checkbox" name="tray"><b>Tray icon and notifications</b>
    <span>Show what is waiting in the tray, and notify when a window opens behind others.</span></label>
  <p class="cli">Also <code>vjuu config</code> in a terminal.</p>
  <button id="settings-apply" title="Esc cancels">Apply</button>
</dialog>
<!-- Resize handles: the webview covers the window, so its edges have to be handled here. -->
<div class="edge" data-dir="n"></div><div class="edge" data-dir="s"></div>
<div class="edge" data-dir="e"></div><div class="edge" data-dir="w"></div>
<div class="edge" data-dir="ne"></div><div class="edge" data-dir="nw"></div>
<div class="edge" data-dir="se"></div><div class="edge" data-dir="sw"></div>
<script src="app.js"></script>
</body>
</html>