Skip to content

Commit 670605a

Browse files
binary-knightclaude
andcommitted
Overrule logo on the main and pairing pages; OVERRULE_AGENTSEC in the install help
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 5b72ad9 commit 670605a

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

‎public/index.html‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="theme-color" content="#f4f5f7"><title>Overrule</title><link rel="icon" href="/favicon.svg"><link rel="stylesheet" href="/styles.css"><script src="/theme.js"></script><script type="module" src="/app.js"></script></head>
44
<body>
55
<aside class="sidebar">
6-
<a class="brand" href="/"><img src="/favicon.svg" alt="" width="28" height="28"><span>Model <span class="brand-light">Mesh</span><small>Your AI council</small></span></a>
6+
<a class="brand" href="/"><img src="/favicon.svg" alt="" width="28" height="28"><span>Overrule<small>Your AI council</small></span></a>
77
<button id="new-discussion" class="button primary wide"><span>+</span> New meeting</button>
88
<nav aria-label="Main navigation"><button class="nav-item active" id="workspace-nav"><span>◈</span> Meetings</button><button class="nav-item" id="connections-nav"><span>⌘</span> Connections <span id="connection-count" class="count">2</span></button><button class="nav-item" id="security-nav"><span>⛨</span> Security</button></nav>
99
<div class="history-heading">Recent meetings</div><div id="history" class="history"></div>
@@ -52,7 +52,7 @@
5252
<div class="workspace-row"><label>Blast-radius budget (agentsec score from 0 to 100; blank for none)<input id="workspace-budget" type="number" min="0" max="100" placeholder="No budget" autocomplete="off"></label><button type="button" id="budget-save" class="button secondary">Save</button></div>
5353
<div id="agentsec-help" class="install-help hidden"><p>agentsec-pack is not installed on the host, so levels get only the built-in canary and no blast-radius score.</p><div class="install-row"><button type="button" id="agentsec-install" class="button primary">Install agentsec-pack</button><span id="agentsec-install-note">Unpacks the bundle shipped with this app into <code>~/agentsec-pack</code> on the host and creates its Python environment. Takes about a minute.</span></div><pre id="agentsec-install-log" class="install-log hidden"></pre><p>Or do it by hand on the host, then restart the app:</p><pre>git clone https://github.com/binary-knight/agentsec-pack ~/agentsec-pack
5454
cd ~/agentsec-pack
55-
python3 -m venv .venv &amp;&amp; .venv/bin/pip install -e .</pre><p>The app looks for <code>~/agentsec-pack/.venv/bin/agentsec</code> or <code>~/.local/bin/agentsec</code>; set <code>MESH_AGENTSEC</code> to the binary’s path if it lives elsewhere.</p></div>
55+
python3 -m venv .venv &amp;&amp; .venv/bin/pip install -e .</pre><p>The app looks for <code>~/agentsec-pack/.venv/bin/agentsec</code> or <code>~/.local/bin/agentsec</code>; set <code>OVERRULE_AGENTSEC</code> to the binary’s path if it lives elsewhere.</p></div>
5656
<div id="workspace-acks" class="hidden"><label id="ack-secrets-label" class="check-label hidden"><input id="ack-secrets" type="checkbox">Files that look like secrets are in this tree. I accept that anything a member reads can reach its provider.</label><label id="ack-dirty-label" class="check-label hidden"><input id="ack-dirty" type="checkbox">Start the candidate branch from HEAD without my uncommitted changes.</label></div>
5757
<p class="workspace-risk">This runs code chosen by models with whatever access you grant. Text in the repository and messages from other members can steer a member into commands you never asked for. Anything in the tree can reach the model providers, so point it at a scratch clone and never at a tree holding secrets. Workspace-write is an operating-system boundary only where the app proves one, and the meeting shows which members sit inside it. Git rollback and the activity log limit damage; they do not guarantee safety.</p>
5858
</div>
@@ -66,7 +66,7 @@
6666
<main id="security" class="hidden"><div class="page-heading"><div class="eyebrow"></div><h1>Security</h1><p>Measure the boundary each council member actually runs inside, then measure and harden any sandbox you build. Uses agentsec-pack on the host.</p></div>
6767
<div id="security-off" class="install-help hidden"><p>agentsec-pack is not installed on the host, so nothing here can be measured yet.</p><div class="install-row"><button type="button" id="security-install" class="button primary">Install agentsec-pack</button><span id="security-install-note">Unpacks the bundle shipped with this app into <code>~/agentsec-pack</code> on the host and creates its Python environment. Takes about a minute.</span></div><pre id="security-install-log" class="install-log hidden"></pre><p>Or do it by hand on the host, then restart the app:</p><pre>git clone https://github.com/binary-knight/agentsec-pack ~/agentsec-pack
6868
cd ~/agentsec-pack
69-
python3 -m venv .venv &amp;&amp; .venv/bin/pip install -e .</pre><p>The app looks for <code>~/agentsec-pack/.venv/bin/agentsec</code> or <code>~/.local/bin/agentsec</code>; set <code>MESH_AGENTSEC</code> to the binary’s path if it lives elsewhere.</p></div>
69+
python3 -m venv .venv &amp;&amp; .venv/bin/pip install -e .</pre><p>The app looks for <code>~/agentsec-pack/.venv/bin/agentsec</code> or <code>~/.local/bin/agentsec</code>; set <code>OVERRULE_AGENTSEC</code> to the binary’s path if it lives elsewhere.</p></div>
7070
<section class="card security-card"><div class="section-heading"><h2>Member boundaries</h2><span id="security-status" class="chip">Idle</span></div><p class="field-hint">One row per member per way this app launches it. Measure runs agentsec’s probe through the exact launcher a meeting would use. Claude Code rows ask the member itself to run the probe, which spends one call.</p><div id="member-boundaries" class="boundaries"></div></section>
7171
<section class="card security-card"><div class="section-heading"><h2>Sandbox lab</h2><a id="security-report" class="text-button" href="/api/security/report.html" target="_blank" rel="noreferrer">Open HTML report</a></div><p class="field-hint">Measure, harden, measure again. Pick a named configuration; container presets also take an image. Free-form launchers are not accepted from a browser, on purpose.</p><div class="workspace-row"><label>Configuration<select id="lab-preset"></select></label><label id="lab-image-label">Container image<input id="lab-image" placeholder="python:3.12-slim" autocomplete="off"></label><button type="button" id="lab-run" class="button primary">Measure</button></div><p id="lab-rationale" class="field-hint"></p><div id="security-results" class="results"></div></section>
7272
</main>

