Skip to content

History

Revisions

  • Clarify exact-window coverage, SQL fan-out and unmerged report fixes Keep exact 90/180-day requests explicit even when weekly D7 evidence leaves a leading gap. Distinguish four report admissions from SQL command/connection fan-out, and identify draft follow-up fixes as excluded from the tested dev baseline and draft release. No readiness or candidate Azure-performance claim is added. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: b9a6835b-97dc-4e01-a9bd-1193fbd5fc53

    @sambetts sambetts committed Sep 5, 2026
    0ea5d4c
  • Document actual Azure licence-report limits and unreleased status Record the synthetic S4/S6 review, exact coverage limits and verified disposable-resource cleanup without identifying the benchmark environment. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: b9a6835b-97dc-4e01-a9bd-1193fbd5fc53

    @sambetts sambetts committed Sep 5, 2026
    751fcc2
  • Document the Licence activity report (unreleased) Adds a Licence activity guide and links it from the sidebar, Web Portal and Security Model pages. The page is explicitly labelled as describing an unreleased feature, because it is not in the current stable release. The guide leads with interpretation rather than clicks, because almost every way of getting this report wrong is a reading error: assigned users overlap across SKUs and must not be summed; unknown coverage is not a measured zero and must never place someone in the least-active list; supporting action counts are snapshot averages, not manufactured daily totals; and the bands describe frequency within available samples, not a common unit of work across products. Also records the limits an operator will actually hit: 1-100 most/least and page size, 100-character search, 1-10,000 pages, top-50 demographic breakdowns, a 100-option-per-dimension filter catalogue that says when it truncates, the five- and two-minute cache lifetimes, four concurrent shared report loads, the 30-second deadline and the 1 MiB response cap. Includes the measured scale limit honestly: on a synthetic 300,000-user, 50-SKU database the 180-day window did not finish inside the 20-second command timeout, so very large tenants should use shorter windows and will see a retryable error rather than a slow page. That measurement was local rather than Azure SQL and is labelled as such. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: b9a6835b-97dc-4e01-a9bd-1193fbd5fc53

    @sambetts sambetts committed Sep 5, 2026
    0d3f8e0
  • Illustrate the Copilot Adoption user guide with screenshots The guide was thorough prose with no images, so a reader had no idea what any of it looked like. Adds 26 screenshots captured from a demo deployment populated with generated data - the user names, agent names and figures are fictional. Placed one orientation shot up front and then a unique image per card or tab, so no view is repeated. Captured card by card rather than full-page: a full-page shot of the Agents tab is over 20,000px tall and unusable. Images are captured at 2x and downscaled to 1600px wide with palette encoding, keeping every file well under 300KB. Also documents a real usability trap on the Licence opportunities tab: the table is wider than the panel holding it, so the Justification column - the whole point of that tab - sits off the right edge until you scroll sideways, and is squeezed into a 118px column when you get there, which is why those rows are so tall. Exporting is the faster way to read it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Aug 27, 2026
    b715ec3
  • Document the fuller Copilot audit-field capture, and correct the build number The Copilot page described the usage-report and interaction-history imports but nothing from the work that persists the audit fields the importer previously parsed and threw away. Adds sections for interaction contexts (every context, not just the first file or meeting) and AI system plugins, extends the accessed- resource and database-table tables, and records the no-backfill consequence: the Management Activity API only retains content for about 7 days, so these fields populate for newly imported interactions only. Also corrects a statement that is now wrong: prompt messages ARE imported (IDs and sizes only, never text), where the page previously said user prompts are not tracked. Five pages cited "Stable build 1791" for the Copilot reporting work, the Teams add-on removal and the interaction-history import. That build does not exist - nothing was published between 1756 and 1807, because 1796 and 1806 were only ever drafts. Corrected to 1807 throughout. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Aug 27, 2026
    cf7378f
  • Document the browser-based SharePoint sign-in and move superseded setup to a legacy page The installer no longer uses an embedded Internet Explorer cookie login for SharePoint; it opens the admin's default browser and signs in with OAuth. That changes what admins need to prepare, so the deployment docs are updated to match. Nothing has been deleted. Advice that no longer applies to current releases moves to a new "Legacy SPO web setup" page: the old cookie login, the username/password AITracker PowerShell scripts and their SecureString flow, the MFA workaround, and the SharePoint Online Management Shell installer-machine prerequisite. Updated pages: * Prerequisites - deployment credentials now describe an interactive sign-in rather than stored SharePoint passwords; installer machine needs a modern browser rather than the SPO Management Shell; added the login.microsoftonline .com and loopback network rules. * Deployment Guidance - rewritten SharePoint tab section covering who needs to sign in and why, and the optional own-app-registration fields. * App Registrations Setup - states plainly that two registrations is the whole list, since sign-in reuses an app Microsoft already publishes. * Manual Install Web Tracking and Config - points at the installer first and keeps only the PnP/on-premises scripts; the basic-auth walkthrough moves to the legacy page. * Troubleshooting - new section for sign-in failures (loopback blocked, consent errors, AADSTS50194, access denied on the app catalog, slow app-catalog propagation). The old MFA IdcrlException workaround moves to the legacy page, as the browser sign-in supports MFA natively. * Uninstall - use the installer's Remove AITracker button; the PowerShell is the alternative. * Release Notes - the sign-in change, and a Code maintenance line for the dependency work. The move also strips a real demo-tenant name and a real user address out of the sample script output, replacing them with contoso placeholders. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 43dbb877-89bb-44dd-8d93-27a78f34c7ca

    @sambetts sambetts committed Aug 26, 2026
    0fffcb4
  • Document the Insights / Administration split in the web portal The portal is now split into two areas - Insights (what the data says) and Administration (running the service) - with a header area switcher and a per-area left nav, replacing the single flat tab bar. Adds a 'The web portal' page giving admins a tour of both areas and every destination in them, including where things moved to, and links it from the sidebar. Updates the two pages that pointed at the old 'Health tab' to name the area first (Administration -> Service health). Old hash addresses such as #/health are not redirected, so the new page calls that out explicitly for anyone with saved bookmarks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Aug 26, 2026
    e5a35ac
  • Document the Copilot usage report and interaction history imports Stable build 1791 added two Graph-based Copilot imports and removed per-user Teams apps tracking. None of it was in the wiki, and the pages still told admins to grant a permission the product no longer uses and to set a config flag that no longer exists. New permission - the important one: AiEnterpriseInteraction.Read.All, for the Copilot AI interaction history (prompt history) import. Unlike every other permission the solution needs, the installer does NOT request or grant this one - an Entra admin has to add it to the runtime app registration and consent to it explicitly. It also needs the M365_COPILOT_BUSINESS_CHAT service plan per user, and in practice a UserGroupsFilter scope, because the endpoint is one HTTP call per user and an unscoped run at the 200k-user design target means 200k calls per cycle. Removed permission: TeamsAppInstallation.ReadForUser.All is no longer used anywhere in the code (verified) and can be revoked. It existed for the per-user Teams app-install tracking this release removes. Also corrected: GraphUserApps still appeared in the ImportJobSettings examples on the manual-setup and troubleshooting pages, so anyone following them would have configured a flag that no longer exists. The occurrence in Release Notes.md is a quoted historical payload and is deliberately left alone. Privacy is now stated explicitly rather than left to be inferred. Security Model previously said "Nothing about your tenant leaves your environment", which is not true once Cognitive Services is configured: prompt text is sent to Azure AI Language, and while the text itself is not stored, the extracted keywords ARE - and a keyword can amount to a whole short prompt. That claim is now qualified and a "Copilot prompt content" section spells out the three states (import off, import on without cognitive, import on with cognitive) and the three controls that bound it. Pages changed: Prerequisites - permission table, plus a section on the three prerequisites for interaction history Configuration Reference - GraphCopilotUsageReports and CopilotInteractionHistory flags; GraphUserApps marked removed; stale Redis key Copilot - full sections for both new imports Data Collection - what each import stores, and the removed-feature notice Security Model - Copilot prompt content Installation / Troubleshooting - stale ImportJobSettings examples All cross-page anchors were verified to resolve against the real headings, and the diff was scanned for GUIDs, tenant domains, SharePoint URLs and addresses - none added. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 87347b97-407c-4dbe-bae5-e8880d0fc77d

    @sambetts sambetts committed Aug 26, 2026
    392a1e3
  • Copilot adoption: document the App Insights telemetry and monitoring queries New section 9 covering the CopilotAdoptionAnalysis event: its dimensions and measurements, why per-step durations are measurements rather than dimensions, and why one event is emitted per analysis rather than per request. Includes ready-made Kusto queries for the three questions an operator has - is any report degrading, how slow is it and which step owns it, is it approaching the timeout - and two suggested alert rules. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 87347b97-407c-4dbe-bae5-e8880d0fc77d

    @sambetts sambetts committed Aug 24, 2026
    07dad06
  • Copilot adoption: record the measured scale finding and re-scope rollups Benchmarked on a synthetic 200k-user / 12M-interaction tenant. The dominant cost was not the fact scan the earlier audit assumed - it was asking for three COUNT(DISTINCT) in one GROUP BY, which forces SQL Server to spool the input and process each distinct separately, and which pushed the query past the 90s command timeout so the report degraded to a warning on a large tenant. 28-day window went from 114.7M logical reads and 281s to 772k and 73s; 365-day from 115.2M and 303s to 819k and 135s. Correctness gated first: 33,999 rows each side, zero differing. Rollups are re-scoped rather than dropped: still the answer for the widest windows and the prerequisite for credit analytics, but no longer the first fix. No customer data was used or recorded. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 87347b97-407c-4dbe-bae5-e8880d0fc77d

    @sambetts sambetts committed Aug 24, 2026
    6c99b69
  • Copilot adoption: say licence rather than seat throughout the docs Matches the product change: seat is licensing shorthand that does not travel, and licence is the word already on the customer invoice and in the admin centre. 44 lines across the spec and the user guide, including the Reclaimable licences tile name and the FAQ. Two headings reworded rather than swapped, because a straight substitution made them contradict themselves - a Copilot-branded SKU is what is not counted as a Copilot licence. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 87347b97-407c-4dbe-bae5-e8880d0fc77d

    @sambetts sambetts committed Aug 24, 2026
    4ef1905
  • Copilot adoption: record why the last funnel step is not a loss Section 5 now states that the funnel's final step reads 'N not yet Champions' in neutral grey rather than red 'lost here', and why: everyone who reaches Habitual has formed a habit by the tool's own definition (section 3.2), and the action catalogue marks Established as needing no action. Flagging them as lost would contradict our own advice and aim enablement budget at the people already succeeding. Written down so a future change does not quietly revert it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 87347b97-407c-4dbe-bae5-e8880d0fc77d

    @sambetts sambetts committed Aug 24, 2026
    5d1b048
  • Copilot adoption: document the window definition and the demo-data scenario Records two things that were previously only true in code. Section 3.1 now states that 'last N days' means exactly N distinct calendar dates and explains why the window starts N-1 days back: starting N days back spans N+1 dates, so the numerator could exceed the window the frequency target divides by. New section 8 documents the FakeDataGen adoption scenario - what it plants, why random scatter makes the tool look broken, and the fact that persona targets are re-scored through the real scoring code on every run so the demo data cannot silently stop matching this page. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 87347b97-407c-4dbe-bae5-e8880d0fc77d

    @sambetts sambetts committed Aug 24, 2026
    3fb6206
  • Copilot adoption: correct PAX name and note AI-in-One's own licensing caveat Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 492674d8-e6a9-4e73-a224-c598ee04110b

    @sambetts sambetts committed Aug 23, 2026
    2ed02a4
  • Copilot adoption: overview sections, renamed actions, three new design principles Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 492674d8-e6a9-4e73-a224-c598ee04110b

    @sambetts sambetts committed Aug 23, 2026
    b3b31ab
  • Add a Copilot Adoption user guide The existing page is a specification - design principles, metric definitions and a review checklist for people changing the tool. It does not tell an admin how to actually use it. Adds a task-oriented guide: prerequisites and what each missing import costs you, a first-fifteen-minutes walkthrough, a tour of the six tabs, and three worked scenarios (a reclaim review before renewal, planning an enablement programme, and proving a programme worked with before/after snapshots). Plus a table of how to read each chart with its common misreading, a glossary of every term the tool uses, what each warning means and what to do about it, and an FAQ covering the questions the numbers actually provoke - why adoption can be 100% while habit is near zero, why figures differ from the M365 admin centre, and why a Copilot-branded SKU may not count as a seat. Cross-linked from the specification and the sidebar. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 492674d8-e6a9-4e73-a224-c598ee04110b

    @sambetts sambetts committed Aug 23, 2026
    46fc088
  • Copilot Adoption spec: replace the backlog with a researched gap analysis Assessed against Microsoft's 2026 tooling (admin-centre Copilot dashboard, Copilot Control System measurement pillar, Viva Business Impact Report, the free Analytics Hub templates) and the commercial tools in this space. Records the strategic shift - 'who is using Copilot' is now a solved native capability, and the frontier is credit/consumption cost, defensible value, and readiness grounded in real data exposure - then tiers the gaps by whether the data is already imported. Most of Tier 1 is surfacing signal we already store (per-interaction credit estimates, AI model, sensitivity labels on accessed resources) rather than new imports. Also records what we deliberately reject and why: AI-generated narrative summaries and named-user fluency leaderboards both breach stated principles, and saying so here stops them being re-proposed each time Microsoft ships one. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 492674d8-e6a9-4e73-a224-c598ee04110b

    @sambetts sambetts committed Aug 23, 2026
    71e9dd8
  • Copilot Adoption spec: Excel export and the visual vocabulary Documents the twelve-sheet Excel export and its point-in-time snapshot purpose, why it is written with no third-party dependency, and why the Report sheet has to carry the thresholds for two snapshots to be comparable. Records the visual vocabulary against AI-in-One (gauges and the radar profile have no equivalent there), and adds review-checklist items for chart-type choice and for keeping the page and the workbook in step. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 492674d8-e6a9-4e73-a224-c598ee04110b

    @sambetts sambetts committed Aug 23, 2026
    33f109e
  • Copilot Adoption spec: record capability coverage against AI-in-One Adds a per-page comparison table against microsoft/AI-in-One-Dashboard so a future change cannot silently regress a capability, documents the agents and unlicensed-usage screens, and states the two things deliberately not copied (the AI-generated narrative page, and a per-user leaderboard naming individuals). Refreshes the known-gaps list. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 492674d8-e6a9-4e73-a224-c598ee04110b

    @sambetts sambetts committed Aug 23, 2026
    9fa5669
  • Add the Copilot Adoption Tool specification page Describes what the Copilot Adoption area is for, its design principles (every assertion explains itself; say a thing once; never show a percentage without its counts; never claim a metric the data cannot support), every metric definition and formula, the data sources with their caveats, and a feature-review checklist to run against any future change to the tool. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 492674d8-e6a9-4e73-a224-c598ee04110b

    @sambetts sambetts committed Aug 23, 2026
    7fe0b0d
  • docs: replace FTP deployment guidance with HTTPS Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 92f5afee-7f31-4689-983b-c414c8429041

    @sambetts sambetts committed Aug 12, 2026
    767db13
  • Docs: Teams application access policy for Copilot meetings (#215) + Service Bus Premium in private deployments (#228) - Copilot: new section explaining that OnlineMeetings.Read.All alone is not enough - a Teams application access policy (New-CsApplicationAccessPolicy / Grant-CsApplicationAccessPolicy) is also required, what the 403 looks like, and that only meeting metadata is affected. - Prerequisites: OnlineMeetings.Read.All row now points at that section. - Private Endpoints: new section on why the Teams calls import needs Service Bus on Premium in a private deployment, the exact runtime error (which looks like an auth failure but is a network block), the three valid options, and what the installer now does automatically.

    @sambetts sambetts committed Aug 11, 2026
    393258e
  • Configuration Reference: full ImportJobSettings example (all flags) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37f03090-2e24-45ff-b406-4d3cae3a6d50

    @sambetts sambetts committed Jul 22, 2026
    3cbc420
  • Document ImportPowerPlatform, ResolveCopilotResourceMetadata and AUDIT_PERBATCH_DEDUP_CACHE Power Platform is now an opt-in ImportJobSettings workload; Copilot resource resolution and the audit dedup-cache rebuild are new tuning settings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37f03090-2e24-45ff-b406-4d3cae3a6d50

    @sambetts sambetts committed Jul 22, 2026
    d0db35d
  • Docs: surface Copilot data/stats in nav; installer downloads via GitHub Releases only - Home & sidebar: link the Copilot analytics page from the data-documentation sections so the recorded Copilot stats/data are discoverable - Deployment Guidance: remove the retired m365advancedanalytics.azurewebsites.net downloads site; solution assets are on the GitHub Releases page only Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 36e1f07c-e2e8-4c7c-8a75-c040fe7ffb68

    @sambetts sambetts committed Jul 16, 2026
    d10629a
  • Add dedicated Runbook Schedules page with sidebar nav Extract the 'link runbooks to schedules' walkthrough from Analytics.md into a standalone page and link it from the sidebar under Solutions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Jul 16, 2026
    f12d2ee
  • Add dedicated 'Runtime app reply URLs' page and link from setup Move the runtime app reply URL / redirect URI guidance out of the App Registrations Setup page into a focused page. Consolidate the duplicate 'Add Platform configurations' and 'Enable Implicit Grant Flow' sections, document the exact HTTPS-root-with-trailing-slash reply URL, the ID-tokens requirement for the hybrid code id_token flow, multiple environments and AADSTS50011 troubleshooting. Keep the original heading/anchor and link to the new page from the setup page, sidebar and manual-install page. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Jul 7, 2026
    f8bb0ae
  • Health Alerts: point the at-a-glance lead-in at the admin app's Health tab Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Jul 3, 2026
    f03820a
  • Health Alerts: add repeatable alert-setup procedure + health-telemetry rules Adds a generic 'add an alert' procedure (log-search vs metric + action group), new rules for component health (HealthCheck), web-job heartbeat, credential expiry and exception-spike, and a lead-in to the in-app Health tab. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Jul 3, 2026
    749ad1d
  • Document importer custom events (FinishedImportCycle / FinishedSectionImport) in Monitoring Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

    @sambetts sambetts committed Jul 3, 2026
    06381b1