Conversation
Load teams-js only when the tab URL has `?host=teams`. Sign in through Teams SSO, then a sign-in window, then a Sign in button, because the Microsoft login page cannot load in the host frame. Add the app package template, a packaging script and docs/teams-app.md.
Add a task pane that reads the title, time and All day setting from the open Outlook event instead of asking for them again. - Rooms are added to the event as Exchange room resources, so Exchange books them when the invitation is sent. This replaces the old flow that created a second event. - Desks are reserved on "Add to event" and linked to the saved event in both directions. The pane flags a desk when the event time changes. - Each tab has list and map views. Filters apply in the pane, so a filter change does not start a new availability request. - space-map and desk-map accept an optional filtered list and are exported from their libraries. - The manifest has one PlaceOS button that opens the pane.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Replace the legacy Office SSO (getAccessToken) with nested app authentication through MSAL. The PlaceOS sign-in dialog stays as the fallback when the manifest has no client ID or Outlook does not support NestedAppAuth 1.1. The token scope is the same as the Teams app, so one Entra app registration serves both. - manifest.xml is now a template. manifest.ts makes the manifest for a PlaceOS host and adds the Entra client ID to the task pane URL. - The base rule matches the appointment organizer button. Remove AppDomains, FunctionFile and WebApplicationInfo. - Remove the Yeoman scaffold, the function file, ms-auth-login.html, the unused ms-auth route and the IE compatibility meta tag. - Uploads now start when a stored token is used.
|
Deployment failed for project frontend-templates with the following error: Learn More: https://vercel.com/placeos?upgradeToPro=build-rate-limit |
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Update ts-client to 6.8.0. The Outlook add-in and the Teams tab now exchange the Microsoft Entra SSO token for PlaceOS tokens (RFC 8693) instead of sending it as the bearer token. The exchange gives a refresh token, so the PlaceOS token renews. When the exchange fails, sign in falls back to the sign-in dialog or window.
|
| this._error.set( | ||
| errorMessage(error) || 'Unable to read the Outlook event.', | ||
| ); | ||
| return this._event(); |
There was a problem hiding this comment.
| ...(saved?.ical_uid ? { ical_uid: saved.ical_uid } : {}), | ||
| }, | ||
| }).catch(() => booking); | ||
| await this._outlook.setProperty(DESK_BOOKING_PROPERTY, linked.id); |
There was a problem hiding this comment.
Desk stays reserved after error
add() creates the desk booking before saving its ID on the Outlook item. If that save fails, the pane reports an error but leaves the desk reserved. When reopened, it cannot find the booking through the missing link. Roll back the booking or make the link recoverable.
|
|
||
| constructor() { | ||
| this._form.newForm('desk'); | ||
| this.link.load(); |
There was a problem hiding this comment.
| [available]="map_desks()" | ||
| (onSelect)="selected_desk.set($event)" | ||
| /> | ||
| @if (selected_desk(); as desk) { |
There was a problem hiding this comment.
When the event time or available desks change, the map keeps showing selected_desk even if it is no longer in map_desks(). Its card still says “Available” and offers Add. Clear the selection when that desk leaves the available list so users do not try to book an outdated result.
Problem
The Outlook add-in did not use the open calendar event. It asked for the title, date and time again, and booked rooms by creating a second event through PlaceOS. It had no map, and the workplace app could not open in Teams or the Outlook app bar. The PlaceOS Outlook and Teams development brief (goals G01–G09) asks for all of these.
Solution
Outlook calendar pane (
apps/outlook-addin/src/app/calendar/)enhancedLocation(type Room), so Exchange books it on Send. The pane shows each room as added, pending, confirmed or declined.BookingFormService, and links the booking and the event in both directions. The pane flags the desk when the event time changes and offers Update and Remove. Recurring events and multi-day all-day events are blocked with a message until the policy is agreed.space-mapanddesk-mapget an optionalavailableinput for the filtered list, and both are exported from their libraries.#/calendar, and it requires Mailbox 1.8. The old forms stay in place for now.Workplace as a Teams / Microsoft 365 personal tab
@microsoft/teams-jsloads only when the tab URL has?host=teams. Sign in tries Teams SSO, then a sign-in window, then a Sign in button.apps/workplace/teams/has the manifest template, icons and a packaging script. Seedocs/teams-app.md.Verification
outlook-addin30,workplace421,events240,bookings435,common376. All pass.outlook-addinandworkplacepass.Not verified yet
index.htmlloads the production Office.js (lib/1), which has no preview APIs. In production the All day flag comes only from the saved event.frame-ancestors). Desks whose event is deleted need a cleanup job.microsoft.poc.placeos.com.Changes made by Claude Opus 5.5 (1M context) in Claude Code.
🤖 Generated with Claude Code