dashboard: remove the spawn-new-agent trigger from the Y3R C4LL tab
Frontend half of removing hive-level agent spawning (swarm-level creation now covers it, and its forge-works confirmation just landed in hive/hive-chat). Removes call.js's blank-name spawn-request form (R3QU3ST SP4WN) and its now-orphaned .spawnform CSS. Deliberately keeps core.js's tombstone-list revive action (R3V1V3) -- a different feature (respawn an *existing* agent, reusing its kept state), not agent creation, and not what this issue asked to remove. It happens to post to the same /api/request-spawn action with the tombstone's own name pre-filled rather than a blank input. Backend endpoint + wiring is a separate slice (damocles).
This commit is contained in:
parent
d900d25482
commit
8475d9921f
3 changed files with 1 additions and 39 deletions
|
|
@ -82,8 +82,7 @@ agent is stale.
|
||||||
|
|
||||||
Things blocked on operator decision — the approval queue.
|
Things blocked on operator decision — the approval queue.
|
||||||
|
|
||||||
**P3NDING APPR0VALS** — the queue (see "Approval card" below).
|
**P3NDING APPR0VALS** — the queue (see "Approval card" below). A
|
||||||
The R3QU3ST SP4WN form lives at the top of this section. A
|
|
||||||
`pending · N` / `history · N` tab pair switches between the live
|
`pending · N` / `history · N` tab pair switches between the live
|
||||||
queue and the last 30 resolved approvals (see "Approval card" for
|
queue and the last 30 resolved approvals (see "Approval card" for
|
||||||
the history row shape).
|
the history row shape).
|
||||||
|
|
|
||||||
|
|
@ -159,33 +159,8 @@ export function renderApprovals() {
|
||||||
// no-op elsewhere — `approval_added` / `approval_resolved` SSE
|
// no-op elsewhere — `approval_added` / `approval_resolved` SSE
|
||||||
// events route through here on every page that loads the bundle.
|
// events route through here on every page that loads the bundle.
|
||||||
if (!root) return;
|
if (!root) return;
|
||||||
// Save spawn form input + focus state before the DOM wipe so a live
|
|
||||||
// approval_added/resolved event doesn't erase a partially-typed name
|
|
||||||
// or steal focus from the operator.
|
|
||||||
const savedSpawnName = root.querySelector('.spawnform input[name="name"]')?.value ?? '';
|
|
||||||
const spawnHadFocus = document.activeElement === root.querySelector('.spawnform input[name="name"]');
|
|
||||||
root.replaceChildren();
|
root.replaceChildren();
|
||||||
|
|
||||||
// Spawn request form: submitting it queues a Spawn approval that
|
|
||||||
// lands in this same list, so the form belongs here rather than on
|
|
||||||
// the containers list (the agent doesn't exist yet).
|
|
||||||
const spawnNameInput = el('input', {
|
|
||||||
name: 'name',
|
|
||||||
placeholder: 'new agent name (≤9 chars)',
|
|
||||||
maxlength: '9', required: '', autocomplete: 'off',
|
|
||||||
});
|
|
||||||
if (savedSpawnName) spawnNameInput.value = savedSpawnName;
|
|
||||||
if (spawnHadFocus) spawnNameInput.focus();
|
|
||||||
const spawn = el('form', {
|
|
||||||
method: 'POST', action: '/api/request-spawn',
|
|
||||||
class: 'spawnform', 'data-async': '', 'data-no-refresh': '',
|
|
||||||
});
|
|
||||||
spawn.append(
|
|
||||||
spawnNameInput,
|
|
||||||
el('button', { type: 'submit', class: 'btn btn-spawn' }, '◆ R3QU3ST SP4WN'),
|
|
||||||
);
|
|
||||||
root.append(spawn);
|
|
||||||
|
|
||||||
const pending = approvalsState.pending;
|
const pending = approvalsState.pending;
|
||||||
const history = approvalsState.history;
|
const history = approvalsState.history;
|
||||||
const active = localStorage.getItem(APPROVAL_TAB_KEY) || 'pending';
|
const active = localStorage.getItem(APPROVAL_TAB_KEY) || 'pending';
|
||||||
|
|
|
||||||
|
|
@ -610,18 +610,6 @@ hive-agent-menu {
|
||||||
}
|
}
|
||||||
ul form.inline { display: inline-block; }
|
ul form.inline { display: inline-block; }
|
||||||
|
|
||||||
.spawnform { display: flex; gap: 0.6em; align-items: stretch; margin: 0.5em 0; }
|
|
||||||
.spawnform input {
|
|
||||||
font-family: inherit;
|
|
||||||
font-size: 1em;
|
|
||||||
background: var(--bg-elev);
|
|
||||||
color: var(--fg);
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
padding: 0.4em 0.6em;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
.spawnform input::placeholder { color: var(--muted); }
|
|
||||||
.spawnform input:focus { outline: 1px solid var(--purple); }
|
|
||||||
.role-pending { color: var(--amber); border-color: var(--amber); }
|
.role-pending { color: var(--amber); border-color: var(--amber); }
|
||||||
.btn-inline {
|
.btn-inline {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue