Transcript analysis (session 2026-07-06-175012, GLM 5.2) showed F1 at 567s: 182s wasted on a useless `tht schema introspect` (re-introspecting the remote DWH although physical.yaml was already materialized) plus ~220s of model thinking inflated by ~7 exploratory turns (--help/find/cat). The actual searches cost ~15s; reviewer gates (~145s, untouched) are the quality contract. - schema_cmd.py: introspect now exits 0 with "OK (cache)" in ~1s when physical.yaml exists; --refresh forces the real re-introspection. Deterministic cross-model guarantee, verified live on psd (163 tables, 1.2s). - SKILL.md: F1 toolbox (only `tht search find` + `tht schema render`; no introspect/--help/filesystem browsing; batch all searches in one turn); F4 step 1 is render-only with a one-shot introspect fallback. - tht-gate.js: `tht schema introspect ... --refresh` added to FORBIDDEN (maintenance stays shell-only, never in-session). - tests: 4 new pytest cases (cache hit placement proven with fake credentials, refresh bypass, corrupt-catalog fall-through, render fallback message) and 2 gate anti-bypass JS cases. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
28 lines
963 B
JavaScript
28 lines
963 B
JavaScript
const test = require("node:test");
|
|
const assert = require("node:assert");
|
|
const { createFakePi } = require("./fake_pi_runtime.js");
|
|
|
|
const installGatePromise = import("../../tht-gate.js").then((m) => m.default);
|
|
|
|
test("tht schema introspect --refresh e' bloccato in sessione (manutenzione)", async () => {
|
|
const installGate = await installGatePromise;
|
|
const { pi } = createFakePi();
|
|
installGate(pi);
|
|
const res = await pi.emit("tool_call", {
|
|
toolName: "bash",
|
|
input: { command: "tht schema introspect -c workspaces/psd.yaml --refresh" },
|
|
});
|
|
assert.equal(res?.block, true);
|
|
});
|
|
|
|
test("tht schema introspect senza --refresh passa (cache hit innocuo)", async () => {
|
|
const installGate = await installGatePromise;
|
|
const { pi } = createFakePi();
|
|
installGate(pi);
|
|
const res = await pi.emit("tool_call", {
|
|
toolName: "bash",
|
|
input: { command: "tht schema introspect -c workspaces/psd.yaml" },
|
|
});
|
|
assert.equal(res, undefined);
|
|
});
|