Files
agent-estate-wiki/public/log.html
T
Tony0410 d129b70237 fix: serve quartz with clean URL support and regenerate site
- Add serve.py to resolve clean Quartz URLs to .html files
- Regenerate Quartz site with correct baseUrl http://100.118.5.51:9120
- 196 HTML files emitted; all internal links now resolve
2026-08-15 23:35:16 +08:00

228 lines
65 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en" dir="ltr"><head><title>log</title><meta charset="utf-8"/><link rel="preload" href="./index-bb6c1746.css" as="style"/><link rel="preload" href="./prescript-2bfc6315.js" as="script"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&amp;family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&amp;family=IBM Plex Mono:wght@400;600&amp;display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Agent Estate Wiki"/><meta property="og:title" content="log"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="log"/><meta name="twitter:description" content="Wiki Log Chronological record of wiki actions. Append-only."/><meta property="og:description" content="Wiki Log Chronological record of wiki actions. Append-only."/><meta property="og:image:alt" content="Wiki Log Chronological record of wiki actions. Append-only."/><meta property="twitter:domain" content="http://100.118.5.51:9120"/><meta property="og:url" content="https://http//100.118.5.51:9120/log"/><meta property="twitter:url" content="https://http//100.118.5.51:9120/log"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="Wiki Log Chronological record of wiki actions. Append-only."/><meta name="generator" content="Quartz"/><link href="./index-bb6c1746.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-735924e0.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-589c1cea.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-bbc3f7c0.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-2911f5d1.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-e427079e.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-53b25b2b.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-c93c6a44.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-8a06014f.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-77d6a441.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-6ee21cee.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-1ea6ad18.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-34bdfded.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-788c9ca3.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-642859cd.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-4abc06bd.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-274a3dfe.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-94cb6c84.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-58d5ff56.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./component-7262b5a7.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./static/resource-style-a5c806d2.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./static/resource-style-6bd36952.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./static/resource-style-9857b007.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="./static/resource-style-d3a1a224.css" rel="stylesheet" type="text/css" data-persist="true"/><link href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" rel="stylesheet" type="text/css" data-persist="true"/><script src="./prescript-2bfc6315.js" type="application/javascript" data-persist="true"></script><script type="application/javascript" data-persist="true">const fetchData = fetch("./static/contentIndex.json").then(data => data.json())</script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted%20Grotesk%3Awght%40400%3B700&amp;family=Source%20Sans%20Pro%3Aital%2Cwght%400%2C400%3B0%2C600%3B1%2C400%3B1%2C600&amp;family=IBM%20Plex%20Mono%3Awght%40400%3B600&amp;display=swap"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image" content="https://http://100.118.5.51:9120/log-og-image.webp"/><meta property="og:image:url" content="https://http://100.118.5.51:9120/log-og-image.webp"/><meta name="twitter:image" content="https://http://100.118.5.51:9120/log-og-image.webp"/><meta property="og:image:type" content="image/webp"/></head><body data-slug="log" data-basepath="//100.118.5.51:9120"><div id="quartz-root" class="page" data-frame="default"><div id="quartz-body"><div class="left sidebar"><h2 class="page-title"><a href=".">Agent Estate Wiki</a></h2><div class="mobile-only"><div class="spacer"></div></div><div class="flex-component" style="flex-direction: row; flex-wrap: nowrap; gap: 0.5rem;"><div style="flex-grow: 1; flex-shrink: 1; flex-basis: auto; order: 0; align-self: center; justify-self: center;"><div class="search"><button class="search-button" aria-label="Search" aria-expanded="false"><svg role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title>Search</title><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"></path><circle cx="8" cy="8" r="7"></circle></g></svg><p>Search</p></button><div class="search-container"><div class="search-space"><input autocomplete="off" class="search-bar" name="search" type="text" aria-label="Search for something..." placeholder="Search for something..."/><div class="search-layout" data-preview="true" data-field-priority="[&quot;title&quot;,&quot;content&quot;,&quot;tags&quot;]"></div></div></div></div></div><div style="flex-grow: 0; flex-shrink: 1; flex-basis: auto; order: 0; align-self: center; justify-self: center;"><button class="darkmode" aria-label="Dark mode"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="dayIcon" x="0px" y="0px" viewBox="0 0 35 35" style="enable-background:new 0 0 35 35" xml:space="preserve" aria-label="Dark mode"><title>Dark mode</title><path d="M6,17.5C6,16.672,5.328,16,4.5,16h-3C0.672,16,0,16.672,0,17.5 S0.672,19,1.5,19h3C5.328,19,6,18.328,6,17.5z M7.5,26c-0.414,0-0.789,0.168-1.061,0.439l-2,2C4.168,28.711,4,29.086,4,29.5 C4,30.328,4.671,31,5.5,31c0.414,0,0.789-0.168,1.06-0.44l2-2C8.832,28.289,9,27.914,9,27.5C9,26.672,8.329,26,7.5,26z M17.5,6 C18.329,6,19,5.328,19,4.5v-3C19,0.672,18.329,0,17.5,0S16,0.672,16,1.5v3C16,5.328,16.671,6,17.5,6z M27.5,9 c0.414,0,0.789-0.168,1.06-0.439l2-2C30.832,6.289,31,5.914,31,5.5C31,4.672,30.329,4,29.5,4c-0.414,0-0.789,0.168-1.061,0.44 l-2,2C26.168,6.711,26,7.086,26,7.5C26,8.328,26.671,9,27.5,9z M6.439,8.561C6.711,8.832,7.086,9,7.5,9C8.328,9,9,8.328,9,7.5 c0-0.414-0.168-0.789-0.439-1.061l-2-2C6.289,4.168,5.914,4,5.5,4C4.672,4,4,4.672,4,5.5c0,0.414,0.168,0.789,0.439,1.06 L6.439,8.561z M33.5,16h-3c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5h3c0.828,0,1.5-0.672,1.5-1.5S34.328,16,33.5,16z M28.561,26.439C28.289,26.168,27.914,26,27.5,26c-0.828,0-1.5,0.672-1.5,1.5c0,0.414,0.168,0.789,0.439,1.06l2,2 C28.711,30.832,29.086,31,29.5,31c0.828,0,1.5-0.672,1.5-1.5c0-0.414-0.168-0.789-0.439-1.061L28.561,26.439z M17.5,29 c-0.829,0-1.5,0.672-1.5,1.5v3c0,0.828,0.671,1.5,1.5,1.5s1.5-0.672,1.5-1.5v-3C19,29.672,18.329,29,17.5,29z M17.5,7 C11.71,7,7,11.71,7,17.5S11.71,28,17.5,28S28,23.29,28,17.5S23.29,7,17.5,7z M17.5,25c-4.136,0-7.5-3.364-7.5-7.5 c0-4.136,3.364-7.5,7.5-7.5c4.136,0,7.5,3.364,7.5,7.5C25,21.636,21.636,25,17.5,25z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="nightIcon" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100" xml:space="preserve" aria-label="Light mode"><title>Light mode</title><path d="M96.76,66.458c-0.853-0.852-2.15-1.064-3.23-0.534c-6.063,2.991-12.858,4.571-19.655,4.571 C62.022,70.495,50.88,65.88,42.5,57.5C29.043,44.043,25.658,23.536,34.076,6.47c0.532-1.08,0.318-2.379-0.534-3.23 c-0.851-0.852-2.15-1.064-3.23-0.534c-4.918,2.427-9.375,5.619-13.246,9.491c-9.447,9.447-14.65,22.008-14.65,35.369 c0,13.36,5.203,25.921,14.65,35.368s22.008,14.65,35.368,14.65c13.361,0,25.921-5.203,35.369-14.65 c3.872-3.871,7.064-8.328,9.491-13.246C97.826,68.608,97.611,67.309,96.76,66.458z"></path></svg></button></div><div style="flex-grow: 0; flex-shrink: 1; flex-basis: auto; order: 0; align-self: center; justify-self: center;"><button class="readermode" aria-label="Reader mode"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="readerIcon" fill="currentColor" stroke="currentColor" stroke-width="0.2" stroke-linecap="round" stroke-linejoin="round" width="64px" height="64px" viewBox="0 0 24 24" aria-label="Reader mode"><title>Reader mode</title><g transform="translate(-1.8, -1.8) scale(1.15, 1.2)"><path d="M8.9891247,2.5 C10.1384702,2.5 11.2209868,2.96705384 12.0049645,3.76669482 C12.7883914,2.96705384 13.8709081,2.5 15.0202536,2.5 L18.7549359,2.5 C19.1691495,2.5 19.5049359,2.83578644 19.5049359,3.25 L19.5046891,4.004 L21.2546891,4.00457396 C21.6343849,4.00457396 21.9481801,4.28672784 21.9978425,4.6528034 L22.0046891,4.75457396 L22.0046891,20.25 C22.0046891,20.6296958 21.7225353,20.943491 21.3564597,20.9931534 L21.2546891,21 L2.75468914,21 C2.37499337,21 2.06119817,20.7178461 2.01153575,20.3517706 L2.00468914,20.25 L2.00468914,4.75457396 C2.00468914,4.37487819 2.28684302,4.061083 2.65291858,4.01142057 L2.75468914,4.00457396 L4.50368914,4.004 L4.50444233,3.25 C4.50444233,2.87030423 4.78659621,2.55650904 5.15267177,2.50684662 L5.25444233,2.5 L8.9891247,2.5 Z M4.50368914,5.504 L3.50468914,5.504 L3.50468914,19.5 L10.9478955,19.4998273 C10.4513189,18.9207296 9.73864328,18.5588115 8.96709342,18.5065584 L8.77307039,18.5 L5.25444233,18.5 C4.87474657,18.5 4.56095137,18.2178461 4.51128895,17.8517706 L4.50444233,17.75 L4.50368914,5.504 Z M19.5049359,17.75 C19.5049359,18.1642136 19.1691495,18.5 18.7549359,18.5 L15.2363079,18.5 C14.3910149,18.5 13.5994408,18.8724714 13.0614828,19.4998273 L20.5046891,19.5 L20.5046891,5.504 L19.5046891,5.504 L19.5049359,17.75 Z M18.0059359,3.999 L15.0202536,4 L14.8259077,4.00692283 C13.9889509,4.06666544 13.2254227,4.50975805 12.7549359,5.212 L12.7549359,17.777 L12.7782651,17.7601316 C13.4923805,17.2719483 14.3447024,17 15.2363079,17 L18.0059359,16.999 L18.0056891,4.798 L18.0033792,4.75457396 L18.0056891,4.71 L18.0059359,3.999 Z M8.9891247,4 L6.00368914,3.999 L6.00599909,4.75457396 L6.00599909,4.75457396 L6.00368914,4.783 L6.00368914,16.999 L8.77307039,17 C9.57551536,17 10.3461406,17.2202781 11.0128313,17.6202194 L11.2536891,17.776 L11.2536891,5.211 C10.8200889,4.56369974 10.1361548,4.13636104 9.37521067,4.02745763 L9.18347055,4.00692283 L8.9891247,4 Z"></path></g></svg></button></div></div><div class="explorer nav-files-container" data-behavior="link" data-collapsed="collapsed" data-savestate="true" data-data-fns="{&quot;order&quot;:[&quot;filter&quot;,&quot;map&quot;,&quot;sort&quot;],&quot;sortFn&quot;:&quot;(a2, b2) => {\n if (!a2.isFolder &amp;&amp; !b2.isFolder || a2.isFolder &amp;&amp; b2.isFolder) {\n return (a2.displayName || \&quot;\&quot;).localeCompare(b2.displayName || \&quot;\&quot;, void 0, {\n numeric: true,\n sensitivity: \&quot;base\&quot;\n });\n }\n if (!a2.isFolder &amp;&amp; b2.isFolder) {\n return 1;\n }\n return -1;\n }&quot;,&quot;filterFn&quot;:&quot;(node) => node.slugSegment !== \&quot;tags\&quot;&quot;,&quot;mapFn&quot;:&quot;(node) => {\n return node;\n }&quot;}"><button type="button" class="explorer-toggle mobile-explorer hide-until-loaded" data-mobile="true" aria-controls="explorer-37" aria-label="Explorer"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide-menu"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button><button type="button" class="title-button explorer-toggle desktop-explorer" data-mobile="false" aria-expanded="true"><h2>Explorer</h2><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="explorer-37" class="explorer-content" aria-expanded="false" role="group"><ul class="explorer-ul overflow" id="list-0"><li class="overflow-end"></li></ul></div><template id="template-file"><li><a href="#" class="nav-file-title tree-item-self"></a></li></template><template id="template-folder"><li><div class="folder-container nav-folder-title tree-item-self"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="5 8 14 8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="folder-icon nav-folder-collapse-indicator collapse-icon"><polyline points="6 9 12 15 18 9"></polyline></svg><div><button class="folder-button"><span class="folder-title"></span></button></div></div><div class="folder-outer"><ul class="content tree-item-children"></ul></div></li></template></div></div><div class="center"><div class="page-header"><div class="popover-hint"><nav class="breadcrumb-container" aria-label="breadcrumbs"><div class="breadcrumb-element"><a href="./">Home</a><p> </p></div><div class="breadcrumb-element"><a href>log</a></div></nav><h1 class="article-title">log</h1><p show-comma="true" class="content-meta"><time datetime="2026-08-14T16:06:13.104Z">Aug 15, 2026</time><span>13 min read</span></p></div></div><article class="popover-hint"><div class="markdown-preview-view markdown-rendered"><h1 id="wiki-log">Wiki Log<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#wiki-log" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h1>
<blockquote>
<p>Chronological record of wiki actions. Append-only.</p>
</blockquote>
<h2 id="2026-07-22-init--fresh-hermes-systems-wiki">[2026-07-22] init | Fresh Hermes Systems Wiki<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-22-init--fresh-hermes-systems-wiki" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Created technical wiki at <code>/home/hermes/wiki</code></li>
<li>Structure: systems/, infrastructure/, concepts/, decisions/, comparisons/, runbooks/, experiments/, queries/, raw/, _archive/</li>
<li>Wrote SCHEMA.md with 11 operating rules</li>
<li>Wrote index.md as curated Start here dashboard</li>
<li>Reseeded system/infrastructure/runbook stubs for existing homelab</li>
<li>Git initialized, local-only</li>
<li>No secrets, passwords, tokens, or private keys written to vault</li>
</ul>
<h2 id="2026-07-22-audit--external-audit-pass-claude-at-anthonys-request">[2026-07-22] audit | External audit pass (Claude, at Anthonys request)<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-22-audit--external-audit-pass-claude-at-anthonys-request" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Merged duplicate pages: <code>systems/omniRoute.md</code> (empty stub) -> kept <code>systems/omniroute.md</code> (populated); repointed 5 links</li>
<li>Merged duplicate pages: <code>runbooks/safely-update-hermes.md</code> -> kept as <code>runbooks/update-hermes-safely.md</code> (fuller content); repointed 2 links</li>
<li>Added missing YAML frontmatter to 19 pages that lacked it (SCHEMA rule violation)</li>
<li>Flagged 17 skeleton/placeholder pages explicitly as stubs (status: unresolved, confidence: low) instead of leaving them silently thin</li>
<li>Linked 5 previously-orphaned pages (network-map, domains-and-tunnels, backups, cloudflare-tunnel, home-assistant) into index.md so theyre reachable from Start Here</li>
<li>Verified: no secrets/keys/passwords found in any wiki page (rule 1 compliance holds)</li>
<li>Did not fabricate comparison/concept content — left for Hermes/Anthony to fill with verified facts</li>
</ul>
<h2 id="2026-07-22-populate--fill-stub-pages-with-verified-system-facts-claude-at-anthonys-request">[2026-07-22] populate | Fill stub pages with verified system facts (Claude, at Anthonys request)<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-22-populate--fill-stub-pages-with-verified-system-facts-claude-at-anthonys-request" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Populated with real, verified data (not fabricated): infrastructure/network-map, infrastructure/domains-and-tunnels, infrastructure/backups, systems/cloudflare-tunnel, systems/home-assistant, systems/headless-server, systems/hindsight, comparisons/camoufox-vs-chrome, comparisons/model-routers, comparisons/hermes-vs-nanobot, comparisons/memory-backends, concepts/persistent-shells, concepts/tool-calling, concepts/browser-automation, concepts/agent-memory</li>
<li>Corrected systems/nanobot.md: Nanobot is actually running, on LXC 333 (“clawtest”), not this host — earlier “not running” claim was true only for ct460 and got conflated with pves own IP</li>
<li>Found and flagged a real inconsistency: decisions/use-hindsight-for-memory.md still names Hindsight as primary backend while current-state.md/systems/memory-backend.md say Mnemosyne — marked unresolved rather than silently overwritten</li>
<li>Fixed a broken <code>review_after: 0001-01-01</code> in decisions/keep-openrouter-as-fallback.md</li>
<li>New security-relevant findings recorded in-place: x11vnc on this host has no password and binds to all interfaces (systems/headless-server.md)</li>
<li>queries/retained-research-answers.md intentionally left as a stub — its a running research log to be filled by Hermes over time, not something system inspection can populate</li>
</ul>
<h2 id="2026-07-22-correction--purge-hindsight-per-anthony-direct-correction">[2026-07-22] correction | Purge Hindsight (per Anthony, direct correction)<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-22-correction--purge-hindsight-per-anthony-direct-correction" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Anthony confirmed Hindsight has nothing to do with this Hermes box (ct460) — it was confused with a different Hermes instance during earlier wiki authoring</li>
<li>Deleted: systems/hindsight.md, decisions/use-hindsight-for-memory.md, runbooks/check-hindsight.md</li>
<li>Rewrote comparisons/memory-backends.md and concepts/agent-memory.md to drop Hindsight as this boxs predecessor backend</li>
<li>Removed Hindsight references from: systems/memory-backend.md, systems/hermes-agent.md, systems/mnemosyne.md, current-state.md, decisions/index.md, index.md</li>
<li>Left in place (not deleted, just flagged): archived hindsight-*.py scripts under ~/.hermes/scripts/ on this host — their presence is noted in comparisons/memory-backends.md as unexplained, possibly generic install-template leftovers, not evidence of local use</li>
<li>Confirmed: Mnemosyne is, and has only ever been, this boxs memory backend</li>
</ul>
<h2 id="2026-07-22-cleanup--remove-leftover-hindsight-scripts-per-anthony">[2026-07-22] cleanup | Remove leftover Hindsight scripts (per Anthony)<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-22-cleanup--remove-leftover-hindsight-scripts-per-anthony" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Deleted /home/hermes/.hermes/scripts/hindsight-watchdog.py.archived, hindsight_migration_watchdog.py.archived, honcho_to_hindsight_import.py.archived</li>
<li>These were the last physical trace of the earlier Hindsight/another-Hermes mix-up (see prior wiki + decisions correction); nothing Hindsight-related remains on this host or in this wiki</li>
</ul>
<h2 id="2026-07-25-operations--tool-search-and-gateway-resilience">[2026-07-25] operations | Tool Search and gateway resilience<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-25-operations--tool-search-and-gateway-resilience" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Documented always-on native Hermes Tool Search, its verified context reduction, new-tool behavior, and rollback backup</li>
<li>Documented how new skill categories are derived from the first folder below <code>~/.hermes/skills/</code></li>
<li>Documented CT460 gateway reclaim/CPU protection and the memory containment applied to Camofox and Hermes Web UI</li>
<li>Recorded the I/O-controller delegation limitation so an ineffective <code>IOWeight</code> is not mistaken for active protection</li>
<li>Added health checks, exact effective settings, backup location, and rollback procedure</li>
<li>No secrets, tokens, or private credentials were written to the wiki</li>
</ul>
<h2 id="2026-07-28-dashboard--jobs-dashboard-feature-additions">[2026-07-28] dashboard | Jobs Dashboard feature additions<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-28-dashboard--jobs-dashboard-feature-additions" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Fixed bulk status update (payload shape mismatch: <code>{ids, status}</code><code>{ids, updates: {status}}</code>)</li>
<li>Fixed column header sorting (sort key suffix mismatch, added all 8 column sort handlers)</li>
<li>Added Phone Screen as a dedicated KPI filter card (separated from Interviews)</li>
<li>Added Market Intel section at top of page (lazy-loaded on expand, refreshes on Refresh)</li>
<li>Added rich text notes editor (Write/Preview with markdown: bold, italic, links, bullets) syncing to Notion <code>Notes / JD Summary</code></li>
<li>Added document attachment system (bookmark blocks on Notion page body, lazy-loaded, add/delete via API)</li>
<li>Added 2 strong-match roles manually: Steel Blue Marketing Manager APAC, Revo Fitness Campaign Manager</li>
<li>Updated Synergy and Dept of Communities to Phone Screen status</li>
<li>Updated wiki runbook with full dashboard feature documentation and API endpoint table</li>
</ul>
<h2 id="2026-07-27-incident--job-radar-search-and-dashboard-recovery">[2026-07-27] incident | Job Radar search and dashboard recovery<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-27-incident--job-radar-search-and-dashboard-recovery" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Documented the contaminated morning radar run, 16-record cleanup, deterministic seven-day freshness/direct-advert rules, Pacific Energy exclusion, full Notion pagination and strong-match cover-letter workflow</li>
<li>Added the non-negotiable same-day cover-letter self-healing audit: retry once, verify all five artifacts, require canonical HTML/HTTP 200, and require <code>MISSING_COVER_LETTER_COUNT=0</code></li>
<li>Recorded the production cron model (<code>gpt-5.6-terra</code>) and verified first inherited fallback (<code>opencode-go/mimo-v2.5</code>)</li>
<li>Documented dashboard direct-advert links, one-click KPI/stat/funnel filters, and retained Notion-backed status editing</li>
<li>Recorded the CT460 Tailscale route-table loss and corrected atomic restoration of both <code>:443</code> Serve and <code>:8443/webhook</code> Funnel</li>
<li>Added <a href="./runbooks/job-radar" class="internal internal-link" data-slug="runbooks/job-radar">job-radar</a> and updated scheduled-task, Tailscale and index references</li>
<li>Verified no secrets, API keys or private credentials were written to the wiki</li>
</ul>
<h2 id="2026-07-29-update--steel-browser-deployment--browser-backend-switch">[2026-07-29] update | Steel Browser deployment — browser backend switch<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-29-update--steel-browser-deployment--browser-backend-switch" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>New page:</strong> <code>systems/browser-backend.md</code> — rewritten to reflect Steel Browser as primary, Camoufox as fallback</li>
<li><strong>New page:</strong> <code>comparisons/steel-vs-camoufox.md</code> — comparison of the two backends</li>
<li><strong>Updated:</strong> <code>infrastructure/hosts.md</code> — added CT201 and CT460 to verified hosts table</li>
<li><strong>Updated:</strong> <code>infrastructure/docker-services.md</code> — added Steel Browser compose file</li>
<li><strong>Updated:</strong> <code>infrastructure/tailscale.md</code> — added CT201 Steel serve routes</li>
<li><strong>Updated:</strong> <code>index.md</code> — browser-backend link description</li>
<li><strong>Updated:</strong> <code>current-state.md</code> — added 2026-07-29 changes section</li>
<li><strong>Config change:</strong> <code>browser.cdp_url</code> set to <code>http://100.96.244.39:9223</code> in ops profile</li>
</ul>
<h2 id="2026-07-30-update--open-webui-updated-on-ct245">[2026-07-30] update | Open WebUI updated on CT245<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-07-30-update--open-webui-updated-on-ct245" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Updated image to <code>ghcr.io/open-webui/open-webui:main</code> (new digest e97bf9531916, Jul 27)</li>
<li>Bumped CT245 memory from 2592→4096 MB, swap 1600→2048 MB to prevent OOM on latest image</li>
<li>Restarted container after OOM hang</li>
<li>Updated <code>infrastructure/proxmox.md</code></li>
</ul>
<h2 id="2026-08-02-incident--mnemosyne-embedding-coverage-gap-discovered-and-fixed">[2026-08-02] incident | Mnemosyne embedding coverage gap discovered and fixed<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-02-incident--mnemosyne-embedding-coverage-gap-discovered-and-fixed" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Health monitor was reporting vector index counts but not actual embedding coverage, hiding a critical gap</li>
<li>Working memory embeddings were at 12.4% (186/1,504) — early memories from July 17-26 were never embedded</li>
<li>Ran <code>mnemosyne reindex --yes</code> to rebuild all embeddings — working memory now at 100%</li>
<li>Updated health check script (<code>mnemosyne-health-check.sh</code>) to report actual embedding coverage via new helper script (<code>check_embedding_coverage.py</code>)</li>
<li>Created embedding coverage monitoring cron job (b63ed5817212) — runs every 6 hours, alerts if working memory coverage drops below 95%</li>
<li>Added auto-reindex rule to MEMORY.md — will run reindex automatically if coverage drops, no user prompt needed</li>
<li>DB grew from 8.7M to 21M with the new embeddings</li>
</ul>
<h2 id="2026-08-01-incident--mnemosyne-capture-pipeline-repaired">[2026-08-01] incident | Mnemosyne capture pipeline repaired<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-01-incident--mnemosyne-capture-pipeline-repaired" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Confirmed automatic conversation capture failure with a pre-fix unique-marker E2E test: Hermes completed the turn but no <code>working_memory</code> row existed.</li>
<li>Corrected stringified structured YAML (<code>sync_roles</code>, <code>skip_contexts</code>, <code>reflect</code>, <code>sleep_threshold</code>, <code>ignore_patterns</code>) and enabled profile isolation; <code>hermes config check</code> passed.</li>
<li>Verified the repair with a second CLI marker that persisted as an exact normalized <code>[USER]</code> database row.</li>
<li>Corrected stale canonical model facts for light-only design, numbered Obsidian structure, and CT460 root route <code>:9119</code>; added authoritative identity/preference/workflow slots.</li>
<li>Reduced legacy always-injected memory files from 8,013 bytes to 1,080 bytes, with timestamped backups retained.</li>
<li>Added <a href="./incidents/2026-08-01-mnemosyne-capture-failure" class="internal internal-link" data-slug="incidents/2026-08-01-mnemosyne-capture-failure">2026-08-01-mnemosyne-capture-failure</a> and refreshed <a href="./systems/mnemosyne" class="internal internal-link" data-slug="systems/mnemosyne">mnemosyne</a> plus <a href="./systems/memory-backend" class="internal internal-link" data-slug="systems/memory-backend">memory-backend</a>.</li>
</ul>
<h2 id="2026-08-02-update--wiki-audit-and-steelcamoufox-rollback-documentation">[2026-08-02] update | Wiki audit and Steel→Camoufox rollback documentation<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-02-update--wiki-audit-and-steelcamoufox-rollback-documentation" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Rewrote <a href="./comparisons/steel-vs-camoufox" class="internal internal-link" data-slug="comparisons/steel-vs-camoufox">steel-vs-camoufox</a> — full Steel experiment story, timeline, lessons learned</li>
<li>Rewrote <a href="./systems/browser-backend" class="internal internal-link" data-slug="systems/browser-backend">browser-backend</a> — Camoufox primary, Steel disabled</li>
<li>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a> — browser revert, Mnemosyne vector gap, DeepSeek 0731, Uber Eats upgrade, GH Trending removal, Tembo→Tusk rename</li>
<li>Updated <a href="./concepts/browser-automation" class="internal internal-link" data-slug="concepts/browser-automation">browser-automation</a> — added Steel experiment lesson</li>
<li>Created <a href="./decisions/rollback-steel-to-camofox" class="internal internal-link" data-slug="decisions/rollback-steel-to-camofox">rollback-steel-to-camofox</a> — formal decision record</li>
<li>Updated <a href="./systems/scheduled-tasks" class="internal internal-link" data-slug="systems/scheduled-tasks">scheduled-tasks</a> — job count 25, Uber Eats upgrade, GH Trending Daily removed</li>
<li>Updated <a href="./systems/mnemosyne" class="internal internal-link" data-slug="systems/mnemosyne">mnemosyne</a> — vector embedding coverage gap documented</li>
<li>Updated <a href="./systems/model-providers" class="internal internal-link" data-slug="systems/model-providers">model-providers</a> — DeepSeek V4 Flash 0731 details</li>
<li>Created <a href="./reports/uber-eats/" class="internal internal-link" data-slug="reports/uber-eats/index">index</a> — landing page for monthly spend reports</li>
<li>Updated <a href="./decisions/" class="internal internal-link" data-slug="decisions/index">index</a> — linked new decision page</li>
<li>Updated <a href="./" class="internal internal-link" data-slug="index">index.md</a> — browser description, reports section, last-updated date</li>
<li>Created nightly wiki audit cron job (23:59 AWST)</li>
</ul>
<h2 id="2026-08-02-update--ops-profile-mnemosyne-enabled-and-wiki-sync">[2026-08-02] update | Ops profile Mnemosyne enabled and wiki sync<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-02-update--ops-profile-mnemosyne-enabled-and-wiki-sync" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Ops profile (<code>~/.hermes/profiles/ops/config.yaml</code>): enabled <code>mnemosyne</code> plugin with <code>profile_isolation: true</code>, <code>allow_tool_override: false</code>, <code>shared_surface_read: false</code></li>
<li>Tusk (ops) and Rhino (default) now have independent memory banks — zero cross-contamination</li>
<li>Verified end-to-end: memory writes land correctly in both profiles independently</li>
<li>Updated <a href="./systems/mnemosyne" class="internal internal-link" data-slug="systems/mnemosyne">mnemosyne</a> — profile isolation section now documents ops config</li>
<li>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a> — added ops profile Mnemosyne entry</li>
<li>Updated <a href="./runbooks/multiplexer-setup" class="internal internal-link" data-slug="runbooks/multiplexer-setup">multiplexer-setup</a> — fixed “Elephant ops” → “Tusk ops” in architecture diagram</li>
<li>Fixed <a href="./systems/memory-backend" class="internal internal-link" data-slug="systems/memory-backend">memory-backend</a> — “Shared surface empty” section renamed to reflect intentional isolation decision</li>
</ul>
<h2 id="2026-08-04-update--omniroute-free-deepseek-silent-stop-mitigation">[2026-08-04] update | OmniRoute free-DeepSeek silent-stop mitigation<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-04-update--omniroute-free-deepseek-silent-stop-mitigation" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li>Incident: free-DeepSeek upstreams returning empty-after-tool responses since Aug 1 → silent turn stops on <code>deepseek-flash-free</code> and <code>smart-route</code>/<code>good-free</code> across both instances</li>
<li>Reworked <code>deepseek-flash-free</code> and <code>good-free</code> on CT600: strategy <code>priority</code><code>fill-first</code>, dropped proven culprits (<code>238d5978/deepseek-v4-flash</code> + <code>-0731</code>, <code>nvidia</code> deepseek), healthy free models promoted, deepseek demoted to last resort</li>
<li>Created <a href="./incidents/2026-08-04-omniroute-free-deepseek-silent-stops" class="internal internal-link" data-slug="incidents/2026-08-04-omniroute-free-deepseek-silent-stops">2026-08-04-omniroute-free-deepseek-silent-stops</a></li>
<li>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a> — added OmniRoute free-DeepSeek mitigation to Recent Changes</li>
<li>Updated <a href="./systems/omniroute" class="internal internal-link" data-slug="systems/omniroute">omniroute</a> — added Recent Changes (2026-08-04) section</li>
<li>Updated <a href="./systems/model-providers" class="internal internal-link" data-slug="systems/model-providers">model-providers</a> — added mitigation entry under Notable Model Updates, updated <code>updated</code> date</li>
</ul>
<h2 id="2026-08-07-update--nightly-wiki-audit--omniroute-fix-nanobot-degraded-scheduled-tasks-rewrite">[2026-08-07] update | Nightly wiki audit — OmniRoute fix, Nanobot degraded, scheduled tasks rewrite<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-07-update--nightly-wiki-audit--omniroute-fix-nanobot-degraded-scheduled-tasks-rewrite" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>OmniRoute three-layer fix documented:</strong> npm package .env override (ENABLE_SOCKS5_PROXY=true re-installed by npm update), dead nanobot provider connection (CT333 DOWN), PVE host load leaking into CT600 via nesting=1. First-request-after-cache-expiry stall pattern. <code>is_active=0</code> does NOT stop CredentialHealth probes. All lessons banked in omniroute-ops skill.</li>
<li><strong>Updated <a href="./systems/omniroute" class="internal internal-link" data-slug="systems/omniroute">omniroute</a></strong> — added Recent Changes (2026-08-07) section with full root cause analysis</li>
<li><strong>Updated <a href="./systems/nanobot" class="internal internal-link" data-slug="systems/nanobot">nanobot</a></strong> — status changed from “active” to “degraded” (DOWN, connection refused on 8900). Updated confidence, sources, verified_on.</li>
<li><strong>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a></strong> — added 2026-08-07 changes: OmniRoute fix, Nanobot degraded, CT460 memory bump</li>
<li><strong>Rewrote <a href="./systems/scheduled-tasks" class="internal internal-link" data-slug="systems/scheduled-tasks">scheduled-tasks</a></strong> — fixed duplicate entries (5 duplicates removed), added 8 missing jobs (Important-mail monitor, CT221 Miner Watchdog, Job Tracker Dashboard Refresh, Evening Stand-Down Briefing, Daily Birthday Checker, Mnemosyne Embedding Coverage Monitor, Hermes Config Backup, Review Agent Estate). Count corrected: 25 → 28.</li>
<li><strong>Wiki audit cron error noted:</strong> model drift (smart-route → deepseek-paid-smart) causing RuntimeError on Wiki Audit job</li>
<li><strong>Updated <a href="./" class="internal internal-link" data-slug="index">index.md</a></strong> — last-updated date 2026-08-04 → 2026-08-07</li>
</ul>
<h2 id="2026-08-09-update--nightly-wiki-audit--portainer-reset-sftpgo-review">[2026-08-09] update | Nightly wiki audit — Portainer reset, SFTPGo review<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-09-update--nightly-wiki-audit--portainer-reset-sftpgo-review" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>Portainer password reset documented:</strong> CT245 admin user confirmed as <code>anthony</code> (not <code>admin</code>). Password reset via helper container, verified with auth API. Recovery procedure recorded. Added to <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a>.</li>
<li><strong>SFTPGo security review documented:</strong> CT299 findings — root access, unpinned fingerprint, <code>//</code> root path, F1 quota mystery. Added to <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a> and <a href="./infrastructure/proxmox" class="internal internal-link" data-slug="infrastructure/proxmox">proxmox</a>.</li>
</ul>
<h2 id="2026-08-08-update--cron-model-repinning-hermes-ui-revert-phase-one-review">[2026-08-08] update | Cron model repinning, hermes-ui revert, Phase One review<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-08-update--cron-model-repinning-hermes-ui-revert-phase-one-review" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>Cron job model repinning:</strong> 13 jobs repinned from dead/stale provider combos. 3 from <code>freeapi/minimax-m2.7</code><code>smart-route</code> (IDs: <code>c8d52904e1d6</code>, <code>1b23c042e17d</code>, <code>d40085da631c</code>). Mosquito Tracker from <code>freeapi/auto</code><code>smart-route</code> (ID: <code>1b31187397a5</code>). 9 stale-named jobs (e.g. <code>vertex/gemini-2.5-flash</code>, <code>deepseek-v4-flash-free</code>) → <code>smart-route</code>. Daily Marketing Job Radar → <code>gpt-5.6-terra</code>.</li>
<li><strong>Hermes UI vite config revert:</strong> Vite config was changed to HTTPS with self-signed certs (~16:00), breaking iPad access. Reverted to pre-HTTPS config, restarted <code>hermes-ui.service</code>. Production build serves <code>/ui/</code> path correctly with relative asset paths. <code>hermes-desktop.martinwa.org</code> identified as separate Cloudflare infrastructure (likely CT450), not fixable from CT460.</li>
<li><strong>Phase One estate review completed:</strong> Manual cron run (ID <code>a9359b7db27b</code>) verified CT450s 11 duplicate publishing jobs remain paused (zero executions since Aug 1), CT460s 11 production jobs remain enabled with <code>last_status=ok</code>, CT333 Nanobot has live <code>jobs.json</code> with 9 jobs. Cron review report contained two inaccuracies (wrong date, false claim about CT333) — verified via live system probes.</li>
<li><strong>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a></strong> — added 2026-08-08 changes section</li>
<li><strong>Updated <a href="./systems/scheduled-tasks" class="internal internal-link" data-slug="systems/scheduled-tasks">scheduled-tasks</a></strong> — Phase One review marked completed, model repinning noted in Known Issues</li>
</ul>
<h2 id="2026-08-10-audit--nightly-wiki-audit--cron-failures-session-storage-issue">[2026-08-10] audit | Nightly wiki audit — cron failures, session storage issue<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-10-audit--nightly-wiki-audit--cron-failures-session-storage-issue" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>Cron job failures documented:</strong> Four jobs failed on 2026-08-10 with two error patterns:
<ul>
<li>TimeoutError (idle 601602s): Daily Marketing Job Radar, Political News Digest</li>
<li>RuntimeError (session storage write failure): Tech &amp; AI Newsletter Digest, GitHub Trending Radar — Weekly Roundup</li>
</ul>
</li>
<li><strong>Root cause identified:</strong> Disk at 83% (11GB free on 65GB), <code>state.db</code> at 593MB. Session storage likely experiencing WAL checkpoint or disk pressure issues.</li>
<li><strong>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a></strong> — added 2026-08-10 changes section with cron failures and OpenCode WebSocket errors</li>
<li><strong>Updated <a href="./systems/scheduled-tasks" class="internal internal-link" data-slug="systems/scheduled-tasks">scheduled-tasks</a></strong> — added session storage failures to Known Issues, updated verified_on to 2026-08-10</li>
<li><strong>OpenCode WebSocket proxy errors noted:</strong> Repeated “OpenCode service unavailable” in hermes node journal (Aug 11 00:08). Process running, likely transient.</li>
<li><strong>No new pages created</strong> — all changes applied to existing pages</li>
</ul>
<h2 id="2026-08-12-update--nightly-wiki-audit--omniroute-autoroutes-openviking-evaluation-freellmapi-internals">[2026-08-12] update | Nightly wiki audit — OmniRoute AutoRoutes, OpenViking evaluation, FreeLLMAPI internals<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-12-update--nightly-wiki-audit--omniroute-autoroutes-openviking-evaluation-freellmapi-internals" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>OmniRoute AutoRoute variants documented:</strong> <code>auto/best-free</code> (Auto Cheap) and <code>auto/coding-free</code> are <strong>virtual</strong> variants — not among the 54 persisted combos. LKGP engine resolves them dynamically by scoring live connected accounts (antigravity, opencode-zen, nvidia, openrouter) on health/quota/latency/errors/cost-inverse, with instant failover. Example observed: <code>auto/best-free</code> routed to Antigravity. Updated <a href="./systems/omniroute" class="internal internal-link" data-slug="systems/omniroute">omniroute</a>.</li>
<li><strong>OpenViking memory provider evaluated, NOT adopted:</strong> single-slot config would fully replace Mnemosyne (no parallel mode); risk assessment flagged schema/embedding/scope/provenance loss and no rollback. Config remains <code>memory.provider: mnemosyne</code>. Added to <a href="./comparisons/memory-backends" class="internal internal-link" data-slug="comparisons/memory-backends">memory-backends</a>.</li>
<li><strong>FreeLLMAPI router internals documented:</strong> 3-axis weighted scoring (Reliability/Speed/Intelligence) + guardrail multiplier + Penalty Inspector + vision/tool capability matching. Router behind Hermess default <code>freellmapi-auto</code>. Added to <a href="./comparisons/model-routers" class="internal internal-link" data-slug="comparisons/model-routers">model-routers</a>.</li>
<li><strong>No new pages created</strong> — all changes applied to existing pages. Routine cron (Mnemosyne health, embedding coverage, CT221 miner watchdog, important-mail monitor) passed clean; no incidents.</li>
</ul>
<h2 id="2026-08-13-update--nightly-wiki-audit--omniroute-ct600ct601-migration">[2026-08-13] update | Nightly wiki audit — OmniRoute CT600→CT601 migration<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-13-update--nightly-wiki-audit--omniroute-ct600ct601-migration" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>OmniRoute migrated from CT600 to CT601:</strong> Provider renamed <code>custom:omniroute</code><code>custom:omni</code>; base URL <code>http://omniroute:20128/v1</code><code>http://omni:20128/v1</code>. Host <code>omni.kangaroo-eel.ts.net</code> (100.93.204.4, active) replaces <code>omniroute.kangaroo-eel.ts.net</code> (100.88.81.19, offline). CT600 stopped, CT601 running. DB path <code>/var/lib/omniroute/storage.sqlite</code><code>/opt/omniroute/storage.sqlite</code>; API key unchanged. All config (14) + cron-job (22) <code>custom:omniroute</code> refs repointed to <code>custom:omni</code>. Pre-migration backup at <code>~/.hermes/config.yaml.bak.omniroute-removal</code>. All facts verified live (<code>pct list</code>, <code>grep</code>, Tailscale DNS).</li>
<li><strong>Updated <a href="./systems/omniroute" class="internal internal-link" data-slug="systems/omniroute">omniroute</a></strong> — Current Configuration rewritten for <code>omni</code>/CT601, added Recent Changes (2026-08-13), bumped <code>updated</code>/<code>verified_on</code> to 2026-08-13.</li>
<li><strong>Updated <a href="./infrastructure/proxmox" class="internal internal-link" data-slug="infrastructure/proxmox">proxmox</a></strong> — CT600 marked stopped/retired, CT601 added running; bumped <code>updated</code>.</li>
<li><strong>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a></strong> — attested provider/host facts updated, added Recent Changes (2026-08-13) including evening stand-down weather bugfix.</li>
<li><strong>Updated <a href="./infrastructure/hosts" class="internal internal-link" data-slug="infrastructure/hosts">hosts</a></strong> — OmniRoute proxy entry → <code>omni</code>; CT600 reference marked verified/retired.</li>
<li><strong>Updated <a href="./" class="internal internal-link" data-slug="index">index</a></strong> — last-updated date 2026-08-10 → 2026-08-13.</li>
<li>No new pages created; all changes applied to existing pages. No secrets written.</li>
</ul>
<h2 id="2026-08-14-update--nightly-wiki-audit--omniroute-factory-reset-guanaco-update-gpt-luna-research">[2026-08-14] update | Nightly wiki audit — OmniRoute factory reset, Guanaco update, GPT Luna research<a role="anchor" aria-hidden="true" tabindex="-1" data-no-popover="true" href="#2026-08-14-update--nightly-wiki-audit--omniroute-factory-reset-guanaco-update-gpt-luna-research" class="internal internal-link"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></a></h2>
<ul>
<li><strong>OmniRoute factory reset documented:</strong> CT601 database wiped clean (0 combos, 0 providers, 0 API keys, 115 built-in auto entries). Backup at <code>/opt/omniroute/factory-reset-backup-20260814-225524</code>. Providers re-added from Notion vault: Anthropic, Google Gemini, Groq, Mistral, OpenRouter (all passed live tests). OpenAI keys invalid — removed. Multiple free combos broken by upstream model ID changes (OpenRouter Poolside dash→dot, Groq llama-4-scout retired). Default model changed from <code>auto/best-free</code> to <code>resilient-free</code>. Working free combos: <code>free-lkgp</code>, <code>mega-free</code>, <code>smart-route</code>. See <a href="./systems/omniroute" class="internal internal-link" data-slug="systems/omniroute">omniroute</a>.</li>
<li><strong>Guanaco router documented:</strong> CT205 <code>ollama</code> container — Guanaco v0.8.11 → v0.8.14. DSML tag leakage fixes (tool-call formatting no longer leaks raw syntax), dashboard performance fix. Created <a href="./systems/guanaco" class="internal internal-link" data-slug="systems/guanaco">guanaco</a>.</li>
<li><strong>GPT-5.6 Luna research documented:</strong> Community consensus — Luna cleaner/polished; DeepSeek V4 Flash more persistent/cheaper. Provider route matters more than model name. Luna for planning/review, DeepSeek for execution. Updated <a href="./systems/model-providers" class="internal internal-link" data-slug="systems/model-providers">model-providers</a>.</li>
<li><strong>Updated <a href="./systems/omniroute" class="internal internal-link" data-slug="systems/omniroute">omniroute</a></strong> — added Recent Changes (2026-08-14), bumped <code>updated</code>/<code>verified_on</code></li>
<li><strong>Updated <a href="./systems/model-providers" class="internal internal-link" data-slug="systems/model-providers">model-providers</a></strong> — provider table (<code>omniroute</code><code>omni</code>), Guanaco entry, GPT-5.6 Luna entry, default model changed to <code>resilient-free</code>, bumped dates</li>
<li><strong>Created <a href="./systems/guanaco" class="internal internal-link" data-slug="systems/guanaco">guanaco</a></strong> — new page for Guanaco LLM proxy on CT205</li>
<li><strong>Updated <a href="./current-state" class="internal internal-link" data-slug="current-state">current-state</a></strong> — added Recent Changes (2026-08-14) with all seven items, bumped <code>updated</code></li>
<li><strong>Updated <a href="./infrastructure/proxmox" class="internal internal-link" data-slug="infrastructure/proxmox">proxmox</a></strong> — CT205 description updated with Guanaco proxy</li>
<li><strong>Updated <a href="./infrastructure/hosts" class="internal internal-link" data-slug="infrastructure/hosts">hosts</a></strong> — bumped <code>updated</code> date</li>
<li><strong>Updated <a href="./" class="internal internal-link" data-slug="index">index</a></strong> — last-updated date → 2026-08-14, added Guanaco link to Core systems</li>
<li>No secrets written.</li>
</ul></div></article><hr/><div class="page-footer"></div></div><div class="right sidebar"><div class="graph"><h3>Graph View</h3><div class="graph-outer"><div class="graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:1,&quot;scale&quot;:1.1,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[],&quot;focusOnHover&quot;:false,&quot;enableRadial&quot;:false}"></div><button class="global-graph-icon" aria-label="Global Graph"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 55 55" fill="currentColor" xml:space="preserve"><path d="M49,0c-3.309,0-6,2.691-6,6c0,1.035,0.263,2.009,0.726,2.86l-9.829,9.829C32.542,17.634,30.846,17,29,17
s-3.542,0.634-4.898,1.688l-7.669-7.669C16.785,10.424,17,9.74,17,9c0-2.206-1.794-4-4-4S9,6.794,9,9s1.794,4,4,4
c0.74,0,1.424-0.215,2.019-0.567l7.669,7.669C21.634,21.458,21,23.154,21,25s0.634,3.542,1.688,4.897L10.024,42.562
C8.958,41.595,7.549,41,6,41c-3.309,0-6,2.691-6,6s2.691,6,6,6s6-2.691,6-6c0-1.035-0.263-2.009-0.726-2.86l12.829-12.829
c1.106,0.86,2.44,1.436,3.898,1.619v10.16c-2.833,0.478-5,2.942-5,5.91c0,3.309,2.691,6,6,6s6-2.691,6-6c0-2.967-2.167-5.431-5-5.91
v-10.16c1.458-0.183,2.792-0.759,3.898-1.619l7.669,7.669C41.215,39.576,41,40.26,41,41c0,2.206,1.794,4,4,4s4-1.794,4-4
s-1.794-4-4-4c-0.74,0-1.424,0.215-2.019,0.567l-7.669-7.669C36.366,28.542,37,26.846,37,25s-0.634-3.542-1.688-4.897l9.665-9.665
C46.042,11.405,47.451,12,49,12c3.309,0,6-2.691,6-6S52.309,0,49,0z M11,9c0-1.103,0.897-2,2-2s2,0.897,2,2s-0.897,2-2,2
S11,10.103,11,9z M6,51c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S8.206,51,6,51z M33,49c0,2.206-1.794,4-4,4s-4-1.794-4-4
s1.794-4,4-4S33,46.794,33,49z M29,31c-3.309,0-6-2.691-6-6s2.691-6,6-6s6,2.691,6,6S32.309,31,29,31z M47,41c0,1.103-0.897,2-2,2
s-2-0.897-2-2s0.897-2,2-2S47,39.897,47,41z M49,10c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S51.206,10,49,10z"></path></svg></button></div><div class="global-graph-outer"><div class="global-graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:-1,&quot;scale&quot;:0.9,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.2,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[],&quot;focusOnHover&quot;:true,&quot;enableRadial&quot;:true}"></div></div></div><div class="toc"><button type="button" class="toc-header" aria-controls="toc-34" aria-expanded="true"><h3>Table of Contents</h3><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><ul id="list-0" class="toc-content overflow"><li class="depth-0"><a href="#wiki-log" data-for="wiki-log">Wiki Log</a></li><li class="depth-1"><a href="#2026-07-22-init--fresh-hermes-systems-wiki" data-for="2026-07-22-init--fresh-hermes-systems-wiki">[2026-07-22] init | Fresh Hermes Systems Wiki</a></li><li class="depth-1"><a href="#2026-07-22-audit--external-audit-pass-claude-at-anthonys-request" data-for="2026-07-22-audit--external-audit-pass-claude-at-anthonys-request">[2026-07-22] audit | External audit pass (Claude, at Anthonys request)</a></li><li class="depth-1"><a href="#2026-07-22-populate--fill-stub-pages-with-verified-system-facts-claude-at-anthonys-request" data-for="2026-07-22-populate--fill-stub-pages-with-verified-system-facts-claude-at-anthonys-request">[2026-07-22] populate | Fill stub pages with verified system facts (Claude, at Anthonys request)</a></li><li class="depth-1"><a href="#2026-07-22-correction--purge-hindsight-per-anthony-direct-correction" data-for="2026-07-22-correction--purge-hindsight-per-anthony-direct-correction">[2026-07-22] correction | Purge Hindsight (per Anthony, direct correction)</a></li><li class="depth-1"><a href="#2026-07-22-cleanup--remove-leftover-hindsight-scripts-per-anthony" data-for="2026-07-22-cleanup--remove-leftover-hindsight-scripts-per-anthony">[2026-07-22] cleanup | Remove leftover Hindsight scripts (per Anthony)</a></li><li class="depth-1"><a href="#2026-07-25-operations--tool-search-and-gateway-resilience" data-for="2026-07-25-operations--tool-search-and-gateway-resilience">[2026-07-25] operations | Tool Search and gateway resilience</a></li><li class="depth-1"><a href="#2026-07-28-dashboard--jobs-dashboard-feature-additions" data-for="2026-07-28-dashboard--jobs-dashboard-feature-additions">[2026-07-28] dashboard | Jobs Dashboard feature additions</a></li><li class="depth-1"><a href="#2026-07-27-incident--job-radar-search-and-dashboard-recovery" data-for="2026-07-27-incident--job-radar-search-and-dashboard-recovery">[2026-07-27] incident | Job Radar search and dashboard recovery</a></li><li class="depth-1"><a href="#2026-07-29-update--steel-browser-deployment--browser-backend-switch" data-for="2026-07-29-update--steel-browser-deployment--browser-backend-switch">[2026-07-29] update | Steel Browser deployment — browser backend switch</a></li><li class="depth-1"><a href="#2026-07-30-update--open-webui-updated-on-ct245" data-for="2026-07-30-update--open-webui-updated-on-ct245">[2026-07-30] update | Open WebUI updated on CT245</a></li><li class="depth-1"><a href="#2026-08-02-incident--mnemosyne-embedding-coverage-gap-discovered-and-fixed" data-for="2026-08-02-incident--mnemosyne-embedding-coverage-gap-discovered-and-fixed">[2026-08-02] incident | Mnemosyne embedding coverage gap discovered and fixed</a></li><li class="depth-1"><a href="#2026-08-01-incident--mnemosyne-capture-pipeline-repaired" data-for="2026-08-01-incident--mnemosyne-capture-pipeline-repaired">[2026-08-01] incident | Mnemosyne capture pipeline repaired</a></li><li class="depth-1"><a href="#2026-08-02-update--wiki-audit-and-steelcamoufox-rollback-documentation" data-for="2026-08-02-update--wiki-audit-and-steelcamoufox-rollback-documentation">[2026-08-02] update | Wiki audit and Steel→Camoufox rollback documentation</a></li><li class="depth-1"><a href="#2026-08-02-update--ops-profile-mnemosyne-enabled-and-wiki-sync" data-for="2026-08-02-update--ops-profile-mnemosyne-enabled-and-wiki-sync">[2026-08-02] update | Ops profile Mnemosyne enabled and wiki sync</a></li><li class="depth-1"><a href="#2026-08-04-update--omniroute-free-deepseek-silent-stop-mitigation" data-for="2026-08-04-update--omniroute-free-deepseek-silent-stop-mitigation">[2026-08-04] update | OmniRoute free-DeepSeek silent-stop mitigation</a></li><li class="depth-1"><a href="#2026-08-07-update--nightly-wiki-audit--omniroute-fix-nanobot-degraded-scheduled-tasks-rewrite" data-for="2026-08-07-update--nightly-wiki-audit--omniroute-fix-nanobot-degraded-scheduled-tasks-rewrite">[2026-08-07] update | Nightly wiki audit — OmniRoute fix, Nanobot degraded, scheduled tasks rewrite</a></li><li class="depth-1"><a href="#2026-08-09-update--nightly-wiki-audit--portainer-reset-sftpgo-review" data-for="2026-08-09-update--nightly-wiki-audit--portainer-reset-sftpgo-review">[2026-08-09] update | Nightly wiki audit — Portainer reset, SFTPGo review</a></li><li class="depth-1"><a href="#2026-08-08-update--cron-model-repinning-hermes-ui-revert-phase-one-review" data-for="2026-08-08-update--cron-model-repinning-hermes-ui-revert-phase-one-review">[2026-08-08] update | Cron model repinning, hermes-ui revert, Phase One review</a></li><li class="depth-1"><a href="#2026-08-10-audit--nightly-wiki-audit--cron-failures-session-storage-issue" data-for="2026-08-10-audit--nightly-wiki-audit--cron-failures-session-storage-issue">[2026-08-10] audit | Nightly wiki audit — cron failures, session storage issue</a></li><li class="depth-1"><a href="#2026-08-12-update--nightly-wiki-audit--omniroute-autoroutes-openviking-evaluation-freellmapi-internals" data-for="2026-08-12-update--nightly-wiki-audit--omniroute-autoroutes-openviking-evaluation-freellmapi-internals">[2026-08-12] update | Nightly wiki audit — OmniRoute AutoRoutes, OpenViking evaluation, FreeLLMAPI internals</a></li><li class="depth-1"><a href="#2026-08-13-update--nightly-wiki-audit--omniroute-ct600ct601-migration" data-for="2026-08-13-update--nightly-wiki-audit--omniroute-ct600ct601-migration">[2026-08-13] update | Nightly wiki audit — OmniRoute CT600→CT601 migration</a></li><li class="depth-1"><a href="#2026-08-14-update--nightly-wiki-audit--omniroute-factory-reset-guanaco-update-gpt-luna-research" data-for="2026-08-14-update--nightly-wiki-audit--omniroute-factory-reset-guanaco-update-gpt-luna-research">[2026-08-14] update | Nightly wiki audit — OmniRoute factory reset, Guanaco update, GPT Luna research</a></li><li class="overflow-end"></li></ul></div></div><footer class><p>Created with <a href="https://quartz.jzhao.xyz/">Quartz v5.0.0</a> © 2026</p><ul><li><a href="https://github.com/jackyzha0/quartz">GitHub</a></li><li><a href="https://discord.gg/cRFFHYye7t">Discord Community</a></li></ul></footer></div></div></body><script src="./static/resource-after-e13fffa1.js" type="application/javascript" data-persist="true"></script><script src="./static/resource-after-8b336f9a.js" type="application/javascript" data-persist="true"></script><script src="./static/resource-after-baba652b.js" type="application/javascript" data-persist="true"></script><script src="./static/resource-after-5eb75950.js" type="module" data-persist="true"></script><script src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/copy-tex.min.js" type="application/javascript" data-persist="true"></script><script src="./postscript-3eea7814.js" type="module" data-persist="true"></script></html>