Changes, bugfixes and updates to the matrix. Added 1.2v batteries

This commit is contained in:
2026-04-13 12:45:50 +02:00
parent beef23d48e
commit 7b140d4079
10 changed files with 179 additions and 62 deletions

View File

@@ -30,11 +30,6 @@
<label>Session ID</label>
<input type="text" id="filter-session" class="form-input" placeholder="prefix…">
</div>
<div class="form-group" style="margin:0;display:flex;align-items:flex-end;gap:8px">
<label style="display:flex;align-items:center;gap:6px;cursor:pointer">
<input type="checkbox" id="filter-confirmed"> Confirmed only
</label>
</div>
<div style="display:flex;gap:8px;align-items:flex-end">
<button class="btn btn-primary" id="filter-btn">Filter</button>
<button class="btn btn-ghost" id="filter-reset">Reset</button>
@@ -55,12 +50,11 @@
<th>Tool</th>
<th>Arguments</th>
<th>Result</th>
<th>Confirmed</th>
<th>Session</th>
</tr>
</thead>
<tbody>
<tr><td colspan="6" style="text-align:center;color:var(--text-dim)">Loading…</td></tr>
<tr><td colspan="5" style="text-align:center;color:var(--text-dim)">Loading…</td></tr>
</tbody>
</table>
</div>
@@ -72,15 +66,14 @@
<!-- Audit entry detail modal -->
<div class="modal-overlay" id="audit-detail-modal" style="display:none" onclick="if(event.target===this)closeAuditDetail()">
<div class="modal" style="max-width:680px;width:100%">
<div class="modal-header">
<h3 id="audit-detail-tool" style="font-family:monospace;font-size:15px"></h3>
<div class="modal-header" style="display:flex;align-items:center;justify-content:space-between;margin-bottom:16px">
<h3 id="audit-detail-tool" style="font-family:monospace;font-size:15px;margin:0"></h3>
<button class="btn btn-ghost btn-small" onclick="closeAuditDetail()"></button>
</div>
<div class="modal-body">
<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin-bottom:16px;font-size:13px">
<div><span style="color:var(--text-dim)">Timestamp</span><br><span id="audit-detail-ts"></span></div>
<div><span style="color:var(--text-dim)">Session</span><br><code id="audit-detail-session"></code></div>
<div><span style="color:var(--text-dim)">Confirmed</span><br><span id="audit-detail-confirmed"></span></div>
<div><span style="color:var(--text-dim)">Task ID</span><br><code id="audit-detail-task" style="font-size:11px;word-break:break-all"></code></div>
</div>
<div style="margin-bottom:12px">

View File

@@ -16,7 +16,7 @@
<img src="{{ logo_url }}" alt="logo" class="sidebar-logo-img">
<div class="sidebar-logo-text">
<div class="sidebar-logo-name">{{ brand_name }}</div>
<div class="sidebar-logo-app">oAI-Web <span class="sidebar-logo-version">v1.2</span></div>
<div class="sidebar-logo-app">oAI-Web <span class="sidebar-logo-version">v1.2.1</span></div>
</div>
</div>

View File

