feat(tauri): generated panels + EvidenceState dashboard (rebased)#80
Merged
elasticdotventures merged 20 commits intoMay 4, 2026
Merged
Conversation
Define PANELS array as single source of truth for all 5 panels (Chat, Logs, Dashboard, Settings, Docs). buildUI() generates sidebar buttons and panel divs from this array. panelTemplate() provides HTML per panel id. cacheRefs() runs after DOM generation. Adds Dashboard panel with evidence summary cards (blocked, ready, exported, with_validation_issues), last action summary, next actions list, and provider readiness status. Auto-refreshes on panel switch. New Tauri commands: get_evidence_dashboard(), get_tx_provenance(). AppState extended with Arc<Mutex<EvidenceState>>. Also: force-push guard installed (pre-push hook + AGENTS.md rule), unused ProvenanceGap import removed in arc-kit-au.
…TOML - scripts/tauri-build.ps1: pre-flight checks for cargo-tauri, builds ledgerr-tauri with --bundles msi, generates SHA256 hash, writes datum TOML at .b00t/datums/ledgerr-tauri.toml - Justfile: wsl2-pwsh-tauri-build delegates to the script - .b00t/datums/ledgerr-tauri.toml: auto-generated binary datum with version pinned to tauri-cli 2.11.0, includes sha256 and size_kb
…vation - Rename crate from ledgerr-tauri to ledgrrr (directory, package name, binary) - Update Cargo.toml workspace member, tauri.conf.json product/identifier/title - Build script uses admin elevation (-Verb RunAs) for MSI install - Datum TOML includes install path at C:\Program Files\ledgrrr\ledgrrr.exe - Update references in AGENTS.md, PRD-6.md, Justfile, build script
…ktop host - Move Tauri binary target into ledgerr-host as host-tauri (src/bin/tauri/) - Remove standalone ledgrrr crate - Tauri reuses ledgerr-host's EvidenceState, SettingsStore, ChatSettings, etc. directly without a separate dependency tree - tauri.conf.json and build.rs gated behind cfg(windows) so WSL builds pass - Update build script and datum path to host-tauri - Slint remains as host-window binary but Tauri (host-tauri) is the primary host
Autorun mode captures JS errors and Tauri IPC status in the countdown bar at the bottom of the window. Window closes after 5s regardless. This allows unattended debugging: launch, observe telemetry in the bar, auto-exit.
…SLO trace - harness: injects UUID via TAURI_TEST_UUID env var, launches binary, waits 10s, 3x redundant kill, captures stdout/stderr, writes SLO JSON - signal path: Rust binary echoes TAURI_TEST_UUID to stderr on startup - autorun: 5s countdown timer, telemetry dump in window, auto-exit - SLO file: uuid_matched, signal_path_ok, watchdog_ok, duration_ms - SIGNAL PATH PROVEN: UUID found in telemetry
- Footer countdown bar triggered by TAURI_TEST_KILL_DELAY env var (ms precision, updates every 200ms, window title shows remaining) - Test harness captures full-screen PNG screenshot after countdown - Screenshot base64-encoded to separate file for vision API - SLO tracks: signal_path_ok, watchdog_ok, screenshot_ok - New Tauri command: get_test_harness_config (reads env vars) - Autorun window closes itself when countdown reaches 0
- scripts/tauri-vision-analyze.py: uv-run script that loads microsoft/Florence-2-base (0.23B), runs <MORE_DETAILED_CAPTURE> task, outputs JSON with caption, timings, device info - Full pipeline: harness launches host-tauri -> countdown 8s -> screenshot -> vision analysis - First run downloads PyTorch + CUDA (~2GB), cached afterwards
- Titlebar shows 'ledgrrr v{CARGO_PKG_VERSION}+b{TAURI_BUILD_NUMBER}'
- Build number injected via TAURI_BUILD_NUMBER env var from test harness
- Version is compile-time from Cargo, build number is runtime from harness
- New command: get_cargo_pkg_version (exposes version to JS)
- setup hook sets the title dynamically on webview creation
- scripts/tauri-test-loop.ps1: bumps .build_counter, injects TAURI_BUILD_NUMBER,
builds host-tauri, runs harness, verifies DOM contains build number
- DOM dump and titlebar show 'v1.8.0+b{N}' with N monotonically increasing
- Fixed: cfg(windows) gating for main.rs so WSL build passes
- Fixed: duplicate .unwrap_or_default() in commands.rs
- Fixed: set_title type annotation syntax
- All SLO metrics green (signal_path_ok, watchdog_ok, screenshot_ok)
- tauri.conf.json: remove windows[] (built in Rust setup hook) - main.rs: build window manually with WebviewWindowBuilder, reads TAURI_CDP_PORT env, sets WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS
- tauri-clean-build.ps1: Windows-only build to target-windows, launches with WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS set via ProcessStartInfo for proper env inheritance - tauri-cdp-automate.py: CDP client with DOM query, screenshot, websocket connection - tauri-cdp-test.ps1: launch + verify CDP connection - .gitignore: .b00t/scratch/ and datums/*.txt
- Fixed closure bug: panel click handlers now capture correct index via IIFE, so each sidebar button opens the right panel - Added showPanel() function: toggles hidden class on panel divs, toggles active class on nav items - Added refreshDashboard(): wires evidence state to DOM elements - Added settings save button: wired to invoke save_settings IPC - Autorun bar removed from normal operation (no kill_delay set) - Panel HTML templates use compact single-line format
- build.rs: reads .build_counter at compile time, sets
TAURI_BUILD_NUMBER via rustc-env so every binary has baked version
- main.rs: uses env!("TAURI_BUILD_NUMBER") compile-time constant
instead of runtime env var — build number always correct
- tauri-release-install.ps1: full release build + uninstall old +
MSI install with admin elevation
- Build #15 installed at C:\Program Files\ledgrrr\ledgrrr.exe
Signed-off-by: Brian Horakh <35611074+elasticdotventures@users.noreply.github.com>
…nd + XSS + auto-refresh Agent-Logs-Url: https://github.com/PromptExecution/l3dg3rr/sessions/51239493-e05c-49a3-a51f-e3df6795ee46 Co-authored-by: elasticdotventures <35611074+elasticdotventures@users.noreply.github.com>
… provider display Agent-Logs-Url: https://github.com/PromptExecution/l3dg3rr/sessions/51239493-e05c-49a3-a51f-e3df6795ee46 Co-authored-by: elasticdotventures <35611074+elasticdotventures@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Rebases the prior Tauri dashboard/panel-generation work onto current main by moving the Tauri desktop host from the removed crates/ledgerr-tauri into crates/ledgerr-host (Windows-only host-tauri), adding a generated UI shell + evidence dashboard, and introducing Windows-focused build/test harness scripts plus refreshed app assets/capabilities.
Changes:
- Remove
crates/ledgerr-taurifrom the workspace and re-home the Tauri app undercrates/ledgerr-host(src/bin/tauri/*,tauri.conf.json, capabilities). - Replace static HTML panels with a generated panel system (
PANELSarray) and add an EvidenceState/TodayQueue dashboard in the host UI. - Add build/test automation scripts (PowerShell/Python) and update packaging assets (icons, capabilities schema).
Reviewed changes
Copilot reviewed 32 out of 92 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| scripts/tauri-vision-analyze.py | Adds a local Florence-2 vision analysis helper script for screenshots. |
| scripts/tauri-test-loop.ps1 | Adds an iterative build + harness runner script. |
| scripts/tauri-test-harness.ps1 | Adds a Windows harness to launch/observe/kill the Tauri host and capture screenshots/telemetry. |
| scripts/tauri-release-install.ps1 | Adds a release build + MSI install helper. |
| scripts/tauri-launch-cdp.ps1 | Adds a helper script to launch with CDP expectations and probe /json/version. |
| scripts/tauri-clean-build.ps1 | Adds a “clean build + launch with CDP” helper script. |
| scripts/tauri-cdp-test.ps1 | Adds a simple CDP connectivity probe script. |
| scripts/tauri-cdp-automate.py | Adds a minimal CDP websocket client for DOM/screenshot/title automation. |
| scripts/tauri-build.ps1 | Adds a build/signing/datum generation script (and optional MSI install). |
| scripts/launch-cdp.cmd | Adds a CMD wrapper to launch and probe CDP. |
| crates/ledgerr-tauri/ui/index.html | Deletes the old Tauri UI HTML (crate removed). |
| crates/ledgerr-tauri/src/main.rs | Deletes the old Tauri app entrypoint (crate removed). |
| crates/ledgerr-tauri/build.rs | Deletes the old Tauri build script (crate removed). |
| crates/ledgerr-tauri/Cargo.toml | Deletes the old Tauri crate manifest (crate removed). |
| crates/ledgerr-host/ui/index.html | Introduces a minimal HTML shell for generated navigation/panels. |
| crates/ledgerr-host/ui/main.js | Adds PANELS-driven UI generation and dashboard refresh wiring. |
| crates/ledgerr-host/ui/style.css | Minor dashboard comment formatting tweak (supports new dashboard section). |
| crates/ledgerr-host/tauri.conf.json | Renames app identity and moves window creation to Rust (empty windows array). |
| crates/ledgerr-host/src/bin/tauri/state.rs | Introduces AppState for Tauri commands (settings/history/evidence). |
| crates/ledgerr-host/src/bin/tauri/main.rs | Adds Windows-only Tauri host entrypoint, explicit window build, and command registration. |
| crates/ledgerr-host/src/bin/tauri/commands.rs | Adds Tauri IPC commands (dashboard/provenance + harness helpers) and payload types. |
| crates/ledgerr-host/capabilities/main.json | Adds Tauri capability definition for the main window. |
| crates/ledgerr-host/gen/schemas/capabilities.json | Adds generated capabilities schema output. |
| crates/ledgerr-host/build.rs | Adds Tauri build integration and build-number env baking. |
| crates/ledgerr-host/Cargo.toml | Adds host-tauri bin + Tauri deps/build-deps; sets default-run. |
| crates/ledgerr-host/icons/** | Adds/updates app icons and Android resources for bundling. |
| PRD-6.md | Updates PRD content (but currently includes a conflict marker). |
| Justfile | Adds a WSL→PowerShell recipe for Tauri building. |
| Cargo.toml | Removes crates/ledgerr-tauri from workspace and adjusts workspace deps/lints formatting. |
| AGENTS.md | Updates operator guidance for Tauri host direction and adds force-push guard notes. |
| .gitignore | Reworks ignore entries (currently very minimal). |
| .codebase-memory/adr.md | Adds ADR documentation for .tomllmd. |
| .build_counter | Adds a build counter file (used by build scripts/build.rs). |
| .b00t/tasks.json | Adds b00t task tracking file for the dashboard/panel work. |
| .b00t/datums/ledgrrr.toml | Adds a build datum for the packaged binary. |
| .b00t/datums/ledgerr-tauri.toml | Adds a build datum for the prior Tauri binary naming. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Brian Horakh <35611074+elasticdotventures@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebased replacement for PR #78.
Original PR #78 (feat/dashboard-generated-panels-51) had merge conflicts with main after PR #76 and #77 merged. This is the same content rebased onto current main with all conflicts resolved.
Conflicts resolved during rebase:
Closes #51.