Debugging Plugins: document running replays on .NET 8 (no .NET Framework needed)
Only the DEPLOYED plug-in assembly has to target .NET Framework — the copy the tests
run against does not, and the replay harness uses nothing Framework-specific. Verified:
the shipping harness replays a real captured profile under net8.0 on Linux.
Adds the multi-targeting recipe, with its caveats, and links the three places that
previously said 'Windows or mono' full stop. Tracked for the scaffolder in #269.
6da6f31
Profiling: capture is cross-platform from 1.0.7; be precise about what still needs .NET Framework
Capturing a plug-in profile no longer uses a bundled .NET Framework helper — the
extension starts and stops profiling over the Web API — so the Windows-only framing
across these pages was wrong.
Also corrects a claim that was never right: Requirements said replaying a run under
the debugger 'works everywhere'. The generated test lives in a plug-in test project
targeting net471, so dotnet build compiles it anywhere but dotnet test needs the
Framework test host (on Linux it aborts with "Could not find 'mono' host"). That is
now stated once, precisely, on each page that mentions it.
Adds what capture actually does — clone the step, move its images, disable the
original — since that explains both why naive Web-API step edits never fired it and
why a step can be left disabled if a session is interrupted.
0117937
PCF: point live-form hot reload at the web-resource illustration
The two flows are the same mechanism — intercept the deployed bundle, serve the local build — and the
web-resource page now has real side-by-side captures of it. Rather than stage a PCF-specific pair, the
PCF page links to that and names the one difference: which bundle is intercepted.
982847d
Web Resources: show hot reload as side-by-side captures (#231)
The editor half and the live-app half of the hot-reload flow, each captured at half the screen by the
e2e suite and stitched into one screen: the local bundle being served and the form running it, then the
edited setFormNotification line beside the form showing the new banner.
Stills rather than the GIF #231 asked for, deliberately — each half is a screenshot from a run that
asserted the banner changed, so it stays honest and can be re-generated; a recording drifts from the
product the first time a label changes.
8b1769c
Debugging Plugins: use a real live-triggered trace log
Replaces the trace-log screenshot with one captured by the e2e suite from an actual execution: tracing
switched to All, the plug-in triggered, then the viewer opened on THAT record. The frame shows the
mode, depth, duration and correlation id alongside the plug-in's own Trace() output —
[+0ms] - [ExecuteDataversePlugin] - Onboarded territory '...' as S-CON in the South region.
The suite asserts the rendered document contains that output and names the type that wrote it before
the frame is saved, so this image cannot quietly stop matching its caption (#231).
6c84011
Custom APIs: the loop is live-verified; correct the generated-file paths and the regeneration warning
The deploy and invoke now run against a live environment end to end, so the 'not verified' caveat is
gone. The page also said the wrong thing in two places: the handler goes into the plug-in project (at
<PluginProject>/CustomApi/<Class>.generated.cs) rather than the component root, and the client is named
after the plug-in class. Adds the one-line implementation you have to write, and warns that regenerating
overwrites the whole file including that line (#254).
6071abe
Wiki: how-to only, and a results screenshot with real rows
Dropped the rationale and the "what it doesn't do" discussion — the .fetchxml-versus-in-code section, the
service-worker explanation, the why-inheritance-works reasoning — and the notes about where the
screenshots come from. The pages now say what to click and what happens.
The results screenshot showed an empty grid, because the sample query filtered on an account id that
matched nothing. The query now filters on state, so the frame shows ten accounts with name, number,
telephone and created-on, and the suite fails if the query comes back with no rows.
1f45bc8
Refresh the profiling frames; correct the Locals caption
All twelve frames re-captured after fixing the screenshot helpers: they had been leaving every
previously-clicked button outlined, so a frame for one button appeared to highlight three others too.
Each frame now highlights exactly the control its step is about.
The Locals caption promised more than the frame showed — the Variables pane's scopes are collapsed when
a session pauses, so it showed the call stack and an empty Locals. The prose now says what is there and
tells you to expand Locals for the captured Target; the suite also logs a warning when Locals has not
populated, so that caption cannot silently drift again.
d53bc59
Add FetchXML Generator, PCF, Custom APIs, Copilot tools and multi-component guides (#233)
Five pages the wiki had no coverage of at all, each a step-by-step guide rather than a feature list:
FetchXML Generator — why it works on the literal in your code instead of a separate file, the lens,
answering for placeholders, the results view, the generator, and what "Save to code" guarantees.
Five screenshots from the e2e suite driving the real UI.
PCF Controls — the Field/Dataset and None/React choices and what they mean, the eight card actions,
and when to use the harness versus debugging the deployed control on a live form.
Custom APIs — definition-as-code, generating the handler and the typed client, what the deploy
reconciles, and two honest caveats: Run Custom API is Global-binding-only, and the deploy's
create/update/delete calls are not yet verified against a live environment.
Copilot tools — the five tools, the read-only default, the per-call confirmation, and that no tool
output can carry a secret.
Multi-component repos — what makes a component, why the root owns the connection, how a command
picks its target, and the trap of pasting a connection into a subfolder (it stops following the
root).
Corrections to existing pages: legacy plugin support was removed in 1.0.3 (three pages still promised
"removed in 0.9.0"); the one Windows-only feature is profile CAPTURE, not the spkl path; and the replay
does not use the profiler's assemblies — it decodes the profile with Microsoft.Xrm.Sdk alone, which is
what lets it run in CI.
2c7e71f
Profiling a Plug-in Run: rewrite for users; document both buttons and the breakpoint flow
Replay & debug now replays under the debugger, so the walkthrough covers setting a breakpoint,
replaying, and what you get when it stops (the captured Target and derived values in Locals, a call
stack into the plug-in). Generate Replay Test is documented as the separate commit-and-CI job.
New screenshots throughout, taken from the end-to-end suite against a plug-in that does real work
(validate the name, derive a region and code, trace it) rather than a probe that traced an id. Drops
the two caveats that are now fixed: the CodeLens can stop profiling, and Run/Debug Test at Cursor
works for plug-in tests.
4bf4a18
Add a step-by-step "Profiling a Plug-in Run" walkthrough with screenshots
Covers the whole capture → download → replay loop, with the button, dialog or
picker used at each step outlined in the screenshot. Both ways of choosing which
step to profile are documented: the panel's Profile next run, and the per-step
Profile CodeLens on the [CrmPluginRegistration] attribute.
The frames are captured by the end-to-end suite while it drives the real UI
(DVPT_E2E_SHOTS=1), so they cannot drift from the product without the suite
noticing. The org name and URL are redacted.
Two current limitations are stated rather than glossed over: stopping profiling
from the Profile: On lens does not work (pete-mc/dataverse-powertools#251, use the
Active profiles list), and Run/Debug Test at Cursor plus gutter icons do not work
for plug-in tests (pete-mc/dataverse-powertools#252, use the Testing view).
Linked from the sidebar and from Debugging Plugins.
748900a
Debugging-Plugins: refresh demo GIF (real in-process replay running green) + alt text (#138)
8e45fe1
Debugging Plugins: add slideshow GIF + function screenshots (#136/#138)
Adds a plugin-debugging slideshow GIF at the top and per-function screenshots
(Profile & Debug CodeLens, generated replay test, rendered trace log), captured
from the UI against a demo (contoso) connection.
76cf57d
Home: add cropped Empty-project (blank-menu) image; crop get-started (#127)
The Empty/blank project image was missing and the get-started image was
uncropped (300x820, lots of empty space). Add a clean cropped blank-menu.png
(the Empty project panel with the environment card + Add Component), use it for
the 'Empty workspace' showcase column, and crop get-started.png to content.
f2c251c
Expand Debugging Plugins: prerequisites, trace logs (#137), recommended route, troubleshooting (#136)
Adds the structure #136 asks for, grounded in the shipped code: a dedicated
Prerequisites section, the Trace logs diagnostic (org-header pill + Set/View
Plugin Trace Log commands from #137), a recommended-route callout per OS, and a
Troubleshooting table. Screenshots remain the only live-env-gated part.
1c701d7
Debugging Plugins: add overall-process mermaid diagram (#136)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
87ec9c8
Refresh plugin panel screenshot: in-extension Debugging block (Profile next run)
50424aa
Debugging Plugins: capture is now one-click in-extension on Windows (Profile next run); PRT capture only on other OSes
b126bc8
Refresh panel screenshots for the redesigned Actions panel (2-row buttons, Debugging section, per-project Form Registrations)
f412c24
Plugins: link the new Debugging Plugins (replay-to-debug) page from the debugging callout, trace-logs section, and Learn more
ff4b6fd
Add Debugging Plugins guide (capture in PRT, download + replay-to-debug in VS Code)
c6fa3df
sidebar: Upgrading Projects
7fd1486
Upgrading-Projects guide (legacy plugin path, config refresh diffs, version reference); refresh Home/Plugins/Portals/Webresources for pac + cross-platform + 0.7/0.8 features
b1c1057
Refresh screenshots for the card-based actions panel; add get-started + walkthrough images
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2b276c7
Update for the Actions panel (cards), walkthrough, register-on-deploy, cross-platform typings (#78/#94/#100)
Text only — screenshots refreshed separately. NOT pushed until the release ships.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
92b32a8
Overhaul wiki into step-by-step guides with MS Learn best practices (#81)
Rewrite each workflow as a guided walkthrough (prerequisites -> numbered steps
-> verify -> troubleshooting) and link out to Microsoft Learn where the extension
wraps a Microsoft concept:
- New 'Connecting & Authentication' guide: interactive sign-in + service
principal, secret storage, Switch/Refresh Environment (0.5.x auth), and
auth troubleshooting. (The old docs only covered service principal and the
now-renamed 'Update Connection String'.)
- New 'Portals / Power Pages' guide (pac pages connect/download).
- New central 'Troubleshooting' page + cross-platform expectations.
- Getting Started, Solutions, Web Resources, Plugins rewritten as step-by-step
guides with MS Learn links (ALM/solutions, web resources, plugin best
practices + debugging).
- Fix stale details: webpack output is <prefix>_library.js (not prefix_bundle.js);
Generate Typings must run before the first build (it emits dg.xrmquery.web.min);
document Windows-only typings clearly.
- Sidebar + Home updated for the new pages.
84d71f2
Rebuild wiki for 0.4.0: pac, cross-platform, current feature set
Rewrites Home, Getting Started, Solutions, Web Resources, and Plugins to match
the current extension: pac-based solutions (no spkl), direct Web API webresource
deploy, the modern dotnet/pac plugin flow with DataverseUnitTest and early-bound
model builder. Removes the obsolete Azure DevOps pipeline / spkl content and adds
screenshots captured from the real extension UI.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
183e725