Skip to content

feat(v4): add core-next & cli-next packages with integration/E2E test… - #15663

Closed
Alive-Fish wants to merge 7 commits into
devfrom
zhiyou/v4
Closed

feat(v4): add core-next & cli-next packages with integration/E2E test…#15663
Alive-Fish wants to merge 7 commits into
devfrom
zhiyou/v4

Conversation

@Alive-Fish

Copy link
Copy Markdown
Contributor

…s and CI workflows

  • Add core-next engine: operations, drivers, DA manifest, templates, lifecycle
  • Add cli-next CLI: Commander.js commands, action handlers, telemetry, auth
  • Add integration tests: 24 core-next + 62 cli-next
  • Add E2E tests: cli-syntax verification with scaffold tests
  • Add CI workflow (ci-next.yml): build, lint, format, unit+integration tests
  • Add E2E workflow (e2e-test-next.yml): matrix test execution with failure summary
  • Add instruction files, skills, and plans for v4 development

Comment thread packages/cli-next/src/auth/cacheAccess.ts Fixed
Comment thread packages/cli-next/src/auth/cacheAccess.ts Fixed
Comment thread packages/cli-next/src/auth/cacheAccess.ts Fixed
Comment thread packages/core-next/src/drivers/builtin/teamsApp/configure.ts Fixed
Comment thread packages/core-next/src/clients/graphApi/client.ts Fixed
Comment thread packages/core-next/src/clients/teamsDevPortal/client.ts Fixed
Comment thread packages/core-next/src/clients/teamsDevPortal/client.ts Fixed
Comment thread packages/core-next/src/clients/teamsDevPortal/client.ts Fixed
Comment thread packages/core-next/src/drivers/builtin/azureAppService/zipDeploy.ts Fixed
// Copy path-level properties (servers, parameters, etc.) but not operations
newPaths[path] = { ...unresolvedSpec.paths![path] };
for (const m of HTTPMethodsConst.AllOperationMethods) {
delete (newPaths[path] as Record<string, unknown>)[m];
}
}

(newPaths[path] as Record<string, unknown>)[methodName] = (

try {
await fs.access(envFilePath);
const envContent = await fs.readFile(envFilePath, "utf-8");
const updated = envContent.replace(/^TEAMS_APP_ID=.*$/m, `TEAMS_APP_ID=${newUUID}`);
if (updated === envContent) {
// key didn't exist, append
await fs.appendFile(envFilePath, `\nTEAMS_APP_ID=${newUUID}\n`);
// key didn't exist, append
await fs.appendFile(envFilePath, `\nTEAMS_APP_ID=${newUUID}\n`);
} else {
await fs.writeFile(envFilePath, updated, "utf-8");
});
`;

await fs.appendFile(cmdsPath, code);
- Add core-next/cli-next to pnpm-workspace and setup:next script

- Ignore tsbuildinfo, build dirs for new packages, and skills scratch dirs

- Allow ARM exception under packages/core-next/src/drivers/builtin/arm

- ESLint: ignore unused vars/args/caught-errors prefixed with underscore

- ESLint no-secrets: raise tolerance to 4.5 for test fixtures

- CodeQL: suppress js/file-access-to-http (intentional uploads in service clients)

- setup-project action: add 'next' setup mode

- VS Code MCP: switch GitHub MCP to insiders endpoint
core-next: next-gen core engine for Microsoft 365 Agents Toolkit v4

- Operations: create, provision, deploy, publish, package, validate

- Drivers (built-in): aadApp, apiKey, oauth, arm, teamsApp, m365, file, script

- Lifecycle engine with Result<T, FxError> error handling

- Template descriptors with Mustache scaffolding (DA, DA-MCP, foundry-agent, etc.)

- AtkContext, env file management, project tracking

- Integration tests (24) and E2E lifecycle tests

cli-next: Commander.js-based CLI surface over core-next

- Action handlers: create, provision, deploy, publish, package, validate, env, account

- esbuild bundling (97% faster startup vs tsc)

- Telemetry, MSAL auth, validators, prompts

- Integration tests (62) and E2E scaffold/CLI-syntax tests
- ci-next.yml: build, lint, format, unit + integration tests for core-next/cli-next

- e2e-test-next.yml: matrix lifecycle E2E with failure summary

- Update cd.yml, e2e-test.yml, e2e-test-same-tenant.yml, unit-test.yml for v4 paths
Replace the single .github/copilot-instructions.md with granular files under

.github/instructions/, each scoped via applyTo glob patterns:

- api.instructions.md         (packages/api/**)

- cli.instructions.md         (packages/cli/**, packages/cli-next/**)

- codebase.instructions.md    (packages/**, templates/**)

- features.instructions.md    (fx-core, templates, .dev/features.json)

- fx-core.instructions.md     (packages/fx-core/**, packages/core-next/**)

- templates.instructions.md   (templates/**)

- vscode-extension.instructions.md (packages/vscode-extension/**)

Removes the now-redundant manifest.instructions.md (folded into codebase).
Add reproducible agent skills system for AI-assisted v4 development:

- .github/skills/: project-specific workflow skills (vibe-coding, dev-test-next,

  e2e-troubleshooting, lint-format, plan-tracker, session-review, docs-guard,

  feature-flag-refactor) plus expert skills (code-reviewer, security-reviewer,

  debugging-wizard, legacy-modernizer, architecture-designer, test-master,

  react-expert, mcp-developer, secure-code-guardian, typescript-pro)

- .github/scripts/setup-agent-skills.{ps1,sh}: reproducible install scripts

- skills-lock.json: pinned skill versions for reproducible installs

- .agents/: vendored skill content from setup script
Reorganize the docs/ tree into a numbered, arc42-inspired structure:

  00-overview         Vision, glossary, roadmap, docs design principles

  01-product          PRD, personas, capabilities, scenarios, UX flows

  02-architecture     arc42 building blocks, ADRs (0006-0008)

  03-infrastructure   Azure topology, Bicep, CI/CD, networking

  04-specs            Data model entities, schemas, operation specs

  05-engineering      Coding standards, testing, security, telemetry,

                      v4 design strategy, package reference, cross-cutting

  06-operations       Branching, releases, CI, E2E strategy, publishing

  07-contributing     Dev setup, adding driver/template/CLI command

  08-troubleshooting  Auth, bot, deploy, provision errors

  _v3-reference       Quarantined v3 internals (not v4 design input)

  assets, README       Top-level overview

Removes the legacy docs/fx-core/bot-help.md (moved to _v3-reference/).
- .dev/plans/: design plans for v4 refactor, CLI rewrite, lifecycle E2E, commands

- .dev/assessments/: refactor assessments and validator design

- .dev/features.json: canonical feature registry consumed by integration tests
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.

2 participants