Gmer4Lfe
a011cd5e3b
Give the Monitor tab the help panel the Scheduler already had
2026-08-09 00:06:28 -04:00
Gmer4Lfe
3a45c18555
Document today's restructures, and give data/ a README that ships with it
2026-08-09 00:01:05 -04:00
Gmer4Lfe
f1603349cc
Put everything Varaverk persists under one root, state included
2026-08-08 23:26:46 -04:00
Gmer4Lfe
d5c36db531
Put every tmpfs path in one place both layers can read
2026-08-08 22:57:29 -04:00
Gmer4Lfe
0f92609425
Give the AI subsystem one profile table and one collection, read everywhere
2026-08-08 22:35:37 -04:00
Gmer4Lfe
0f4d381ac0
Make PHP agree with the clock the rest of the server keeps
2026-08-08 22:35:31 -04:00
Gmer4Lfe
ea0c713c89
Put the assistant on the dashboard, where the questions actually occur to you
2026-08-08 22:01:13 -04:00
Gmer4Lfe
4d00e37ca1
Move the chat into an include, because the second one was going to be a copy
2026-08-08 22:01:06 -04:00
Gmer4Lfe
1e324636e0
Keep conversations, so a useful answer outlives the tab it was asked in
2026-08-08 22:00:58 -04:00
Gmer4Lfe
df3c4bb369
Stop signalling on the strength of a stat file alone
...
A job killed hard never corrects its own record, so 'running' outlives the
process and the pid can since belong to something else; array-start jobs get
setsid too, so Stop can reach past their direct children.
2026-08-08 13:50:01 -04:00
Gmer4Lfe
9cabb04395
Resolve Custom script ids where the scripts actually live
...
The Custom/ prefix is a namespace, not a directory under SCRIPTS_DIR, so every
launcher that resolved it as one could never find the script.
2026-08-08 12:47:26 -04:00
Gmer4Lfe
2ab7d3d98a
Stop the Stop button from killing the web server
...
UI-launched jobs inherited php-fpm's process group, so stopping one that was
actually running group-killed the WebGUI; setsid makes the job its own group
leader and stop.php now refuses to signal any group it does not lead.
2026-08-08 11:09:08 -04:00
Gmer4Lfe
228aae31c9
Ask before running a script, which the page header has always said it did
...
Run was the only mutating control here that did not confirm, and it is the one that executes
shell as root — the library holds cleaners that delete files, and six Run buttons sit a row apart
in a dense tree.
2026-08-07 10:43:43 -04:00
Gmer4Lfe
86a0ba55fe
Include the config the container endpoint now depends on
...
vv_cache_clear() went in without it, so every start and stop fatalled on the line after the
docker command had already run — the action succeeded and the page was told it failed.
2026-08-07 10:33:08 -04:00
Gmer4Lfe
9e3755f9ca
Take the literal script tag out of the comment that broke every tab
...
Written with real angle brackets inside the inline block, it ended that element early, so the
file rendered as visible text and no page JS ran at all.
2026-08-07 10:29:13 -04:00
Gmer4Lfe
ab794db0ab
Stop the dashboard polling harder than its data can change
...
Every poll after the first asked for ?live=1, so the page paid a full collection — partner SSH
timeouts included — every two seconds while the tmpfs cache it was built around went unused.
Polls are now guarded against overlap and stop while the tab is hidden, repeated failures say so
instead of leaving the last good reading on screen, and two functions nothing called are gone.
2026-08-07 10:23:13 -04:00
Gmer4Lfe
b445ddc2c8
Make a container action tell the truth about what happened
...
The response was discarded, so a refused stop looked like a completed one, and the payload the
card redraws from is cached for 300s with no invalidation — the container carried on showing as
running until the once-a-minute writer caught up. Stop now confirms; start still does not.
2026-08-07 10:20:11 -04:00
Gmer4Lfe
fb50f94ed8
Escape what the monitor page renders, and put the helpers where every page can reach them
...
The page interpolated media titles, partner hostnames read over the mesh, and docker folder
names straight into innerHTML — its own header claimed otherwise, and the helpers that would
have fixed it were defined in a page it never loads. Container WebUI values now get a scheme
check before they reach window.open().
2026-08-07 10:17:45 -04:00
Gmer4Lfe
b02857cf04
Put the AI master switch on Settings, so the switch that hides the AI tab is reachable without it
...
Turning AI off takes the AI tools and their conf gear off the Tools card with it, which
left the raw master.conf editor as the only way back on.
2026-08-07 09:49:41 -04:00
Gmer4Lfe
be306cf86c
Let one gate decide every AI surface, so switching AI off actually removes all of it
...
The Tools card adopted the AI scripts on the host check alone, and api/ai.php only
tested AI_ENABLED in front of ask, so a disabled subsystem still had rows to run and
an endpoint that answered.
2026-08-07 09:49:31 -04:00
Gmer4Lfe
bf7a2cc911
Point scripts at the shared host sections, and fix the two reasons those sections could never be found
2026-08-06 23:16:28 -04:00
Gmer4Lfe
4989486f45
Two thirds of the conf was unreachable from the UI, and an empty Config block said nothing about why
2026-08-06 23:08:49 -04:00
Gmer4Lfe
9be6055113
Adopt the AI tools onto the Tools card, but only where the index and the model actually are
2026-08-06 23:02:22 -04:00
Gmer4Lfe
8b0c2f6d1b
Tools had no gear, so nineteen scripts had no Info and Settings at all
2026-08-06 22:57:05 -04:00
Gmer4Lfe
141e2ca37c
At full size the dock's own button becomes its collapse, and closing hands the panel back
2026-08-06 22:49:38 -04:00
Gmer4Lfe
b803fefebd
Give the assistant dock a size toggle, so a long answer can have the panel without hiding what it is about
2026-08-06 22:44:00 -04:00
Gmer4Lfe
1b46033584
grep -c prints zero and exits one, so every echo-0 fallback produced a two-line count
2026-08-06 22:31:50 -04:00
Gmer4Lfe
9145a66cef
Surface server_reboot.sh on the Tools card without moving it out of the shutdown chain it belongs to
2026-08-06 22:24:30 -04:00
Gmer4Lfe
d5944c2443
Sweep every onclick built from data: an unescaped quote silently killed nine handlers
2026-08-06 22:13:10 -04:00
Gmer4Lfe
d135dff5cd
An unescaped quote ended the onclick attribute early, so clicking an error line did nothing
2026-08-06 22:08:10 -04:00
Gmer4Lfe
62a838ebdd
Clicking a recent error opens the log on that line and acks it, so acknowledged means seen
2026-08-06 22:00:44 -04:00
Gmer4Lfe
f2d0e18f2c
Ask about a run from the row it is on, and stop spending context on health checks when the run was clean
2026-08-06 21:51:55 -04:00
Gmer4Lfe
4347fc5f07
Capture the dock phrasing that worked, so it keeps working
2026-08-06 21:38:41 -04:00
Gmer4Lfe
ce0cbd868c
Write down the routing every bug so far produced, and check it without asking the model
2026-08-06 21:34:05 -04:00
Gmer4Lfe
2658082607
Explain mode: show what a question would be given and why, without asking the model
2026-08-06 21:27:26 -04:00
Gmer4Lfe
55aa7f968f
A phrase list missed one word order, and the assistant answered a log question with a command that re-runs the job
2026-08-06 21:17:57 -04:00
Gmer4Lfe
0882942164
General Chat now hands a Varaverk question up to the Assistant instead of telling the operator to do it
2026-08-06 20:56:47 -04:00
Gmer4Lfe
917ff43795
Profile permissions belong in one table, because scattered they hid a capability chat was never meant to have
2026-08-06 20:51:19 -04:00
Gmer4Lfe
d562644581
State the no-citation rule for run evidence in the contract itself, since as an amendment it lost
2026-08-06 18:49:18 -04:00
Gmer4Lfe
02aa73bb8d
Chat invented a log inspection when asked how a run went, and the rundown cited passages it had not read
2026-08-06 18:48:01 -04:00
Gmer4Lfe
0fa871ef61
The run-outcome gate ignored the profile, so chat could be handed a log it is promised it never sees
2026-08-06 18:45:55 -04:00
Gmer4Lfe
815ceef276
A question about how a run went should arrive with the run attached, not with directions to the log panel
2026-08-06 18:43:12 -04:00
Gmer4Lfe
10c1705790
An answer sized the assistant dock past the bottom of the page because nothing refit the panel after it landed
2026-08-06 18:36:50 -04:00
Gmer4Lfe
e467cdaf23
The scheduler AI dock read the poll envelope as the job, so every answer hung on thinking
2026-08-06 18:28:13 -04:00
Gmer4Lfe
269ef9b2de
Verify a bug report's component and evidence before filing it
2026-08-05 21:25:00 -04:00
Gmer4Lfe
657ee435d1
Add a copy-out button that formats a report as a pasteable issue
2026-08-05 21:12:40 -04:00
Gmer4Lfe
2f8af3a1b7
Say the bug was recorded locally, because that is what happened
2026-08-05 20:55:56 -04:00
Gmer4Lfe
2c5e412d91
File AI-detected Varaverk defects as deduped reports, surfaced on the AI tab and counted in the coffee report
2026-08-05 20:48:54 -04:00
Gmer4Lfe
9d4a62fa5e
Have the troubleshooter suspect configuration before it suspects Varaverk
2026-08-05 20:33:01 -04:00
Gmer4Lfe
714d97dd49
Add an incident journal the troubleshooter reads back, and thinking for diagnosis
2026-08-05 20:26:56 -04:00