Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
5febefe
docs: add design spec for 1DS telemetry infra
Apr 20, 2026
fa0e782
docs: add 1DS telemetry implementation plan
Apr 22, 2026
e46d074
docs(telemetry): drop 1DS SDK; adopt detached-dispatcher hooks
Apr 22, 2026
b1e761d
docs(plan): revise 1DS telemetry plan for dispatcher-based design
Apr 22, 2026
942d262
feat(telemetry): scaffold shared/telemetry directory
Apr 22, 2026
96cfdad
feat(telemetry): add per-process session id helper
Apr 22, 2026
8676d3b
feat(telemetry): add consent read/write with schema-version gating
Apr 22, 2026
38487c6
feat(telemetry): add pre→post correlation via OS temp file
Apr 22, 2026
2d9b00c
feat(telemetry): add no-op scrubber placeholder
Apr 22, 2026
26d6131
feat(telemetry): add strict-allowlist event builders
Apr 22, 2026
a6506a0
feat(telemetry): add standalone emit-dispatcher child CLI
Apr 22, 2026
77b1d3b
feat(telemetry): harden emit-dispatcher fail-closed guarantees
Apr 22, 2026
2a99ddb
feat(telemetry): add emit-spawn helper for detached dispatcher
Apr 22, 2026
78a3094
feat(telemetry): harden emit-spawn env scope + use execPath
Apr 22, 2026
bbdab5c
feat(telemetry): add withTelemetry wrapper using fireAndForget
Apr 22, 2026
b46a0ed
feat(telemetry): add check-consent CLI
Apr 22, 2026
bbc050b
feat(telemetry): add record-consent CLI
Apr 22, 2026
d696c95
feat(telemetry): add sync-to-plugin script
Apr 22, 2026
1ed23e8
docs(telemetry): add consent reference doc
Apr 22, 2026
ddc4052
feat(power-pages): sync shared telemetry library into plugin
Apr 22, 2026
54e619a
feat(power-pages): add PreToolUse:Skill telemetry hook
Apr 22, 2026
4da89a1
feat(power-pages): emit skill_completed from existing PostToolUse hook
Apr 22, 2026
249cd9e
feat(power-pages): register PreToolUse:Skill telemetry hook
Apr 22, 2026
d1fdcbd
feat(power-pages): add Phase-1 telemetry-consent check to create-site
Apr 22, 2026
675fccd
feat(power-pages): add Phase-1 telemetry-consent check to remaining t…
Apr 22, 2026
7dd1b5c
feat(power-pages): add telemetry-runner helper for script instrumenta…
Apr 22, 2026
6967545
feat(power-pages): instrument check-activation-status with withTelemetry
Apr 22, 2026
600e5c0
feat(power-pages): instrument verify-dataverse-access with withTelemetry
Apr 22, 2026
60758b4
feat(power-pages): instrument render-audit-report with withTelemetry
Apr 22, 2026
8b1242e
feat(power-pages): instrument clear-site-cache with withTelemetry
Apr 22, 2026
3131652
feat(power-pages): instrument skill validators with runInstrumented
Apr 22, 2026
67f7410
docs(power-pages): document telemetry conventions
Apr 22, 2026
5dcd8b6
docs: document shared telemetry convention at repo level
Apr 22, 2026
16a39ed
docs(telemetry): add shared library README
Apr 22, 2026
6dec0fb
docs: link telemetry notice from root README
Apr 22, 2026
66eb7bf
feat(telemetry): append events to local JSONL when iKey is placeholder
Apr 22, 2026
347852a
docs(telemetry): add slash-command telemetry design spec
Apr 23, 2026
9903bc3
docs(telemetry): note semantic gap in skill_completed on programmatic…
Apr 23, 2026
682b6f8
docs(telemetry): add implementation plan for slash-command telemetry
Apr 23, 2026
02ecf67
feat(telemetry): add prompt-detector for slash-command skill detection
Apr 23, 2026
e9329c1
feat(telemetry): add emit-from-prompt orchestrator for slash-command …
Apr 23, 2026
6b3dddb
test(telemetry): assert prompt-detector and emit-from-prompt are synced
Apr 23, 2026
04ee885
test(power-pages): add integration test for user-prompt telemetry hook
Apr 23, 2026
a8ca02f
feat(power-pages): add UserPromptSubmit telemetry hook for slash comm…
Apr 23, 2026
3352d58
feat(power-pages): register UserPromptSubmit telemetry hook
Apr 23, 2026
8b3d93b
fix(telemetry): forward POWER_PLATFORM_SKILLS_{CONFIG_DIR,FAKE_HTTPS}…
Apr 23, 2026
f0f4168
chore(power-pages): sync slash-command telemetry helpers from shared
Apr 23, 2026
0f21d40
fix(telemetry): reshape 1DS envelope to remove rejected baseType/base…
Apr 23, 2026
bde5915
fix(telemetry): restore envelope.name=PagesPowerPlatformExtEvent for …
Apr 23, 2026
818bbac
fix(telemetry): match 1ds-core-js SDK camelCase+stringified eventInfo…
Apr 24, 2026
64e1e3b
fix(telemetry): set envelope.name to VscodeEvent to match tenant anno…
Apr 24, 2026
4ddfe79
chore(telemetry): address review findings — hook parity + spec freshness
Apr 24, 2026
c59716e
feat(telemetry): default-on with opt-out, drop consent prompt
Apr 27, 2026
6e73d3f
docs(telemetry): add plugin-owner adoption guide for 1DS telemetry
Apr 29, 2026
acc1746
chore(telemetry): provision real 1DS iKey + INT collector URL
May 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,14 @@ Skills that apply to all plugins live in `shared/skills/<skill-name>/`. The work

