#272 (show approval requested-at — closed) ×2 in tabs.js (live ApprovalAdded fallback note + amber stale chip comment) + ×1 in docs/web-ui.md (Approval card identity header). #275 (select all for meta inputs — closed) ×1 in tabs.js (bulk-select rationale) + ×1 in docs/web-ui.md (M3T4 1NPUTS tree control note). The amber-stale chip line in tabs.js now points at docs/web-ui.md::Approval card for the rendered spec instead of the closed issue.
This commit is contained in:
parent
47a97be958
commit
4ab4d99340
2 changed files with 5 additions and 5 deletions
|
|
@ -248,7 +248,7 @@ every fetched input at every depth (`hyperhive`,
|
|||
`hyperhive/nixpkgs`, `agent-<n>`, `agent-<n>/mcp-<x>`, …), each
|
||||
shown once at its shallowest path. `read_meta_inputs` walks the
|
||||
lock graph with a `visited` set — `follows` aliases and rev-less
|
||||
nodes are skipped (issue #275). A `select all / select none`
|
||||
nodes are skipped. A `select all / select none`
|
||||
control sits above the tree. Checking inputs + submitting bumps
|
||||
the lock in `/meta/` and rebuilds the selected agents in
|
||||
sequence; each outcome reaches the manager as a `rebuilt`
|
||||
|
|
@ -552,7 +552,7 @@ renderApprovals`) with three stacked sections:
|
|||
`apply_commit`) the short proposal sha as `<code>`, and a
|
||||
right-aligned `requested <N> ago` relative time from
|
||||
`ApprovalView.requested_at` — amber once the request has been
|
||||
pending ≥ 1h so a stale approval stands out (issue #272).
|
||||
pending ≥ 1h so a stale approval stands out.
|
||||
- **what-changed body** — the manager's description, then
|
||||
drill-in triggers: `↳ view diff` opens the diff in the side
|
||||
panel; `↳ commit on forge ↗` deep-links the proposal commit
|
||||
|
|
|
|||
|
|
@ -1446,7 +1446,7 @@ window.marked = marked;
|
|||
// The ApprovalAdded event carries no requested_at; a live-added
|
||||
// approval was queued just now, so client-now is accurate — and
|
||||
// consistent with how fmtAgo compares everything to client-now.
|
||||
// A later /api/state cold-load swaps in the server value. (#272)
|
||||
// A later /api/state cold-load swaps in the server value.
|
||||
requested_at: ev.requested_at != null
|
||||
? ev.requested_at : Math.floor(Date.now() / 1000),
|
||||
};
|
||||
|
|
@ -1627,7 +1627,7 @@ window.marked = marked;
|
|||
if (isApply && a.sha_short) head.append(el('code', {}, a.sha_short));
|
||||
// When the approval was requested — relative time, right-aligned.
|
||||
// Goes amber once it's been pending an hour so a stale request is
|
||||
// obvious at a glance. (issue #272)
|
||||
// obvious at a glance (see docs/web-ui.md::Approval card).
|
||||
if (a.requested_at != null) {
|
||||
const ageSec = Math.max(0, Math.floor(Date.now() / 1000 - a.requested_at));
|
||||
head.append(el('span', {
|
||||
|
|
@ -1755,7 +1755,7 @@ window.marked = marked;
|
|||
'data-confirm': 'update selected meta flake inputs + rebuild affected agents?',
|
||||
});
|
||||
// Bulk select — the full input tree gets long; ticking each box
|
||||
// one by one is tedious (issue #275).
|
||||
// one by one is tedious.
|
||||
const bulk = el('div', { class: 'meta-inputs-bulk' });
|
||||
const selAll = el('button', { type: 'button', class: 'meta-bulk-btn' }, 'select all');
|
||||
const selNone = el('button', { type: 'button', class: 'meta-bulk-btn' }, 'select none');
|
||||
|
|
|
|||
Loading…
Reference in a new issue