Repository navigation
Import work items and Copilot frames from Microsoft Whiteboard (1.7.4) - #178
Merged
Merged
Conversation
An Azure DevOps work item card becomes Markdown titled Work item with its type, ID, title, owner, and state. A frame Copilot drew becomes a rectangle in its theme's border and translucent fill with its title as a bold label. The tokenizer now yields text that follows an end tag, because a work item's title comes after its bold ID. Read from the web client's WorkItemConnected and frame component, because no sample holds either. They join the 1.7.4 notes, which is not released yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
marcosqlbi
added a commit
that referenced
this pull request
Sep 30, 2026
Custom objects (`CustomElement`) were the last object type in the Microsoft Whiteboard web client that the importer reported as left out. No sample holds one, so the markup was read from the web client's public code, as for #174 to #178. A custom object is a widget from a plug-in, named by its kind in `data-custom-widget-kind`. The web client registers only two examples, `example.counter` and `example.embed`. For any other kind, and for every kind when its `EnableCustomElement` flag is off, it draws a gray box that fills the object and says the widget is not available or disabled. The box is at least 120 × 80 pixels, and its own size is `100%`. The export therefore holds the box and the kind, not the widget. The importer makes a custom object a rectangle of its size in the gray the web client draws, with *Custom object* and the kind as its text. Its size is the first one given in pixels, because a percentage is the widget filling its box; without one it takes the smallest box. A custom object without a kind is still reported. A new Core smoke test covers a sized, disabled `example.counter`, a centered widget with only percentage sizes, and one without a kind. All 19 samples still import unchanged. The solution builds clean and both harnesses pass. With this, every `data-whiteboard-type` the web client names has a reader; what stays reported is content drawn as a placeholder or missing the element that identifies it. 1.7.4 is not released yet, so its notes entry now includes custom objects and the version stays 1.7.4. The import doc describes them. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Azure DevOps work items (
WorkItem) and frames that Copilot draws around the objects it groups (Frame) were reported as left out. No sample holds either, so the markup was read from the Microsoft Whiteboard web client's public code, as for #174 to #177.Work items.
WorkItemConnecteddraws adiv.WorkItemcard, 220 × 145 pixels in the exported stylesheet, when the web client'sEnableWorkItemsflag is on. Aspan.WorkItemTextFieldholds astrongwith the type'simg.WorkItemIcon(itsaltnames the type) and the ID, then the title; after it come the assignee and, inspan.WorkItemText, the localized word State and the state. The importer makes it a Markdown text container titled Work item: the type and ID in bold before the title, then the assignee and the state, as wide as the card.The title follows
</strong>, andHtmlTagskept only the text that follows a start tag. It now also yields the non-blank text that follows an end tag as a tag named#text. No reader matches that name, and all 19 samples import with the same items before and after the change.Copilot frames. The frame component draws a
section.whiteboardFramewith its size and a theme class (neutral, blue, green, purple, orange) whenEnableFramesis on. The stylesheet gives it a 3-pixel border, a translucent fill, 14-pixel corners, and a 44-pixel title bar with bold 15-pixel text. The importer makes it a rectangle with the theme's border and fill and its title as a bold label in the theme's text color. It is square rather than rounded, because 14 pixels on a frame is close to square while the board's rounded rectangle scales its corners with the shape and crowded the title. The sources are left out: the export keeps only the first one's name in a pill, and the list is a popover drawn only when open.A work item or a frame drawn as a placeholder is still reported.
A new Core smoke test covers a work item card, a blue frame with a source pill, and both drawn as placeholders; the page was also drawn through the application's renderer. The solution builds clean and both harnesses pass.
1.7.4 is not released yet, so its notes entry now covers work items and frames, and the version stays 1.7.4. The import doc and the site's export page describe them.
🤖 Generated with Claude Code