@@ -34,6 +34,12 @@
<li><a href="#agents-subagents">Sub-agents</a></li>
</ul>
</li>
<li><a href="#monitors">Monitors</a>
<ul>
<li><a href="#monitors-pages">Page Watchers</a></li>
<li><a href="#monitors-rss">RSS Feeds</a></li>
</ul>
</li>
<li><a href="#mcp">MCP Servers</a></li>
<li>
<a href="#settings">Settings</a>
@@ -298,6 +304,51 @@
</p>
</section>
<!-- ── 5. Monitors ───────────────────────────────────────────────── -->
<section id="monitors" data-section>
<h1>Monitors</h1>
<p>
The <a href="/monitors">Monitors</a> page lets you watch web pages and RSS feeds for changes, then automatically dispatch an agent or send a Pushover notification when something new appears. Monitors run on a schedule in the background — no manual checking needed.
</p>
<h2 id="monitors-pages">Page Watchers</h2>
<p>
A page watcher fetches a URL on a schedule, hashes the content (or a CSS-selected portion of it), and triggers an action when the content changes.
</p>
<p>Fields when creating a page watcher:</p>
<ul>
<li><strong>Name</strong> — displayed in the monitor list</li>
<li><strong>URL</strong> — the page to watch</li>
<li><strong>Schedule</strong> — cron expression (e.g. <code>0 * * * *</code> = every hour)</li>
<li><strong>CSS Selector</strong> — optional; restricts the hash to a specific element on the page (e.g. <code>#price</code> or <code>.headline</code>). Leave blank to watch the entire page.</li>
<li><strong>Agent</strong> — agent to dispatch when a change is detected</li>
<li><strong>Notification mode</strong><code>agent</code> (dispatch the agent), <code>pushover</code> (send a push notification), or <code>both</code></li>
</ul>
<p>
The table shows <strong>Last checked</strong> and <strong>Last changed</strong> timestamps. Use the <strong>Check now</strong> button to force an immediate check outside the schedule.
</p>
<p class="help-note">
Page watchers use plain HTTP (not a real browser). For JavaScript-heavy pages where the interesting content is rendered client-side, the CSS selector approach may not work — the agent's browser tool is better suited for those.
</p>
<h2 id="monitors-rss">RSS Feeds</h2>
<p>
An RSS feed monitor fetches a feed on a schedule and triggers an action for each new item since the last run.
</p>
<p>Fields when creating an RSS monitor:</p>
<ul>
<li><strong>Name</strong> — displayed in the monitor list</li>
<li><strong>Feed URL</strong> — any RSS or Atom feed URL</li>
<li><strong>Schedule</strong> — cron expression (e.g. <code>0 */4 * * *</code> = every 4 hours)</li>
<li><strong>Agent</strong> — agent to dispatch for new items</li>
<li><strong>Max items per run</strong> — cap on how many new items trigger the agent in one run (default: 5)</li>
<li><strong>Notification mode</strong><code>agent</code>, <code>pushover</code>, or <code>both</code></li>
</ul>
<p>
Already-seen item IDs are tracked so the same item never triggers twice. The monitor sends <code>ETag</code> / <code>If-Modified-Since</code> headers to avoid downloading unchanged feeds unnecessarily. Use the <strong>Fetch now</strong> button to force an immediate run.
</p>
</section>
<!-- ── 5. MCP Servers ─────────────────────────────────────────────── -->
<section id="mcp" data-section>
<h1>MCP Servers</h1>

View File

@@ -109,7 +109,7 @@
<section>
<h2 class="settings-section-title">Runtime Limits</h2>
<p style="font-size:12px;color:var(--text-dim);margin-bottom:16px">
Override the defaults from <code>.env</code>. Changes take effect immediately — no restart needed.
Changes take effect immediately — no restart needed.
Individual agents can further override <em>Max tool calls</em> on their own settings page.
</p>
<form id="limits-form" style="display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;max-width:680px">
@@ -250,6 +250,19 @@
</div>
</section>
<!-- Default Provider -->
<section style="margin-bottom:32px">
<h2 class="settings-section-title">Default Provider</h2>
<p style="font-size:12px;color:var(--text-dim);margin-bottom:16px">
The AI provider used when no provider prefix is specified in a model string.
Changes take effect immediately — no restart needed.
</p>
<div style="display:flex;gap:8px;align-items:center;max-width:400px">
<select id="default-provider-select" class="form-input" style="flex:1"></select>
<button class="btn btn-primary" onclick="saveDefaultProvider()">Save</button>
</div>
</section>
<!-- Provider API Keys (admin) -->
<section style="margin-bottom:32px">
<h2 class="settings-section-title">Provider API Keys</h2>