chore(inference): disable Call 1 end-to-end; Call 2 stays

overnight-whole-app: Call 1 (vision classification) is OUT.
- POST /api/v1/slabs/{id}/inference/call1 always returns 410 call1_disabled
  (no model chat, no inference_log). Prompt seed/revision APIs kept dormant.
- Review: remove "Suggest with AI" / runInference (inferTaxon).
- GenerateText: remove Classify metadata (Call 1) button; Call 2 generate stays.
- PROMPTS.md banner documents Call 1 OUT / Call 2 STAYS.
- Settings: inference_enabled toggle annotated as Call-1 latch (dormant).
- Backend tests updated to assert 410; Call 2 tests unchanged.
This commit is contained in:
grokbot_ty
2026-09-25 17:46:39 -07:00
parent 60700b47fb
commit 087557f89f
7 changed files with 57 additions and 218 deletions
@@ -3,7 +3,6 @@
let contentEnabled = false;
let reachable = false;
let description: string | null = null;
let call1Suggestions: Record<string, unknown> | null = null;
let error = '';
let busy = false;
@@ -41,25 +40,6 @@
busy = false;
}
async function classify() {
if (!slabId) {
error = 'Enter a slab id.';
return;
}
busy = true;
error = '';
call1Suggestions = null;
try {
const res = await fetch(`/api/v1/slabs/${encodeURIComponent(slabId)}/inference/call1`, { method: 'POST' });
const body = await res.json();
if (res.ok) call1Suggestions = body.suggestions;
else error = body.error?.message || `call1 failed (${res.status})`;
} catch {
error = 'network error';
}
busy = false;
}
checkReadiness();
</script>
@@ -68,6 +48,7 @@
<p class="state">
Content generation: {contentEnabled ? 'on' : 'off'} · endpoint: {reachable ? 'reachable' : 'unreachable'}
</p>
<p class="note">Call 1 (vision classification) is disabled on this branch. Call 2 description generation stays.</p>
{#if !contentEnabled || !reachable}
<p class="note">The Generate text control is disabled: it appears only when content generation is
enabled and the inference endpoint is reachable.</p>
@@ -78,13 +59,9 @@
</div>
<div class="row">
<button on:click={generate} disabled={busy}>{busy ? 'Working…' : 'Generate description (Call 2)'}</button>
<button on:click={classify} disabled={busy}>Classify metadata (Call 1)</button>
</div>
{#if error}<p class="err">{error}</p>{/if}
{#if description}<p class="desc">{description}</p>{/if}
{#if call1Suggestions}
<pre class="sug">{JSON.stringify(call1Suggestions, null, 2)}</pre>
{/if}
{/if}
<button class="mini" on:click={checkReadiness}>Recheck readiness</button>
</div>
@@ -98,6 +75,5 @@
.note { color: #e8a; }
.err { color: #e88; }
.desc { margin-top: 12px; }
.sug { background: #1c1c1c; padding: 8px; }
.mini { margin-top: 12px; font-size: 12px; }
</style>