Skip to content

Improve Microsoft Teams setup flow - #25

Merged
brunobergher merged 19 commits into
developfrom
bb/teams
Jul 9, 2026
Merged

Improve Microsoft Teams setup flow#25
brunobergher merged 19 commits into
developfrom
bb/teams

Conversation

@brunobergher

@brunobergher brunobergher commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • update generated Microsoft Teams app packages to manifest v1.25, including channel install readiness, file support, the Roomote accent color, and required RSC permissions
  • refresh the Teams setup and manual docs so Microsoft Entra, Teams bot capability, redirect URI, messaging endpoint, group chat scope casing, and app-package upload steps match the new flow
  • tighten setup bootstrap auth so setup-token and local tokenless first-admin sign-ins are admitted as bootstrap users, become admins, preserve the /setup step through OAuth/callback redirects, and ignore soft-deleted users when determining whether a real user already exists
  • simplify and restyle the setup experience: remove setup-only env-var storage notes, keep setup auth callbacks on the credential step, align provider/setup layouts, and keep comms settings in sync with the setup flow
  • align logged-out, reset-password, and email/password auth screens with the setup styling, while preserving caller-provided submit-button layout overrides and fixing the email login button copy
  • update auth, setup, comms settings, Teams package, and access-policy coverage for the changed behavior

Review feedback addressed

  • updated the Microsoft setup heading assertion to the new generated-values copy
  • excluded soft-deleted users from local tokenless bootstrap first-user detection
  • restored submitButtonClassName support for EmailPasswordAuth
  • fixed the visible Log in with email button copy and test assertions
  • added the missing Checkbox export to the StepInvoke component mock after CI exercised the full web suite
  • changed the manual Teams manifest snippet from groupchat to the v1.25 groupChat scope value

Validation

  • rebased bb/teams onto origin/develop (bbed642) and resolved conflicts
  • mise exec -- pnpm exec dotenvx run -f .env.test -- pnpm --filter @roomote/web exec vitest run src/lib/server/__tests__/access-policy.test.ts (passes; .env.test is absent, dotenvx injected 0 vars)
  • mise exec -- pnpm exec dotenvx run -f .env.test -- pnpm --filter @roomote/web exec vitest run src/app/\(unauthenticated\)/auth-form.client.test.tsx src/lib/server/__tests__/access-policy.test.ts (passes; .env.test is absent, dotenvx injected 0 vars)
  • mise exec -- pnpm exec dotenvx run -f .env.test -- pnpm --filter @roomote/web exec vitest run src/app/\(onboarding\)/setup/StepInvoke.client.test.tsx src/app/\(unauthenticated\)/auth-form.client.test.tsx src/lib/server/__tests__/access-policy.test.ts (passes; .env.test is absent, dotenvx injected 0 vars)
  • mise exec -- pnpm exec dotenvx run -f .env.test -- pnpm --filter @roomote/web exec vitest run src/app/\(onboarding\)/setup/StepInvoke.client.test.tsx src/app/\(unauthenticated\)/auth-form.client.test.tsx src/lib/server/__tests__/access-policy.test.ts src/app/\(onboarding\)/setup/StepComputeConfig.client.test.tsx (passes; .env.test is absent, dotenvx injected 0 vars)
  • pre-push hook passed via mise exec -- git push origin bb/teams: pnpm lint:fast, pnpm check-types:fast, pnpm knip

@roomote-roomote-v1

roomote-roomote-v1 Bot commented Jul 9, 2026

Copy link
Copy Markdown

1 issue outstanding. See task

  • apps/web/src/app/(onboarding)/setup/StepAuthEnvVars.client.test.tsx:481 still expects the old "Enter the Microsoft app values." heading after the component copy changed to "Enter the Microsoft app generated values.", so the focused setup UI test fails. Update this assertion to the new copy, or keep the component heading unchanged.
  • apps/web/src/lib/server/access-policy.ts:106 counts soft-deleted users when deciding whether local tokenless bootstrap can admit the first real user. That makes a deployment with only removed users look non-empty and denies the bootstrap sign-in, even though hasExistingAppUser and the rest of the access policy treat deletedAt users as inactive; add the same isNull(users.deletedAt) guard here.
  • apps/web/src/app/(unauthenticated)/email-password-auth.tsx:168 now hard-codes the submit button to className="w-full" even though EmailPasswordAuth still accepts submitButtonClassName and StepBootstrapEmailPassword passes submitButtonClassName="w-auto" for the back/create-account row. This ignores the caller's layout override and makes the bootstrap create-account button fill the row; restore the prop or adjust the caller/row layout.
  • apps/web/src/app/(unauthenticated)/auth-form.tsx:206 renders the email option as "Login in with email" (and the updated tests assert that exact copy), so the logged-out sign-in screen now ships a visible typo. Change it to "Log in with email" or "Login with email" and update the assertions.
  • apps/docs/providers/communications/microsoft-teams.mdx:124 updates the manual Teams manifest example to v1.25 but still lists the bot scope as "groupchat"; the v1.25 schema and generated package use the enum value "groupChat", so copying this snippet into Developer Portal fails manifest validation. Change the docs snippet to "groupChat" to match the generated manifest.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA.
Posted by the CLA Assistant Lite bot.

@brunobergher

Copy link
Copy Markdown
Collaborator Author

I have read the CLA Document and I hereby sign the CLA

@brunobergher

Copy link
Copy Markdown
Collaborator Author

Addressed the stale openmote checklist against the latest head (1db6566): soft-deleted users are excluded from tokenless bootstrap first-user detection, EmailPasswordAuth honors submitButtonClassName again, and the email sign-in copy/tests now say "Log in with email". I also fixed the full-suite StepInvoke test mock after CI surfaced the missing Checkbox export. Latest CI is green across CLA, changed paths, lint, typecheck, knip, Docker build, and tests.

@brunobergher

Copy link
Copy Markdown
Collaborator Author

Rebased onto current origin/develop and addressed the latest openmote docs item as well: the manual Teams manifest snippet now uses the v1.25 groupChat scope value in head a77f9c1. Latest PR state is clean/mergeable and CI is green.

@brunobergher
brunobergher merged commit e36f573 into develop Jul 9, 2026
1 check passed
@mrubens
mrubens deleted the bb/teams branch July 12, 2026 04:19
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.

1 participant