Repository navigation
feat: discover desks in *-desks group folders - #21
Merged
Merged
Conversation
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
This was referenced Nov 8, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lets a workshop group its desks into top-level folders whose names end in
-desks(for exampleteam-desks/), next todesks/and the legacyclassroom/.What changes:
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.desks/looks and behaves as before.desks/<name>.refresh,open_desk,get_desk_path,stash_deskandrestore_deskaccept a desk id or a plain name and return the desk's group and id.--experimental-vm-modules, which the new tests need to loadextension.mjswith the SDK stubbed.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 onlydesks/andclassroom/; that's a follow-up.The same change is going to github/awesome-copilot#6302, which is where the installed plugin comes from.