Skip to content

build(devcontainer): add repoverlay, agency install, and ff-oce overlay#26752

Merged
tylerbutler merged 15 commits intomicrosoft:mainfrom
tylerbutler:repoverlay
Mar 18, 2026
Merged

build(devcontainer): add repoverlay, agency install, and ff-oce overlay#26752
tylerbutler merged 15 commits intomicrosoft:mainfrom
tylerbutler:repoverlay

Conversation

@tylerbutler
Copy link
Member

@tylerbutler tylerbutler commented Mar 17, 2026

Summary

  • Adds optional agency and repoverlay installation to the Dockerfile via build args, with user-local bin paths added to PATH.
  • Adds the ff-oce repoverlay overlay: a Claude agent and Kusto skill for the Fluid Framework Client OCE rotation, with a comprehensive query reference covering Office Fluid telemetry tables, correlation IDs, and investigation patterns.
  • Refactors shell alias setup to support both bash and zsh by adding a shell guard to the aliases script itself and replacing the bash-only /etc/profile.d/ wrapper with a direct symlink.
  • Adds playwright-setup.sh guard that skips gracefully when playwright-cli is not installed.
  • Fixes nvm sourcing under set -u in post-create.sh.
  • Enables SSH and ADO codespaces auth in the ai-agent devcontainer.

@tylerbutler tylerbutler marked this pull request as ready for review March 17, 2026 03:40
Copilot AI review requested due to automatic review settings March 17, 2026 03:40
@tylerbutler
Copy link
Member Author

/azp run Build - protocol-definitions,Build - test-tools,server-gitrest,server-gitssh,server-routerlicious,Build - client packages,repo-policy-check,Build - build-tools

@tylerbutler
Copy link
Member Author

/azp run Build - api-markdown-documenter,Build - benchmark-tool,Build - build-common,Build - build-tools,Build - common-utils,Build - eslint-config-fluid,Build - eslint-plugin-fluid,server-historian

@azure-pipelines
Copy link

Azure Pipelines successfully started running 5 pipeline(s).

@azure-pipelines
Copy link

Azure Pipelines successfully started running 7 pipeline(s).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds repoverlay support to the AI-agent devcontainer and introduces a shareable ff-oce overlay containing a Claude agent and a Kusto investigation skill/reference for the Fluid Framework Client OCE rotation.

Changes:

  • Extend .devcontainer/Dockerfile and the AI-agent profile to optionally install agency and repoverlay, and ensure user-local install paths are on PATH.
  • Refactor shell alias setup to work across bash/zsh entry points and add an OCE helper alias (copilot-oce).
  • Add the ff-oce repoverlay library content (agent + Kusto skill + large query reference).

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
scripts/codespace-setup/repoverlay-install.sh Adds an (optional) repoverlay installer script.
scripts/codespace-setup/agency-install.sh Adds an (optional) agency installer script.
scripts/codespace-setup/post-create.sh Improves nvm sourcing under set -u.
scripts/codespace-setup/playwright-setup.sh Skips Playwright skill setup when playwright-cli isn’t present.
scripts/codespace-setup/ai-setup.sh Refactors system-wide alias hookup; adds zsh support.
scripts/codespace-setup/agent-aliases.sh Adds shell-guarding and an OCE helper alias.
.repoverlay/library/ff-oce/repoverlay.ccl Defines the ff-oce overlay configuration.
.repoverlay/library/ff-oce/.claude/skills/ff-oce-kusto/references/kusto-query-reference.md Adds a large Fluid telemetry/Kusto query reference document.
.repoverlay/library/ff-oce/.claude/skills/ff-oce-kusto/SKILL.md Adds the skill definition and orientation for the reference.
.repoverlay/library/ff-oce/.claude/agents/ff-oce.md Adds the ff-oce agent definition and responsibilities.
.devcontainer/ai-agent/devcontainer.json Enables agency + repoverlay in the AI-enabled profile; adds ADO auth extension.
.devcontainer/Dockerfile Adds PATH updates and optional installation of agency and repoverlay.

You can also share your feedback on Copilot code review. Take the survey.

@tylerbutler tylerbutler requested review from a team, noencke and taylorsw04 March 17, 2026 19:20
Copy link
Contributor

@alexvy86 alexvy86 left a comment

Choose a reason for hiding this comment

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

Didn't go through the ff-oce.md or kusto-query-reference.md file but those are probably going to see iteration anyway.

"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"MAI-EngineeringSystems.mai-ai-telemetry",
"ms-codespaces-tools.ado-codespaces-auth",
Copy link
Contributor

Choose a reason for hiding this comment

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

From its docs:

This extension is not recommended to be installed by itself. You should instead use the external-repository and artifacts-helper devcontainer features which will ensure this extension is preinstalled on your Codespace with proper configuration.

Worth consideration? Not sure the external-repository one matters in this case, but I think I've seen artifacts-helper in other places.

Copy link
Member Author

Choose a reason for hiding this comment

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

It's not clear to me how any of this fits together. :) The extension was suggested to unblock agency's install - I'll add the other features as well.

Copy link
Contributor

Choose a reason for hiding this comment

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

Not necessarily for this PR, but we'll probably want another reference doc for the Office Fluid Test database which is relatively similar, but also has tables that only exist there, e.g. the ones for our pipeline telemetry, perf benchmarks telemetry, bundle size telemetry. And in general, is the right database to query to investigate issues with our own engineering systems.

Copy link
Member Author

Choose a reason for hiding this comment

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

@noencke Feedback to consider.

Copy link
Contributor

Choose a reason for hiding this comment

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

Agreed - ideally our kusto query reference files are factored into their most atomic chunks, and then various kusto-related skills can reference various query files as needed. Since some might overlap, and want to share, but not share everything - if that makes sense.

tylerbutler and others added 14 commits March 17, 2026 14:08
nvm internally references unset variables, which causes "unbound
variable" errors when sourced with set -u active. Disable -u alongside
-e in both the subshell and the outer nvm use call.
The ai-setup.sh script unconditionally called playwright-setup.sh, which
runs playwright-cli. When INSTALL_PLAYWRIGHT_CLI is disabled, this fails
with exit code 127 (command not found), breaking the postCreateCommand.
…poverlay

Agency and repoverlay install to ~/.local/bin and ~/.cargo/bin
respectively, but these paths weren't on PATH in non-login shells,
causing "command not found" errors for the agent aliases.
- Remove unused agency-install.sh and repoverlay-install.sh scripts
  (installation is handled by Dockerfile build args)
- Fix correlation ID hierarchy to show Session_Id and
  Data_hostCorrelationId as equivalent rather than hierarchical
- Fix grammar: "might required" → "might require"
Co-authored-by: Alex Villarreal <716334+alexvy86@users.noreply.github.com>
@tylerbutler tylerbutler changed the title build(devcontainer): add repoverlay and ff-oce agent overlay build(devcontainer): add repoverlay, agency install, and ff-oce overlay Mar 18, 2026
@github-actions
Copy link
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  257792 links
    1822 destination URLs
    2063 URLs ignored
       0 warnings
       0 errors


@tylerbutler tylerbutler requested a review from noencke March 18, 2026 18:03
@tylerbutler tylerbutler merged commit 78c2194 into microsoft:main Mar 18, 2026
66 checks passed
@tylerbutler tylerbutler deleted the repoverlay branch March 18, 2026 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants