Add cost-aware Workshop desk profiles - #2532
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83dd4f49-a03d-44a0-bdd1-8c4f54da8ec2
🔒 PR Risk Scan ResultsScanned 7 changed file(s).
|
There was a problem hiding this comment.
Pull request overview
Adds cost-aware Workshop desk launch profiles while retaining full connectivity when needed.
Changes:
- Adds repo/connected profile selection and MCP discovery.
- Adds launch-profile tests and Windows handling.
- Updates documentation and bumps
signals-dashboardto 0.2.0.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
plugins/the-workshop/README.md |
Documents launch profiles. |
extensions/signals-dashboard/package.json |
Adds tests and bumps version. |
extensions/signals-dashboard/launch-profile.test.mjs |
Tests profile helpers. |
extensions/signals-dashboard/launch-profile.mjs |
Implements profile argument generation. |
extensions/signals-dashboard/extension.mjs |
Integrates profile discovery and launching. |
extensions/signals-dashboard/.github/plugin/plugin.json |
Updates extension metadata. |
.github/plugin/marketplace.json |
Regenerates marketplace metadata. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83dd4f49-a03d-44a0-bdd1-8c4f54da8ec2
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Suppressed comments (1)
extensions/signals-dashboard/extension.mjs:180
exitCodeonly reflects the direct child. If a wrapper exits while a descendant keeps running (and, for example, keeps the stdout pipe open), timeout/overflow reaches this function with a non-nullexitCodeand returns without terminating the process group. That can leak an Agency/Copilot descendant even though discovery has already failed. Track and terminate the spawned tree independently of the parent’s exit state, while guarding against stale/reused PIDs.
if (!child || child.exitCode !== null) return;
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83dd4f49-a03d-44a0-bdd1-8c4f54da8ec2
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Suppressed comments (1)
extensions/signals-dashboard/extension.mjs:812
- Each new profile control has the accessible name “connected”, so screen-reader users cannot tell which desk it will open when several cards are present. Include the desk name and profile in an
aria-label(the visual text can remain unchanged).
<button data-act="open" data-profile="connected" data-desk="${esc(sig.deskName)}"
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 83dd4f49-a03d-44a0-bdd1-8c4f54da8ec2
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Suppressed comments (1)
extensions/signals-dashboard/launch-profile.mjs:77
- When discovery fails,
discoverySucceededis false but Agency still receives--no-default-mcps, so the resulting launch does not preserve the connected tool surface. This contradicts both the PR’s stated fail-open behavior and the canonical #13 requirement that discovery failure fall back to connected behavior. Gate this flag on successful discovery as well, and update the test that currently codifies removal of defaults after failure.
if (useAgency) argv.push("--no-default-mcps");
Summary
This updates The Workshop's Cairn canvas with cost-aware topic-desk launch profiles:
repoprofile: keeps the Workshop root available for cross-desk journals/artifacts while suppressing ambient Copilot plugin MCPssignals-dashboardto0.2.0Why
A matched end-to-end Workshop workflow (own journal read, cross-desk artifact read, signal write, journal update, deterministic validation) produced equivalent outcomes across profiles.
On a tool-heavy environment, the interaction-safe repo profile versus the full loadout measured:
External users without ambient plugin MCPs retain effectively the same tool surface, plus explicit access to the verified Workshop root.
Compatibility and safety
WORKSHOP_DESK_AGENToverrides remain authoritative and fail closed when unavailable.cmd/.batshims use System32cmd.exewith integration-tested quotingCanonical source
Validation
npm run --prefix extensions/signals-dashboard test— 8 passednode --check extensions/signals-dashboard/extension.mjsnpm run plugin:validatenpm run buildeng/fix-line-endings.sh0.2.0