mirror of
https://github.com/R0m1k3/EveFlow.git
synced 2026-10-11 17:29:03 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35437e2d51 | ||
|
|
e2c67a5770 |
No files matched your search
@@ -45,6 +45,8 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
version=$(node -p "require('./package.json').version")
|
version=$(node -p "require('./package.json').version")
|
||||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||||
|
# Fourth component (hotfix number, e.g. 2.0.0.1) becomes the Windows file build number.
|
||||||
|
echo "build=$(echo "$version" | cut -d. -f4)" >> "$GITHUB_OUTPUT"
|
||||||
if git ls-remote --exit-code --tags origin "refs/tags/v$version" >/dev/null 2>&1; then
|
if git ls-remote --exit-code --tags origin "refs/tags/v$version" >/dev/null 2>&1; then
|
||||||
echo "released=true" >> "$GITHUB_OUTPUT"
|
echo "released=true" >> "$GITHUB_OUTPUT"
|
||||||
else
|
else
|
||||||
@@ -55,6 +57,7 @@ jobs:
|
|||||||
run: npx electron-builder --win --publish never
|
run: npx electron-builder --win --publish never
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
BUILD_NUMBER: ${{ steps.ver.outputs.build }}
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: EveFlow-Windows-v${{ steps.ver.outputs.version }}
|
name: EveFlow-Windows-v${{ steps.ver.outputs.version }}
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "eveflow",
|
"name": "eveflow",
|
||||||
"version": "2.0.2",
|
"version": "2.0.0.1",
|
||||||
"description": "JARVIS-style desktop HUD for Hermes Agent: voice, streaming runs, scheduled jobs, skills and telemetry",
|
"description": "JARVIS-style desktop HUD for Hermes Agent: voice, streaming runs, scheduled jobs, skills and telemetry",
|
||||||
"main": "dist-electron/main.js",
|
"main": "dist-electron/main.js",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -28,11 +28,11 @@ export function Telemetry() {
|
|||||||
<Activity size={14} />
|
<Activity size={14} />
|
||||||
<span>Système</span>
|
<span>Système</span>
|
||||||
<span className="spacer" />
|
<span className="spacer" />
|
||||||
<span className="chip">{m.hostname}</span>
|
<span className="chip">{m.live ? m.hostname : 'HORS PONT'}</span>
|
||||||
</header>
|
</header>
|
||||||
<div className="telemetry">
|
<div className="telemetry">
|
||||||
<Gauge value={m.cpuLoad} max={100} label="CPU" display={`${Math.round(m.cpuLoad)}%`} warn={90} />
|
<Gauge value={m.cpuLoad} max={100} label="CPU" display={m.live ? `${Math.round(m.cpuLoad)}%` : '—'} warn={90} />
|
||||||
<Gauge value={m.memUsedPct} max={100} label="RAM" display={`${Math.round(m.memUsedPct)}%`} warn={92} />
|
<Gauge value={m.memUsedPct} max={100} label="RAM" display={m.live ? `${Math.round(m.memUsedPct)}%` : '—'} warn={92} />
|
||||||
<Gauge value={m.fps} max={60} label="FPS" display={`${m.fps}`} />
|
<Gauge value={m.fps} max={60} label="FPS" display={`${m.fps}`} />
|
||||||
<Gauge value={m.cpuFreqMhz} max={5500} label="GHz" display={m.cpuFreqMhz ? (m.cpuFreqMhz / 1000).toFixed(1) : '—'} />
|
<Gauge value={m.cpuFreqMhz} max={5500} label="GHz" display={m.cpuFreqMhz ? (m.cpuFreqMhz / 1000).toFixed(1) : '—'} />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import { bridge } from '../lib/bridge';
|
|||||||
|
|
||||||
export interface LiveMetrics extends SystemMetrics {
|
export interface LiveMetrics extends SystemMetrics {
|
||||||
fps: number;
|
fps: number;
|
||||||
|
/** false until the main process delivered real measurements */
|
||||||
|
live: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const EMPTY: LiveMetrics = {
|
const EMPTY: LiveMetrics = {
|
||||||
@@ -16,7 +18,8 @@ const EMPTY: LiveMetrics = {
|
|||||||
memUsedPct: 0,
|
memUsedPct: 0,
|
||||||
memTotalGb: 0,
|
memTotalGb: 0,
|
||||||
uptimeSec: 0,
|
uptimeSec: 0,
|
||||||
fps: 60
|
fps: 60,
|
||||||
|
live: false
|
||||||
};
|
};
|
||||||
|
|
||||||
export function useMetrics(enabled = true, intervalMs = 2000): LiveMetrics {
|
export function useMetrics(enabled = true, intervalMs = 2000): LiveMetrics {
|
||||||
@@ -43,7 +46,7 @@ export function useMetrics(enabled = true, intervalMs = 2000): LiveMetrics {
|
|||||||
const api = bridge();
|
const api = bridge();
|
||||||
const poll = () => {
|
const poll = () => {
|
||||||
if (!api) return;
|
if (!api) return;
|
||||||
api.system.metrics().then((m) => setMetrics((prev) => ({ ...prev, ...m }))).catch(() => undefined);
|
api.system.metrics().then((m) => setMetrics((prev) => ({ ...prev, ...m, live: true }))).catch(() => undefined);
|
||||||
};
|
};
|
||||||
poll();
|
poll();
|
||||||
const timer = setInterval(poll, intervalMs);
|
const timer = setInterval(poll, intervalMs);
|
||||||
|
|||||||
Reference in new issue
Block a user