mirror of
https://github.com/andrewyng/openworker.git
synced 2026-09-10 22:20:27 +00:00
Tool-request card speaks plainly; declining re-checks for a user-installed copy
Fact strip: 'OpenWorker installs its own verified copy from <publisher>' replaces supply-chain jargon. On decline the engine re-resolves — a copy the user installed themselves is handed to the agent as theirs, not treated as a refusal.
This commit is contained in:
@@ -22,8 +22,11 @@ test("request_tool surfaces a card naming the tool, the reason and the pinned ve
|
||||
// the coworker's quoted reason (mixing them is what made the card confusing, 2026-08-14).
|
||||
const facts = card.locator(".toolreq-facts");
|
||||
await expect(facts).toContainText("8.30.1");
|
||||
await expect(facts).toContainText(/checksum-verified/i);
|
||||
await expect(facts).toContainText("from github.com/gitleaks");
|
||||
// Plain-language consent: who installs (OpenWorker), from where, and the self-install
|
||||
// alternative — no supply-chain jargon on the card (owner feedback 2026-08-15).
|
||||
await expect(facts).toContainText(
|
||||
"OpenWorker installs its own verified copy from github.com/gitleaks — or install it yourself and continue.",
|
||||
);
|
||||
// Declining must read as a normal choice that continues the run, not a failure.
|
||||
await expect(card.getByTestId("toolreq-skip")).toHaveText("Continue without it");
|
||||
});
|
||||
|
||||
@@ -30,20 +30,25 @@ export function ToolRequestCard({
|
||||
coworker's quoted ask above — mixing the two voices is what made the card confusing. */}
|
||||
{item.installable ? (
|
||||
<div className="toolreq-facts">
|
||||
<code>
|
||||
{item.tool}
|
||||
{item.version ? ` ${item.version}` : ""}
|
||||
</code>
|
||||
{item.summary && <span className="toolreq-fact">{item.summary}</span>}
|
||||
<span className="toolreq-fact">pinned & checksum-verified</span>
|
||||
{item.source && <span className="toolreq-fact">from {item.source}</span>}
|
||||
<div className="toolreq-factrow">
|
||||
<code>
|
||||
{item.tool}
|
||||
{item.version ? ` ${item.version}` : ""}
|
||||
</code>
|
||||
{item.summary && <span className="toolreq-fact">{item.summary}</span>}
|
||||
</div>
|
||||
<div className="toolreq-explain">
|
||||
OpenWorker installs its own verified copy
|
||||
{item.source ? ` from ${item.source}` : ""} — or install it yourself and
|
||||
continue.
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className="toolreq-facts">
|
||||
<span className="toolreq-fact">
|
||||
No verified build is available for this machine — install it yourself if you want
|
||||
this check, or continue and the coworker will note the gap.
|
||||
</span>
|
||||
<div className="toolreq-explain">
|
||||
OpenWorker has no verified build for this machine — install it yourself if you
|
||||
want this check, or continue and the coworker will note the gap.
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<div className="dirreq-actions">
|
||||
|
||||
@@ -800,14 +800,15 @@ button.btn.danger { color: var(--accent); }
|
||||
/* request_tool fact strip — the product's own metadata (version, publisher, checksum),
|
||||
deliberately NOT italic so it can't be misread as the coworker still talking */
|
||||
.toolreq-facts {
|
||||
display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
|
||||
font-size: 12.5px; color: var(--muted); font-style: normal;
|
||||
background: var(--paper); border: 1px solid var(--line); border-radius: 8px;
|
||||
padding: 7px 10px; margin: 2px 0 10px;
|
||||
}
|
||||
.toolreq-facts code { color: var(--ink); font-size: 12.5px; }
|
||||
.toolreq-fact + .toolreq-fact::before,
|
||||
.toolreq-facts code + .toolreq-fact::before { content: "· "; color: var(--muted); }
|
||||
.toolreq-factrow { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
|
||||
.toolreq-factrow code + .toolreq-fact::before { content: "· "; color: var(--muted); }
|
||||
.toolreq-explain { margin-top: 4px; }
|
||||
.toolreq-factrow + .toolreq-explain { margin-top: 5px; }
|
||||
/* a disabled Install must LOOK disabled — the whole card exists to not oversell */
|
||||
.dirreq-actions .btn:disabled { opacity: 0.45; cursor: not-allowed; }
|
||||
.dirreq-pathrow { display: flex; gap: 8px; align-items: center; }
|
||||
|
||||
Reference in New Issue
Block a user