[5/5] Wire announcement maker entry points and setup - #273
rebova-microsoft wants to merge 2 commits into
Conversation
rebova-microsoft
left a comment
There was a problem hiding this comment.
File-by-file walkthrough: make the feature available to makers
The earlier PRs supply the clients and MCP tools. This slice supplies the ways a maker reaches them: command routing, setup registration, instructions for the chat agent, and the Maker Profile button/package.
These comments explain the 19 changed text files. The VSIX is binary, so its explanation is attached at file level rather than to an invented source line. This is an explanatory review, not an approval or a resolution of existing feedback. Registration and documentation do not establish that the paired widget/backend is deployed.
| run: >- | ||
| python -m pytest | ||
| tests/mcp/agentconfig_org_announcements | ||
| tests/setup/test_foundation_setup_router.py |
There was a problem hiding this comment.
Walkthrough — include maker routing in the feature's CI coverage.
This adds the existing foundation/setup-router suite to the announcements job. That suite now checks the command, skill, menu, dependency-install guidance, and separate-provider routing introduced by this slice.
The job already exists from earlier chunks; this is one additional test selector, not another workflow or branch-policy change.
| This installs everything the standard installer does, plus the **ESS Maker Profile** extension which provides: | ||
| - A chat-only layout with all developer surfaces hidden | ||
| - Big-button "Quick Actions" rail for common tasks (Connect, Customize landing page, Create, Scan, FlightCheck, Push) | ||
| - Big-button "Quick Actions" rail for common tasks (Connect, Customize landing page, Post an announcement, Create, Scan, FlightCheck, Push) |
There was a problem hiding this comment.
Walkthrough — make installer documentation match the button rail.
The Maker Profile's advertised Quick Actions now includes Post an announcement. This is a one-line documentation update so someone reading the setup guide knows the entry point exists.
It does not change the installer or install a second application; the actual button and packaged extension changes are elsewhere in this PR.
| agent icon, or asks what any landing-page setting controls for employees. Do | ||
| not call an AgentConfiguration MCP tool from a generic flow. | ||
|
|
||
| **Org Announcements invocation:** Before invoking ANY tool from the |
There was a problem hiding this comment.
Walkthrough — route announcement intent to its own workflow.
These instructions tell the chat agent to read the announcement skill for announcement requests and calls to ess-org-announcements. They also add the command to the kit's grounding sources and routing table.
The important boundary is explicit: missing deployed titleId values are resolved through the announcement provider's own read-only tools. Announcements does not start or call the landing-page MCP process, even though both providers share Python discovery code underneath. Landing-page configuration remains a separate flow.
This Markdown affects runtime agent behavior; it is not merely a feature-design document. The explicit target identifies the deployed agent, while tenant context and authorization remain with the authenticated service path.
| | Command | What it does | | ||
| |---------|-------------| | ||
| | `/landing-page` | Configure the branding and content employees see when they open the ESS agent | | ||
| | `/org-announcements` | Create and manage announcements for the selected deployed ESS agent | |
There was a problem hiding this comment.
Walkthrough — expose the command in the maker's menu.
This adds /org-announcements and a short description scoped to the selected deployed ESS agent. It makes the new flow discoverable alongside /landing-page without combining the two workflows.
The menu is an entry point only; the dedicated prompt and skill own the behavior after the maker chooses it.
|
|
||
| # Org Announcements | ||
|
|
||
| Read `src/skills/org-announcements/SKILL.md` and follow it. |
There was a problem hiding this comment.
Walkthrough — a thin slash-command entry point.
This new prompt gives /org-announcements an agent-mode entry point and delegates directly to src/skills/org-announcements/SKILL.md.
It deliberately does not duplicate configuration reading, authentication, or announcement logic here. Those rules live in the skill so slash-command use and natural-language announcement intent follow the same instructions.
| assert "MCP: List Servers" in skill | ||
|
|
||
|
|
||
| def test_org_announcements_prompt_routes_to_setup_gated_skill() -> None: |
There was a problem hiding this comment.
Walkthrough — keep the command, instructions, setup, and CI connected.
The added cases check that the prompt delegates to the skill, setup/server guidance is present, target discovery stays on the announcement provider, tenant/agent scope is disclosed, and chat is instructed to open once rather than duplicate the widget's writes.
They also check dependency-install guidance, registration across entry points, separate CI jobs, the approved branch filters, and the distinction between SDK tool errors and coded feature errors.
Several checks intentionally assert normalized instruction text. They guard the shipped agent guidance, not the model's behavior in a real conversation; deliberate wording changes need matching assertions. They do not replace the later local/E2E exercise.
| 3. **Pins a "Quick actions" button rail in the primary sidebar** — a custom Webview view with big icon-labeled buttons: | ||
| - **Connect** → `/setup` | ||
| - **Customize landing page** → guided landing-page configuration | ||
| - **Post an announcement** → guided organization-announcement authoring |
There was a problem hiding this comment.
Walkthrough — document the new Quick Action in the extension guide.
This one-line addition describes Post an announcement as a guided authoring entry point alongside the other Maker Profile actions.
It changes the extension's feature list only. The click routing lives in extension.js, and the announcement form itself remains in Vorpal.
| ## 0.4.25 (POC) | ||
|
|
||
| - **Customize landing page** is available in Quick Actions. The setup-gated action opens a guided Copilot chat for branding, quick links, starter prompts, and insight cards. | ||
| - Added **Post an announcement** to Quick Actions. The setup-gated action opens |
There was a problem hiding this comment.
Walkthrough — describe the contents of the updated 0.4.25 POC package.
These release notes add the setup-gated announcement Quick Action, clarify that scope/limits apply per tenant and agent, and tell the maker to reinstall the reviewed package to refresh the rail/tutorial.
The existing 0.4.25 history is retained; this PR replaces the package contents without increasing that version. The notes are not a claim that a backend rollout or feature deployment occurred.
| const ACTIONS = [ | ||
| { id: 'setup', icon: '🔌', label: 'Setup', sub: 'Sign in to your environment', query: '/setup', requires: [] }, | ||
| { id: 'landingPage', icon: '🎨', label: 'Customize landing page', sub: 'Branding, links, prompts, cards', query: 'Customize my landing page', requires: ['setup'] }, | ||
| { id: 'announcements', icon: '📢', label: 'Post an announcement', sub: 'Reach audiences in the selected agent', query: 'Create an organization announcement', requires: ['setup'] }, |
There was a problem hiding this comment.
Walkthrough — a button that starts the same chat flow, not another editor implementation.
The new announcements action is gated on setup and sends Create an organization announcement into chat. The normal instruction routing then selects the announcement skill and opens the widget; the button does not call Save or publish directly.
The other additions give the built-in tutorial an Announcements navigation link and section. Existing actions stay in place. This file owns the Maker Profile entry point and tutorial, while the visual announcement form remains in Vorpal.
| assert.deepStrictEqual(landingPage.requires, ['setup']); | ||
| }); | ||
|
|
||
| test('announcements action sends the skill-triggering query', () => { |
There was a problem hiding this comment.
Walkthrough — guard the ninth action's routing and scope wording.
The action-count expectation changes from eight to nine. New assertions check the announcement label, chat query, description, and setup prerequisite, plus tutorial wording that identifies per-agent scope rather than promising a tenant-wide announcement collection.
These are extension structure/routing checks. They do not send the chat request, exercise the Vorpal form, or publish an announcement.
There was a problem hiding this comment.
Walkthrough — the installable Maker Profile package.
A VSIX is the packaged extension makers install, so this binary changes alongside the source that adds the announcement Quick Action and tutorial. The filename and manifest version remain 0.4.25; the archive grows from 30,666 to 31,073 bytes.
The packaged extension.js and package.json match the corresponding source files at this PR's commit. This is a package update, not a source-code hunk or a backend deployment, so the explanation is attached to the file rather than an invented line number. The changelog calls for reinstalling the reviewed package to pick up its changed contents.
|
Commit 5c7e56e makes the priority mapping explicit, keeps requested review-only drafts opening after unresolved audience lookup, and distinguishes repairable copy content from backend-valid actions. The branch includes the contracts/runtime follow-ups through merge commits. No test-harness configuration, private fixture data, or live bug-bash checkout changes are included. |
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
5c7e56e to
910b71d
Compare
Description
Make the completed announcement flow discoverable through its skill, prompt, setup defaults, and Maker Profile Quick Action.
Current diff
Feature contract
Announcement scope is the authenticated tenant plus the selected deployed titleId, not all agents. A matching scoped widget/backend is required. No copy-title parameter, extra rename write, model-visible mutation, or recovery-envelope field is added.
Stack and dependency
This is slice 5/5. Head:
users/rebova/org-announcements-review-maker. Base:users/rebova/org-announcements-review-runtime. The current diff is only this slice against its immediate predecessor; these are stacked review chunks, not parallel PRs against the integration branch.Bootstrap prerequisite: #262 merged into
release/planner-landing-pageon September 10, 2026. This stack remains pinned tocacb1bec056428809f1ccb0383561190d516bee4, which is an ancestor of merge commit8a04f5f40f334e729a3497877edca655730f1be2. Unchanged prerequisite work is excluded from this slice. No rewrite is needed solely to account for that merge. The future release target remains TBD and its final promotion baseline must be confirmed separately.Testing
654 offline Python tests passed on the integrated stack, covering the announcement provider and setup/maker routing, including the priority, unresolved-audience, repairable-copy, and committed-refresh regressions. Extension source and the bundled VSIX are unchanged by these corrections.
Local execution used Python 3.13.15. No local Python 3.11 or live-service acceptance is claimed.
Readiness