This keeps the skill discoverable in each plugin while avoiding content duplication. When updating a shared skill, edit the workflow file and/or `SKILL.template.md` in `shared/`, then update the per-plugin wrappers (frontmatter + reference pointing to the shared workflow, with `{{PLUGIN_NAME}}` substituted) and commit them alongside the shared change.

## Shared Telemetry

1DS telemetry code for all plugins lives at `shared/telemetry/`. The repo-root copy is development-time only — each adopting plugin syncs a copy into `plugins/<plugin>/scripts/lib/telemetry/` via `node shared/telemetry/sync-to-plugin.js --target plugins/<plugin>`. Only the synced copy runs at user time.

Edit `shared/telemetry/` and re-run the sync to propagate changes. Never hand-edit the synced copies.

Current adopters: `power-pages`. Others adopt on demand.

## Code Conventions

**DRY (Don't Repeat Yourself):** Never duplicate logic across files. Each plugin has shared utilities (e.g., `scripts/lib/`) and shared reference docs (e.g., `references/`). Always check for and reuse existing helpers before writing new code. When adding shared logic, put it in the plugin's shared modules — not in individual skill directories.
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,3 +211,7 @@ trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.

## Telemetry

Plugins that ship 1DS telemetry (currently: `power-pages`) gather anonymous usage signals with explicit user consent. See `shared/telemetry/README.md` for what is sent and how to opt out.

Copilot AI Apr 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This repo-level README says telemetry is collected with "explicit user consent", but the telemetry posture described elsewhere in this PR is default-on with opt-out (no first-run prompt). Please adjust this wording to match the implemented behavior (e.g., "enabled by default with documented opt-out").

Suggested change
Plugins that ship 1DS telemetry (currently: `power-pages`) gather anonymous usage signals with explicit user consent. See `shared/telemetry/README.md` for what is sent and how to opt out.
Plugins that ship 1DS telemetry (currently: `power-pages`) gather anonymous usage signals enabled by default, with a documented opt-out. See `shared/telemetry/README.md` for what is sent and how to opt out.

Copilot uses AI. Check for mistakes.
Loading