‎public/login.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Pair your device — Overrule</title><link rel="icon" href="/favicon.svg"><link rel="stylesheet" href="/styles.css"><script src="/theme.js"></script><script src="/login.js" defer></script></head><body class="login-page"><main class="login-shell"><a class="brand" href="/"><img src="/favicon.svg" alt="" width="35" height="35"><span>model<span class="brand-light">mesh</span><small>YOUR AI COUNCIL</small></span></a><div class="card login-card"><div class="eyebrow">YOUR PRIVATE WORKSPACE</div><h1>Bring your device<br>into the conversation.</h1><p>Enter the pairing code from <strong>LAN access</strong> in the app on the host machine.</p><form id="pair-form"><label for="pair-code">Pairing code</label><input id="pair-code" type="password" autocomplete="current-password" required autofocus placeholder="Paste your pairing code"><p id="pair-error" role="alert" class="form-error"></p><button class="button primary wide" type="submit">Connect to workspace <span>→</span></button></form><small>This device stays paired for up to 24 hours, or until the server restarts.</small></div></main></body></html>
1+
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Pair your device — Overrule</title><link rel="icon" href="/favicon.svg"><link rel="stylesheet" href="/styles.css"><script src="/theme.js"></script><script src="/login.js" defer></script></head><body class="login-page"><main class="login-shell"><a class="brand" href="/"><img src="/favicon.svg" alt="" width="35" height="35"><span>Overrule<small>Your AI council</small></span></a><div class="card login-card"><div class="eyebrow">YOUR PRIVATE WORKSPACE</div><h1>Bring your device<br>into the conversation.</h1><p>Enter the pairing code from <strong>LAN access</strong> in the app on the host machine.</p><form id="pair-form"><label for="pair-code">Pairing code</label><input id="pair-code" type="password" autocomplete="current-password" required autofocus placeholder="Paste your pairing code"><p id="pair-error" role="alert" class="form-error"></p><button class="button primary wide" type="submit">Connect to workspace <span>→</span></button></form><small>This device stays paired for up to 24 hours, or until the server restarts.</small></div></main></body></html>

0 commit comments

Comments
 (0)