[Promotion] Add Org Announcements authoring support - #359
SophieS0ng wants to merge 49 commits into
Conversation
Extract read-only deployed-agent discovery and reuse tenant-local account matching. Preserve account-bound token refresh and safe authentication failures. Add isolated regression coverage and narrowly scoped review-stack CI targets. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Normalize token-file I/O failures without exposing the configured path or falling back to another credential source. Preserve the original exception as the cause. Limit MCP test-loader warning suppression to the known Pydantic category and cover caller warning policies and module cleanup. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Keep known credential failures actionable through MCP responses without exposing private details. Distinguish local sign-in timeout and cover plain/widget error serialization while preserving account binding and replay behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
* feat(agentconfig): share authoring identity and agent discovery Extract read-only deployed-agent discovery and reuse tenant-local account matching. Preserve account-bound token refresh and safe authentication failures. Add isolated regression coverage and narrowly scoped review-stack CI targets. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27 * fix(agentconfig): sanitize token reads and narrow test warnings Normalize token-file I/O failures without exposing the configured path or falling back to another credential source. Preserve the original exception as the cause. Limit MCP test-loader warning suppression to the known Pydantic category and cover caller warning policies and module cleanup. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27 * fix(agentconfig): preserve actionable credential failures Keep known credential failures actionable through MCP responses without exposing private details. Distinguish local sign-in timeout and cover plain/widget error serialization while preserving account binding and replay behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27 --------- Co-authored-by: Reilly Bova <rebova@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Add typed announcement drafts and the tenant-and-agent-scoped authoring client. Preserve canonical save results, ownership checks, lifecycle semantics, and indeterminate-write recovery. Keep contract tests independent of the future MCP runtime. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Retain typed primary actions and incomplete targets in editable copies without relaxing structural, scope, or write constraints. Explain Standard priority labels in the model-facing schema and distinguish parsing from backend action validity. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 15e9d51c-c328-48e6-9948-8819f9e57f90
…-review-contracts [2/5] Add agent-scoped announcement models and authoring client
Search eligible directory groups by name or email with one combined bounded Graph query. Bind independent Graph credentials and metadata caches to the intended authoring tenant and account, preserving safe invalidation and diagnostic handling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Follow Graph next links during audience resolution, report exact search exhaustion correctly, and cover cached token reuse with regression tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
…-review-audience [3/5] Add account-bound Graph audience discovery
Expose separate announcement manager and editor entry points with validated flat arguments, scoped retry context, captured directory leases, and widget-owned mutations. Preserve indeterminate and committed-refresh recovery, safe telemetry, and independent provider discovery. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Describe read-only repairable copies and cover zero-write opening, priority preservation, unresolved audiences, backend action errors, and non-repeating committed-refresh failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 15e9d51c-c328-48e6-9948-8819f9e57f90
Sanitize model-visible backend failures and hide validation input values while preserving structured app-only mutation errors. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Add the announcements skill, prompt, setup materialization, and Maker Profile entry point. Keep discovery on the announcements provider, require deployed-agent context, and document recovery and credential limits. Preserve the reviewed 0.4.25 package and existing upstream setup behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Map Important and Informational explicitly, continue review-only creation after unresolved audience lookup, and distinguish repairable copies from backend-valid saved actions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 15e9d51c-c328-48e6-9948-8819f9e57f90
Publish the announcement-enabled VSIX as 0.4.26 and add cross-platform checks that keep the packaged extension aligned with its source and manifest. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Adapt the authoring client to the WeveNova EssBulletins OData contract while preserving the existing MCP and widget-facing lower-camel contract. Reload canonical saved resources, keep delete tombstones non-readable, and prevent committed writes from being retried after refresh failures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Preserve OData canonical reload semantics and validate keyed response identity. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Make authoring construction and cleanup cancellation-safe, sanitize model-visible discovery failures, and cover every registered tool with privacy-safe telemetry. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Align repo and solution routing, refresh feature dependencies for completed workspaces, and strengthen cross-entry-point and server cache regression coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Validate provider enums at the OData boundary, retry only committed keyed GET 404s, preserve closed DTO projections, and add provider-derived contract coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Distinguish renewable cached MSAL sign-ins from explicit environment tokens, token files, and malformed identity credentials before advising a retry. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
…-review-runtime [4/5] Expose the scoped announcement MCP runtime
Add the announcements skill, prompt, setup materialization, and Maker Profile entry point. Keep discovery on the announcements provider, require deployed-agent context, and document recovery and credential limits. Preserve the reviewed 0.4.25 package and existing upstream setup behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: eddd3818-bb74-42d3-bcf3-7e0670a57f27
Map Important and Informational explicitly, continue review-only creation after unresolved audience lookup, and distinguish repairable copies from backend-valid saved actions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 15e9d51c-c328-48e6-9948-8819f9e57f90
Publish the announcement-enabled VSIX as 0.4.26 and add cross-platform checks that keep the packaged extension aligned with its source and manifest. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Align repo and solution routing, refresh feature dependencies for completed workspaces, and strengthen cross-entry-point and server cache regression coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
Distinguish renewable cached MSAL sign-ins from explicit environment tokens, token files, and malformed identity credentials before advising a retry. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 19335911-b012-4b7f-b179-e4caeae7ea69
…-review-maker [5/5] Wire announcement maker entry points and setup
…ents-review-odata [6/6] Migrate announcement authoring to the OData contract
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4276d4a0-2a35-4f07-a7fd-e7d86188d388
Adapt the reviewed announcement stack to the current DA-GA setup flow, preserve main-ca CI coverage, and rebuild the Maker Profile as 0.4.29. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4276d4a0-2a35-4f07-a7fd-e7d86188d388
Force telemetry on and stub event delivery so the legacy lite identity regression does not depend on runner network or persisted consent state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4276d4a0-2a35-4f07-a7fd-e7d86188d388
|
Reviewed the full diff and ran the suites locally: 1. Interactive sign-in failures surface as
|
Summary
Promote the reviewed Org Announcements authoring stack from
users/rebova/org-announcements-prereleasetomain.This PR consolidates the previously reviewed and merged implementation slices
into the final repository promotion boundary. It also removes the temporary CI
branch filters that were added only to support the stacked review process.
Included work
Together, these changes provide:
duplicate, and audience-selection contracts
CI cleanup
The following temporary pull-request target filters were required while the
stacked PRs targeted user branches:
users/rebova/org-announcements-prereleaseusers/rebova/org-announcements-review-*Now that the complete stack is merged into the prerelease branch, this PR
removes both filters and updates
tests/mcp/agentconfig_core/test_ci_contract.pyaccordingly.Normal CI coverage for
mainandrelease/**is preserved.Validation
Local validation on September 28, 2026:
git diff --checkpassedThe promotion PR targets
main, so the repository's normal main-target CIshould run without the temporary user-branch filters.
Release validation
This PR is the consolidated code-review and CI boundary. The individual stack
merges established the reviewed implementation on the prerelease branch; they
did not independently approve production rollout.
The following live validation remains separate from the offline test coverage:
Review request
Please review the complete prerelease-to-main integration and confirm:
mainThis PR should remain a draft until the final promotion target and required
release gates are confirmed.