Skip to content

feat: discover desks in *-desks group folders - #21

Merged
jennyf19 merged 2 commits into
mainfrom
desk-groups
Nov 8, 2026
Merged

jennyf19 merged 2 commits into
mainfrom
desk-groups

Conversation

@jennyf19

@jennyf19 jennyf19 commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Lets a workshop group its desks into top-level folders whose names end in -desks (for example team-desks/), next to desks/ and the legacy classroom/.

What changes:

  • Cairn finds desks in desks/, classroom/ and every top-level *-desks/ folder, and identifies each desk as <group>/<desk>, so two groups can each have a desk with the same name.
  • When desks come from more than one folder, the board shows a section per folder, ordered by latest activity, with escalations pinned at the top. A workshop that only uses desks/ looks and behaves as before.
  • Stash entries are keyed by desk id. Existing entries keep working: a plain name still means desks/<name>.
  • refresh, open_desk, get_desk_path, stash_desk and restore_desk accept a desk id or a plain name and return the desk's group and id.
  • The Workshop TA and the desk skills describe group folders.
  • CI runs the canvas tests with --experimental-vm-modules, which the new tests need to load extension.mjs with the SDK stubbed.
  • Version 0.1.2.

A separate commit fixes "gap NaN" in the summary bar. It appeared whenever a desk was still waiting for its first signal, because those desks have no gap value; the bar now averages only desks that have one.

Testing: the two canvas test files pass, 32 of 32, with node --experimental-vm-modules --test. Each new test fails without its change. Not yet tried live inside Copilot CLI. The C# dashboard app still scans only desks/ and classroom/; that's a follow-up.

The same change is going to github/awesome-copilot#6302, which is where the installed plugin comes from.

Jenny Ferries and others added 2 commits November 8, 2026 15:28
Desks can now live in any top-level folder whose name ends in "-desks"
(for example team-desks/), alongside desks/ and the legacy classroom/.
Cairn scans every desk root in a stable order (desks, classroom, then
group folders by name) and identifies each desk as "<group>/<desk>", so
two groups can each hold a desk with the same name.

- Stash/restore entries are keyed by desk id. Existing entries that hold
  only a desk name keep meaning desks/<name>.
- When desks come from more than one root, the board pins escalations
  from every group in a section at the top, then shows a header per
  folder ordered by latest activity (folders without signals follow in
  scan order). A workshop that only uses desks/ renders as before.
- Actions accept a deskId or a plain desk name; refresh, open_desk, and
  get_desk_path return each desk's group and deskId.
- The Workshop TA and the desk-open, desk-journal, bench-read,
  signal-write, and workshop-create skills document group folders.
- Canvas tests load extension.mjs in a VM with the SDK stubbed, so CI
  now runs them with --experimental-vm-modules.
- Bump the plugin to 0.1.2.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a3e3bdc9-f091-4246-8b0f-3d3442cd59f2
Desks without a signal yet have no honestyGap or outcomeRating fields, and
the summary bar filtered with !== null, so undefined slipped through: the
average honesty gap became NaN and the badge title overcounted outcome
signals. Only average finite gaps and count outcomes that are present.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a3e3bdc9-f091-4246-8b0f-3d3442cd59f2
@jennyf19
jennyf19 merged commit 0ec91ac into main Nov 8, 2026
1 check passed
@jennyf19
jennyf19 deleted the desk-groups branch November 8, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant