Skip to content

Commit 7572e2c

Browse files
gryszzzgryszclaude
authored
feat(desktop): runtime visibility — enriched Audit narrative, Advanced tab, Mind as a runtime map (v0.7.3) (#94)
Audit — "what actually happened": - the trail now opens with the run's live narrative from the execution session (provider retries, grant requests, rejections, executions, errors, timestamps, tools) with the same plain-English hints chat shows, followed by the authoritative hash-chained Ledger chain + replay verdict. The hint logic is extracted into a shared governanceHint() used by both surfaces. Advanced tab — the power-user / inspection surface (all real state): - new ⚙ Advanced tab hosting: the Advanced Mode toggle (moved out of the header), the per-chat model override (moved out of the chat rail), a live Runtime card (health, mode, ledger backend, runtime URL, app version), a Model & routing card (provider, default model, base URL, key-stored, live/mock), an Authority card (current grants, active skills, risk gate), and the Ledger card (on-disk chain path). No placeholder controls — everything reads real runtime/provider/grant state. Mind — observability over ornament: - starfield and second cage shell removed; smaller core mark; the data is the visual. - lifecycle lanes replace the helix: one row per step, events flowing left to right, so Intent → Proposal → Rejected/Grant → Execution → Commit reads as a path at a glance. - inspector gains "Open in Audit →", jumping to the run's enriched audit narrative (cross-surface hook window.thymosOpenAudit). Release prep: versions bumped to 0.7.3 (workspace + desktop + locks). Verified: cargo build + full workspace tests green, JS syntax-checked, every referenced element id resolves. Not verified here: the Tauri webview render (ships in the v0.7.3 build for hands-on use). Co-authored-by: grysz <117801274+grysz@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 2cef36f commit 7572e2c

11 files changed

Lines changed: 261 additions & 65 deletions

File tree

thymos/Cargo.lock

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

thymos/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ members = [
1616
]
1717

1818
[workspace.package]
19-
version = "0.7.2"
19+
version = "0.7.3"
2020
edition = "2021"
2121
license = "Apache-2.0"
2222
rust-version = "1.80"

thymos/clients/desktop/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

thymos/clients/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "thymos-desktop",
3-
"version": "0.7.2",
3+
"version": "0.7.3",
44
"private": true,
55
"description": "OpenThymos Desktop — governed-cognition runtime, install once.",
66
"scripts": {

thymos/clients/desktop/src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

thymos/clients/desktop/src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
[package]
77
name = "thymos-desktop"
8-
version = "0.7.2"
8+
version = "0.7.3"
99
edition = "2021"
1010
license = "Apache-2.0"
1111
description = "OpenThymos Desktop — a governed-cognition client that supervises a local runtime."

thymos/clients/desktop/src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "OpenThymos",
4-
"version": "0.7.2",
4+
"version": "0.7.3",
55
"identifier": "com.openthymos.desktop",
66
"build": {
77
"frontendDist": "../src"

thymos/clients/desktop/src/index.html

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@
2727
<span id="ledger" class="pill">ledger: —</span>
2828
</div>
2929
<div class="controls">
30-
<label class="adv-toggle" title="Show developer internals — raw ledger data, schemas, writs/commits. Off by default.">
31-
<input type="checkbox" id="advToggle" /> Advanced
32-
</label>
3330
<button id="startBtn">Start runtime</button>
3431
<button id="stopBtn" class="ghost">Stop</button>
3532
</div>
@@ -44,6 +41,7 @@
4441
<button class="tab" data-tab="tools">▣ Tools</button>
4542
<button class="tab" data-tab="audit">≡ Audit</button>
4643
<button class="tab adv-only" data-tab="backups">↧ Backups</button>
44+
<button class="tab" data-tab="advanced">⚙ Advanced</button>
4745
</nav>
4846

4947
<main>
@@ -57,9 +55,8 @@
5755
<!-- Authority is configured ONCE here and saved to this model, not
5856
chosen per message. -->
5957
<div class="chat-defaults">
60-
<!-- Per-chat model override (advanced) + active skill chips — both
61-
appear only when in use, keeping the rail clean. -->
62-
<input id="chatModel" class="adv-only" list="modelList" autocomplete="off" placeholder="model override (blank = default)" />
58+
<!-- Active skill chips — appear only when in use, keeping the
59+
rail clean. The per-chat model override lives in Advanced. -->
6360
<div id="skillChips" class="skill-chips" title="Active skills — combine any; they only narrow authority."></div>
6461
<div class="grants" id="grants" title="What this chat is allowed to do — the writ scope. The runtime rejects anything not granted. No selection = everything granted.">
6562
<span class="grant-label">grant</span>
@@ -399,6 +396,59 @@ <h3>Create / tune a skill</h3>
399396
</p>
400397
</div>
401398
</section>
399+
400+
<!-- ADVANCED: the runtime inspection + power-user surface. Everything
401+
here reads real state — no placeholder controls. -->
402+
<section class="panel" id="tab-advanced">
403+
<div class="panel-head"><h2>Advanced — runtime inspection</h2>
404+
<button type="button" class="ghost" id="refreshAdvanced">Refresh</button></div>
405+
<p class="tab-intro">
406+
The deeper controls and live truth of the runtime under this app.
407+
Normal chat never needs this tab; it's here when you want to see —
408+
or steer — exactly what the runtime is doing.
409+
</p>
410+
411+
<div class="adv-grid">
412+
<div class="card">
413+
<h3>Runtime</h3>
414+
<div id="advRuntime" class="state-card"></div>
415+
<label class="adv-toggle" title="Reveal developer internals across the app — raw ledger data, schemas, the Backups tab.">
416+
<input type="checkbox" id="advToggle" /> Advanced Mode (show internals everywhere)
417+
</label>
418+
</div>
419+
420+
<div class="card">
421+
<h3>Model &amp; routing</h3>
422+
<div id="advProvider" class="state-card"></div>
423+
<label class="adv-label" for="chatModel">Per-chat model override</label>
424+
<input id="chatModel" list="modelList" autocomplete="off" placeholder="model override (blank = provider default)" />
425+
<p class="note">Applies to new chat messages. Provider, key, and base URL are managed in the <b>Providers</b> tab.</p>
426+
</div>
427+
428+
<div class="card">
429+
<h3>Authority</h3>
430+
<div id="advAuthority" class="state-card"></div>
431+
<p class="note">
432+
Grants are the writ scope for new chats (left rail chips). Tools at
433+
<b>high</b> risk (e.g. <code>shell</code>) always pause for your
434+
approval — tune with <code>THYMOS_APPROVE_RISK</code>.
435+
</p>
436+
</div>
437+
438+
<div class="card">
439+
<h3>Ledger &amp; debug</h3>
440+
<div class="ledger-path-row">
441+
<span class="dim">ledger file</span>
442+
<code id="advLedgerPath" class="path"></code>
443+
</div>
444+
<p class="note">
445+
The single hash-chained file holding every governed action.
446+
Inspect any run in <b>Audit</b> (now with the full narrative:
447+
retries, rejections, grants, errors); verify with replay.
448+
</p>
449+
</div>
450+
</div>
451+
</section>
402452
</main>
403453

404454
<script src="main.js"></script>

0 commit comments

Comments
 (0)