Say there is one chat component, in the places that claimed otherwise

Several headers argued the Scheduler dock was deliberately separate, and the Scheduler's help
never mentioned the assistant at all — including the fix flow that just changed shape.
This commit is contained in:
Gmer4Lfe
2026-08-09 12:22:25 -04:00
parent 8eeb4c3d6c
commit 6be765a9bf
6 changed files with 95 additions and 24 deletions
+5 -5
View File
@@ -90,7 +90,7 @@ require_once __DIR__ . '/config.php';
const VV_AI_KINDS = ['header', 'readme', 'manual', 'template', 'doc', 'ui'];
// Profiles — what each one is, and what it is allowed to see and do. One table, in one file,
// read by everything: this endpoint, the worker, the shared chat include and the Scheduler dock.
// read by everything: this endpoint, the worker, and the shared chat include every page renders.
// vv_ai_profile_can() and friends come from there.
require_once __DIR__ . '/ai_profiles.php';
@@ -816,7 +816,7 @@ function vv_ai_token_stats(): array {
return $out;
}
// ── Scoped lookups for the WebGUI dock ───────────────────────────────────────────────────────
// ── Scoped lookups for the Scheduler's assistant ──────────────────────────────────────────────
// The tail of one named script's log, for the troubleshooting profile. vv_ai_recent_logs()
// answers "is anything wrong anywhere"; this answers "why did THIS fail", which is a different
@@ -1308,11 +1308,11 @@ function vv_ai_chat_save(string $id, string $profile, array $messages, string $s
$prev = vv_ai_chat_read($id);
$created = (int)($prev['created'] ?? time());
// Scope travels with the conversation. A Scheduler dock thread is bound to what the operator
// had open — a script, a log, a conf key — and its turns carry log excerpts chosen for that
// Scope travels with the conversation. A Scheduler thread is bound to what the operator had
// open — a script, a log, a conf key — and its turns carry log excerpts chosen for that
// thing. Storing the scope means reopening the thread anywhere restores the context it was
// reasoned in, rather than silently continuing a troubleshooting conversation against
// whatever happens to be on screen. The isolation the dock enforces in memory becomes a
// whatever happens to be on screen. The isolation the page enforces in memory becomes a
// property of the record instead of something lost the moment it is saved.
$rec = [
'id' => $id,