# Evolve help (full) > Task-shaped help for the Evolve platform: Spaces, Drive, AI Studio and System settings. Every page carries the files it documents, the date it was verified, and a Markdown twin. Index: https://evolve.unic.ac.cy/help/llms.txt --- --- title: What a Space is type: explanation section: spaces summary: A Space is a named group of channels and people inside one Account; channels hold the messages, and threads hold side-discussions. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/spaces/page.tsx - evolve-front-end/app/[lng]/spaces/[roomId]/page.tsx - evolve-front-end/components/team-chat/page-nav/team-chat-space-rail.tsx - evolve-front-end/lib/team-chat/types.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/explore-and-join-a-space, spaces/channels-and-sub-channels, spaces/space-members-and-roles] aliases: [team-chat/what-is-a-space] --- A Space is a named group of channels and people, built around a team, project, or topic. Every Space belongs to one Account. Inside a Space, conversation happens in channels; a channel can carry threads, and each thread is one side-discussion hanging off a single message. Spaces opens at `/spaces`. The narrow column on the far left is the destination rail: it holds your direct messages, one round icon for each Space you belong to, **Explore Spaces**, and, if your account may create Spaces, a button to start a new one. Selecting a Space shows that Space's channels in the wider navigation column beside it. ## The four levels | Level | What it holds | Where you see it | | --- | --- | --- | | Account | Every Space that belongs to your institution or team | The Account you are working in | | Space | Channels, members, and Space roles | One round icon in the destination rail | | Channel | Messages, pins, threads, and files | The navigation column, under **Channels** | | Thread | Replies to one message | Under a channel row in the navigation column, and in the **Threads** tab | A channel can also have sub-channels. A sub-channel is a channel whose members come from its parent channel, and it appears indented under the parent. ## What is not part of a Space Direct messages are not inside a Space. They live on their own destination, labelled **DMs**, and are listed under **Direct messages**. A one-to-one direct message resumes rather than creating a duplicate; a group message is always new. **Notes to self** is a private conversation with nobody else in it. ## What each channel gives you Every channel header carries four tabs: **Messages**, **Pins**, **Threads**, and **Files**. Each tab has its own address, so you can link to one directly: a channel opens on **Messages**, and the other three add `?view=pins`, `?view=threads`, or `?view=files` to the channel URL. ## Related - [Explore and join a Space](/help/spaces/explore-and-join-a-space) - [Channels and sub-channels](/help/spaces/channels-and-sub-channels) - [Space members and roles](/help/spaces/space-members-and-roles) - [Reply in a thread](/help/spaces/reply-in-a-thread) --- --- title: Explore and join a Space type: how-to section: spaces summary: Open Explore Spaces from the destination rail, search for the Space by name, and choose Join. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/space-discovery/space-discovery-surface.tsx - evolve-front-end/components/team-chat/space-discovery/use-space-discovery.ts - evolve-front-end/components/team-chat/page-nav/team-chat-space-rail.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/what-a-space-is, spaces/create-a-space, spaces/you-cannot-see-a-space] aliases: [team-chat/join-a-space, spaces/discover-spaces] --- 1. In the destination rail on the far left, choose the compass button, **Explore Spaces**. 2. Type at least two characters of the Space name in **Search in Spaces**. Results narrow as you type. 3. Choose **Join** on the Space you want. Spaces confirms with a message naming the Space, then opens its first channel. If the Space has no channels yet, you see **You joined this Space, but it does not have any channels yet. A Space administrator can create one.** Only Spaces that a Space admin has opened to your Account appear in the list. Those are marked **Everyone in your organization**. A Space set to **Invite only** never appears; a Space admin has to add you. ## Spaces you never have to join Some Spaces are set so that every active member of the Account is a member automatically. Those are marked **Everyone in the Account is a member** and are kept in step with Account membership by the platform, so they appear in your rail without a join step and do not appear in **Explore Spaces**. ## If the list is empty **No Spaces are available to join right now.** means nothing is open to your Account at the moment. The page then offers three ways forward: ask a Space admin for an invite, start a direct message, or create a Space if your account may do that. ## If it did not work - **This Space is no longer available to join.** or **This Space changed while you were joining. Refresh the list and try again.** means the Space's visibility changed while the list was open. Search again. - **Space discovery is not available for this organization yet.** means self-service joining is not turned on for your Account. Ask a Space admin to add you. - **Spaces could not be loaded.** is a network or service failure. Choose **Retry**. - If the Space you want never appears, see [You cannot see a Space](/help/spaces/you-cannot-see-a-space). --- --- title: Create a Space type: how-to section: spaces summary: Choose the plus button in the destination rail, name the Space, optionally add an image and members, then choose Create. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/page-nav/team-chat-create-space-dialog.tsx - evolve-front-end/components/team-chat/page-nav/use-team-chat-create-space.ts - evolve-front-end/lib/team-chat/self-serve-space.client.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/create-a-channel, spaces/add-people-to-a-channel, spaces/space-members-and-roles] aliases: [team-chat/create-a-space] --- 1. In the destination rail on the far left, choose the plus button, **New Space**. 2. Enter a name in **Space name**. 3. Optional: choose **Upload image** and pick a JPEG, PNG, or WebP file no larger than 5 MB and 8192 pixels per side. The image becomes the Space's icon in the rail. 4. Optional: search for people under **Members** and add them. 5. Choose **Create**. The Space appears in your rail and opens on its first channel. The Space is created under your Account; its type and address are decided by the platform, not in the dialog. The button is only present when your account may create Spaces. If it is absent, your Account does not grant that; ask an Account administrator. ## Partial results If the Space is created but something after it fails, the dialog stays open and lists the outcome for each person you added, with **The Space was created. Some people could not be added.** The Space exists at that point. Choose **Go to the Space** and add the remaining people from Space administration, or **Done** to close. ## If it did not work - **Enter a name for the Space.** means the name field is empty. - **Choose a JPEG, PNG, or WebP image no larger than 5 MB.** means the image was rejected. Pick a different file, or create the Space without one. - **The Space was not created. Try again.** is the only failure you should repeat. Choose **Create** again. - **Your current account cannot create and join new Spaces.** means your account does not hold that permission. Ask an Account administrator, or [explore and join an existing Space](/help/spaces/explore-and-join-a-space). --- --- title: Leave or delete a Space type: how-to section: spaces summary: Open the Space menu from the rail, then choose Leave Space to remove yourself or Delete Space to remove it for everyone. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/page-nav/team-chat-space-lifecycle-dialog.tsx - evolve-front-end/components/team-chat/page-nav/use-team-chat-space-lifecycle.tsx - evolve-front-end/components/team-chat/page-nav/space-action-menu-content.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/space-members-and-roles, spaces/explore-and-join-a-space] aliases: [team-chat/leave-a-space] --- 1. Open the Space menu: use the chevron beside the Space name at the top of the navigation column, or open the context menu on the Space's icon in the destination rail. 2. Choose **Leave Space** to remove only yourself, or **Delete Space** to remove the Space for everybody. 3. Confirm in the dialog. Leaving shows **You will lose access to this Space and its channels. A Space admin can add you again later.** Deleting shows **The Space and its channels will be removed for every member. This action cannot be undone.** Every member can leave. **Delete Space** appears only to a Space administrator who may both edit the Space profile and manage its members. ## Direct messages and group messages Direct messages are not part of a Space, so they have no leave step. A group message has its own action, **Leave group**. A one-to-one direct message can be removed from your own list with **Delete for me**, which hides it for you only and brings it back when a new message arrives. ## If it did not work - **Appoint another Space admin before leaving this Space.** means you are the only administrator. Grant Space administrator access to somebody else in Space administration, then leave. - **The Space could not be updated. Try again.** is a service failure. Repeat the action. - There is no undo for **Delete Space**. If a Space was deleted in error, an Account administrator has to create a new one. --- --- title: Channels and sub-channels type: explanation section: spaces summary: A channel is one shared conversation inside a Space; a sub-channel sits under a channel and draws its members from it. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/page-nav/nav-room-groups.ts - evolve-front-end/components/team-chat/page-nav/nav-space-channel-groups.tsx - evolve-front-end/components/team-chat/dialogs/team-chat-room-settings-dialog.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/create-a-channel, spaces/what-a-space-is, spaces/you-cannot-post-in-a-channel] aliases: [team-chat/rooms, spaces/rooms-and-channels] --- A channel is one shared conversation inside a Space. Channels appear in the navigation column under **Channels**, and every message, pin, thread, and file belongs to exactly one of them. A sub-channel is a channel created under another channel. Its members come from its parent's eligibility pool, and its classification cannot be looser than the parent's. Sub-channels appear indented beneath the parent, with **Collapse sub-channels** and **Expand sub-channels** on the parent row. ## Membership: who can open a channel Each channel is set one of two ways when it is created, and the setting is shown afterwards in **Conversation settings** as **Membership mode**. - **Everyone in this Space** — everyone who belongs to the Space can open the channel automatically. - **Invite only** — only people who are added can open it. ## Posting: who can write in it **Conversation settings** also carries **Who can post**, with two values: **Everyone in the channel** or **Space admins only**. The second turns the channel into an announcement channel; everybody else can read it but the composer shows **Only Space admins can post here**. ## Groups: how channels are arranged A Space administrator can sort channels into groups under **Space settings**, on **Channels & groups**, reached from **Manage channels & groups**. A group is a heading only: **Groups organize channels only. They do not create a channel.** Separately, you can arrange your own copy of the list. The position control on a channel row offers **Move earlier** and **Move later** and needs no special rights, because it changes only your view. ## Archived channels **Archive conversation** keeps the history and makes the channel read-only: **Members can still review the conversation history, but new messages and changes will be disabled. The conversation will be removed from the active channel list.** An archived channel is marked **Read-only archive** and stays searchable. Only channel owners and admins can archive one, and archiving cannot be reversed from Spaces. ## Channel types you may see New channels created from Spaces are always of type **Channel** and classification **Internal**. Older or system-created channels can carry other types, shown in **Conversation info**: **Private channel**, **Decision channel**, **Incident**, **Protocol**, **Model run**, **Study**, and **Dataset**. The type changes the labelling, not the way you post. ## Related - [Create a channel](/help/spaces/create-a-channel) - [Add people to a channel](/help/spaces/add-people-to-a-channel) - [You cannot post in a channel](/help/spaces/you-cannot-post-in-a-channel) - [What a Space is](/help/spaces/what-a-space-is) --- --- title: Create a channel type: how-to section: spaces summary: Choose Create channel in the Space you want, name it, pick who can open it, then choose Create. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/dialogs/team-chat-create-room-dialog.tsx - evolve-front-end/components/team-chat/page-nav/space-action-menu-content.tsx - evolve-front-end/components/team-chat/space-admin/space-channels-tab.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/channels-and-sub-channels, spaces/add-people-to-a-channel, spaces/create-a-space] aliases: [team-chat/create-a-channel, spaces/create-a-room] --- 1. Select the Space in the destination rail. 2. Choose **New channel** on the Space menu beside the Space name. The plus button on a channel group heading and the **Channels** tab in Space administration open the same dialog, and the rail's own button is labelled **Create channel**. 3. Enter a name in **Channel name**. 4. Optional: describe the channel in **Purpose**. 5. Under **Membership**, choose **Everyone in this Space** or **Invite only**. 6. Choose **Create**. The channel opens once it is created. **Space** shows which Space the channel goes into and is decided by where you started; it is not a choice in the dialog. New channels are created with type **Channel** and classification **Internal**. If you chose **Invite only**, nobody else can open the channel until you add them. See [Add people to a channel](/help/spaces/add-people-to-a-channel). ## Add a sub-channel instead To put a channel under an existing one, choose **Add sub-channel** on the parent channel's row. The dialog is titled **New sub-channel** and says **Under {{parentName}}. Members come from this parent channel's eligibility pool.** Fill in **Sub-channel name** and choose **Create**. ## If it did not work - **Channel was not created. Retry when access is ready.** means the Space's storage or access was not ready. Wait a moment and choose **Create** again. - **This account is not authorized to create channels.** means your account does not hold that permission in this Space. Ask a Space administrator. - **No Spaces available** with **Create a Space first, then return here to add its first channel.** means you belong to no Space that accepts a new channel. See [Create a Space](/help/spaces/create-a-space). - **Select a Space for the new channel.** means the dialog was opened without a Space in context. Select a Space in the rail first. --- --- title: Add people to a channel type: how-to section: spaces summary: Open the channel's members list, choose Add member, then add a person by name or email, or bind a workgroup. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/dialogs/team-chat-add-member-dialog.tsx - evolve-front-end/components/team-chat/dialogs/team-chat-add-member-messages.ts - evolve-front-end/components/team-chat/dialogs/use-add-member-dialog.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/space-members-and-roles, spaces/channels-and-sub-channels, spaces/cross-account-access] aliases: [team-chat/invite-people, spaces/invite-people] --- 1. Open the channel and show **Conversation members** from the channel header, or choose **Manage members** in **Conversation settings**. 2. Choose **Add member**. 3. Leave **Add by** on **People**, then search by **Name or email**. 4. Choose the person, pick a **Role**, and choose **Add member**. The dialog is titled **Add member**. Roles you can assign are **Member**, **Reviewer**, **Observer**, **Guest**, and **Admin**. If the person is already a member the dialog treats it as done. You can only do this in a channel you manage. In a channel whose membership mode is **Everyone in this Space** there is nothing to add: **Everyone in the Space has access. Manage membership from Space settings.** ## Add a whole workgroup Switch **Add by** to **Workgroups** to give a whole Space's membership access to this channel in one step. Search by **Workgroup name**, select it, and choose **Bind workgroup**. Inherited members are then listed under **Space** in the member list, marked **via {{workgroup}}**, and the count reads **{{workgroup}} · {{count}} inherited members**. To undo it, choose **Remove from Space** in the member list. The confirmation says **Remove this conversation from {{workgroup}}? Members who only had access through this Space will lose it.** ## Removing somebody Choose **Remove** beside the person. For an inherited member, use **Remove from this conversation** instead. The confirmation reads **Remove {{name}} from this conversation? They stay a member of the {{workgroup}} Space, so this only overrides their access here.** ## If it did not work - **You are not allowed to manage this conversation's members.** means you do not manage this channel. Ask a channel owner, admin, or a Space administrator. - **Member search is not available yet.** or **Search failed. Try again.** means the people search did not answer. Try again in a moment. - **This conversation already belongs to a different Space.** means a workgroup is already bound. Remove that one first. - **This Space cannot be linked to this conversation.** means the workgroup is not eligible for this channel. - **You are the only owner of this conversation.** blocks removing yourself. Make somebody else an owner first. --- --- title: Space members and roles type: reference section: spaces summary: Space administration grants four separate things; channel roles are stored per channel; Space roles are name tags that grant nothing. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/space-admin/space-administration-panel.tsx - evolve-front-end/components/team-chat/space-admin/space-roles-panel.tsx - evolve-front-end/components/team-chat/space-admin/space-members-panel.tsx - evolve-front-end/lib/team-chat/constants.ts - evolve-front-end/app/i18n/locales/en/team-chat.json - ops/plans/evolve-team-chat/73-space-roles-contract.md verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/add-people-to-a-channel, spaces/you-cannot-post-in-a-channel, spaces/cross-account-access] aliases: [team-chat/roles, spaces/roles] --- Three different things are called a role in Spaces, and they do not overlap. Space administration decides what you may change about a Space. A channel role is stored per channel. A Space role is a name tag with no permissions at all. ## Space administration Open **Space settings** from the Space menu. It has four tabs: **Overview**, **Channels**, **Members**, and **Roles**. Each tab is granted separately, so an administrator may hold some and not others. | What it grants | What you can do | | --- | --- | | Reorder channels | Change the shared order of a Space's channels | | Manage channels | Create a channel, and create, rename, and delete channel groups | | Edit the Space profile | Change the Space **Name**, its image, **Hide inactive threads after**, **Who can find and join**, and **Collaboration access** | | Manage Space members | Add and remove Space members, grant and remove Space administrator access, and manage Space roles | **Space settings** appears if you hold any of the four. **Delete Space** appears only if you hold both the profile and the member grants. Every member can use **Leave Space**. On the **Members** tab, a person's menu offers **Make Space admin** and **Remove Space admin**. You cannot promote yourself: **Another Space administrator has to grant this.** A member who belongs to a parent Space cannot be removed here: **They belong to a parent Space. Remove them there.** ## Channel roles Each channel keeps its own membership with a role per person. The roles that appear are **Owner**, **Admin**, **Member**, **Reviewer**, **Observer**, **Guest**, **Agent**, and **Auditor**. When you add somebody you can assign **Member**, **Reviewer**, **Observer**, **Guest**, or **Admin**. The channel actions that depend on the role are held by channel owners and admins, and by Space administrators: - **Rename channel** - **Who can post** - **Manage members** and **Membership mode** - **Archive conversation** - Posting in a channel set to **Space admins only** - Resolving and reopening threads Other roles change the label beside the name and who `@admins` reaches; they do not change what the interface lets you do. ## Space roles **Roles** in Space administration creates named groups of people: **Named groups of people in this Space.** A role is affiliation only. Granting or removing one never changes what a person may do. - **New role** creates one. Names are 1 to 100 characters and unique within the Space, and a Space holds at most 50. - **Assign role** adds people who are already Space members: **Give {{name}} to people who are already members of this Space.** - **Archive** retires a role: **The role disappears from rosters and pickers. Messages and Space membership are not affected.** Roles become mentionable. Typing `@` in a channel offers the Space's roles alongside people. See [Mention someone or a role](/help/spaces/mention-someone). ## Related - [Add people to a channel](/help/spaces/add-people-to-a-channel) - [You cannot post in a channel](/help/spaces/you-cannot-post-in-a-channel) - [Cross-Account access](/help/spaces/cross-account-access) --- --- title: Cross-Account access type: explanation section: spaces summary: A Space can be shared with another Account through a collaboration; members of that Account then read, or read and post, in its channels. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/space-admin/space-collaboration-sharing-settings.tsx - evolve-front-end/components/team-chat/chrome/room-header.tsx - evolve-front-end/lib/team-chat/types.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/space-members-and-roles, spaces/you-cannot-see-a-space, spaces/you-cannot-post-in-a-channel] aliases: [team-chat/cross-account, spaces/collaborations] --- A Space belongs to one Account, but it can be opened to another Account through a collaboration. People reached that way are not Space members; their access comes from the collaboration and can be withdrawn without touching the Space. ## What an administrator sets Space administration shows **Shared with collaborations**: **Members of the Accounts in these collaborations can read this Space's channels, or read and post, once collaboration access is on.** Each collaboration in the list is tagged **Read only** or **Read and post**. One switch, **Collaboration access**, decides whether any of it takes effect: **Off keeps every grant inert; on lets the listed collaborations in.** Only a Space administrator who may edit the Space profile can move it; everybody else sees **Only Space administrators can change collaboration access.** The collaborations themselves are not created in Spaces. If the list is empty you see **This Space is not shared with any collaboration. Account administrators share Spaces in Space administration.** ## What it looks like from the other Account A channel reached through a collaboration appears in your navigation column with the rest. Its header carries one extra line, **Shared by {{accountName}}**, naming the Account that owns the Space. There is no other marking. What you can do there depends on the collaboration's tag. With **Read and post** you take part normally. With **Read only** you can read, search, see who is typing, and follow threads, but a send is refused and the channel shows **This account is not authorized to send in the selected channel.** You hold no Space administration in a Space you reach this way, so **Space settings** does not appear. ## When access disappears Access through a collaboration ends the moment any part of the chain stops holding: the switch is turned off, the grant is revoked or expires, or your Account's place in the collaboration ends. The channel then leaves your navigation column without a message. Ask the owning Account's administrator whether the collaboration is still active. ## Related - [Space members and roles](/help/spaces/space-members-and-roles) - [You cannot see a Space](/help/spaces/you-cannot-see-a-space) - [You cannot post in a channel](/help/spaces/you-cannot-post-in-a-channel) --- --- title: Reply in a thread type: how-to section: spaces summary: Open the actions on the message you want to answer and choose Reply in thread; the replies open in a panel beside the channel. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/threads/thread-panel.tsx - evolve-front-end/components/team-chat/threads/use-thread-actions.ts - evolve-front-end/components/team-chat/shared/team-chat-message-action-descriptors.ts - evolve-front-end/app/[lng]/spaces/[roomId]/threads/[threadId]/page.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/threads-in-a-channel, spaces/unread-and-mentions, spaces/channels-and-sub-channels] aliases: [team-chat/reply-in-thread] --- 1. Point at the message you want to answer. Its actions appear above it. 2. Choose **Reply in thread**. On a phone, press and hold the message and choose it from the sheet. 3. Type your reply in **Message this thread** and send it. The thread opens as a panel beside the channel. Your first reply is what creates the thread, so nothing is saved until you send it. After that the original message grows a footer that reads **{{count}} replies**, and anybody in the channel can open the thread from there. A thread has no name until somebody gives it one. Until then it is shown as **Discussion**. ## Reply in the channel instead **Reply** quotes the message in the channel's own composer rather than starting a thread. The composer then shows **Replying to {{name}}**, and **Cancel reply** drops the quote. Use it for a one-line answer that everyone in the channel should see. There is no **Reply in thread** inside a thread. Threads do not nest. ## Rename or close a thread The thread panel header carries a pencil control, **Rename thread**. Enter a name in **Thread name** and save it; names can be up to 256 characters. The header's overflow menu also resolves and reopens the thread, and offers **Open thread in full view**, which opens the thread on its own page at `/spaces/{roomId}/threads/{threadId}`. **Close thread** closes the panel and leaves the thread in place. ## If it did not work - If **Reply in thread** is absent, you are already inside a thread panel, or the message has not finished sending. Wait for the message to settle and try again. - **Thread rename failed.** is a service failure. Choose the pencil again and save. - **Enter a thread name.** or **Thread names can contain up to 256 characters.** means the name is empty or too long. - If you cannot type in the channel or the thread at all, see [You cannot post in a channel](/help/spaces/you-cannot-post-in-a-channel). --- --- title: Find the threads in a channel type: reference section: spaces summary: Threads appear under the channel row in the navigation column and in full on the channel's Threads tab. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/threads/team-chat-threads-view.tsx - evolve-front-end/components/team-chat/page-nav/team-chat-room-thread-navigation.tsx - evolve-front-end/components/team-chat/threads/use-room-thread-directory.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/reply-in-a-thread, spaces/unread-and-mentions] aliases: [team-chat/threads] --- Threads appear in two places: at most three of them under the channel row in the navigation column, and all of them on the channel's **Threads** tab. ## Under the channel row The navigation column lends each channel up to three thread rows. Which three depends on the channel: - For the channel you have open, the rows are its live discussions, ordered so that anything needing you comes first: mentions, then more unread replies, then threads you marked as unread, then most recent activity. - For any other channel, only threads that need you appear at all. Below those rows, **All threads ({{count}})** opens the **Threads** tab. When more threads need you than fit, the list adds **{{count}} more unread threads** and **{{total}} more mentioning you**. Muted threads never appear on the unread path. In the **Unread** and **Mentions** views of the navigation column, thread rows are hidden entirely so that one row means one conversation. ## The Threads tab Open a channel and choose **Threads** in the channel header. The tab lists every thread with who started it, its reply count, its last activity, and its state: **Open**, **Resolved**, or **Closed**. Three controls narrow the list: a status filter, a name search, and **Unread and mentions only**. Each row has its own menu with **Rename thread**, **Mark as read** or **Mark as unread**, and the thread's notification level. An empty tab reads **No threads yet** with **Threads start from a message: open its message actions and choose Reply in thread.** ## Standalone threads A thread normally hangs off a message. You can also start one from the channel row's context menu with **Create thread**, which asks for a **Thread name** and opens the thread on its own page. ## Hiding old threads A Space administrator can set how long an idle thread stays in the lists, under **Space settings** on the overview, as **Hide inactive threads after**. The description is **Keeps channel lists tidy without archiving or deleting threads.** A channel can override the Space value with **Use Space default**, a number of days, or **Never**. ## Related - [Reply in a thread](/help/spaces/reply-in-a-thread) - [Unread and Mentions](/help/spaces/unread-and-mentions) - [Notifications and mute](/help/spaces/notifications-and-mute) --- --- title: Mention someone or a role type: how-to section: spaces summary: Type @ in the composer and pick a name; a resolved mention notifies that person even when the conversation is muted. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/kernel/team-chat-mentions.ts - evolve-front-end/components/team-chat/kernel/team-chat-mention-resolution.ts - evolve-front-end/components/team-chat/composer/team-chat-mention-suggestions.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/unread-and-mentions, spaces/space-members-and-roles] aliases: [team-chat/mentions] --- 1. Put the cursor at the start of a word in the composer and type `@`. 2. Type part of the person's name or email address. The list is labelled **Mention a member**. 3. Choose the entry. Spaces inserts the name and tracks it as a mention. Only active members of that conversation are offered, and never yourself. Up to eight people appear at a time, people before agents. ## The group mentions Two group mentions exist once you have typed at least two matching characters: - `@all`, described as **Conversation members**, mentions everyone in the conversation. - `@admins`, described as **Notify this conversation's admins**, mentions the conversation's owners and admins. A mention can reach at most 50 members of a conversation. There is no `@here` and no `@channel`. ## Space role mentions If a Space administrator has created Space roles, typing `@` also offers up to four of them under **Roles**, with the number of people each holds. Choosing one mentions everybody who holds that role and is also a member of the conversation. A role mention is treated as a broadcast, so a muted conversation suppresses it. Selecting a person's mention chip in a message opens their profile; selecting a role's chip lists who holds it. ## What is and is not a mention A mention only counts when the text still names a current member when the message is sent. Text inside inline code, a fenced code block, an HTML comment, or a link target does not count. If two members have the same display name, neither is mentioned. When you edit a message, the whole mention set is worked out again from the visible text. ## If it did not work - **No matching conversation members.** means nobody in this conversation matches what you typed. Add the person to the channel first; see [Add people to a channel](/help/spaces/add-people-to-a-channel). - **Conversation members could not be loaded.** is a service failure. Close and reopen the list. - If the name appears in plain text without a highlight, it did not resolve. Delete it and pick the entry from the list again. --- --- title: Unread and Mentions type: reference section: spaces summary: Unread counts conversations that need you; Mentions counts the individual mentions inside them. Both are per destination. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/kernel/navigation-attention.ts - evolve-front-end/components/team-chat/page-nav/nav-destination-header.tsx - evolve-front-end/components/team-chat/page-nav/nav-room-groups.ts - evolve-front-end/components/team-chat/page-nav/use-nav-mark-all-read.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/notifications-and-mute, spaces/threads-in-a-channel, spaces/notifications-are-not-arriving] aliases: [team-chat/unread, spaces/unread-tab] --- The navigation column has three views, labelled **All**, **Unread**, and **Mentions**. The number beside **Unread** is how many conversations need you. The number beside **Mentions** is how many mentions are waiting for you across those conversations. The two numbers count different things on purpose: - **Unread** counts rows. A conversation is counted once, whether it holds one new message or two hundred. Its full wording is **{{count}} conversations with unread messages**. - **Mentions** counts mentions. Every mention in every counted conversation is added together, including mentions inside threads. Its full wording is **{{count}} unread mentions**. Every conversation with a mention is also unread, so the **Unread** view always contains the **Mentions** view. Both views are flat: no channel groups, no sub-channel nesting, and no thread rows, so one row is one conversation. Both are scoped to the destination you have selected, so a Space's numbers cover only that Space. ## What each row shows A conversation row shows a number only when it holds mentions. Unread without a mention shows a marker rather than a count. Displayed numbers stop at 99; above that the row's own description says 99 or more rather than an exact figure. A parent channel rolls its sub-channels in and says so: **{{count}} unread including sub-channels**. ## What muting changes Muting a conversation drops its unread count to zero, so it never appears in **Unread** and never carries an unread marker. Two things survive muting: a mention still counts, and a conversation you marked as unread yourself still stands out. A muted row with unread but no mention reads **Muted; excluded from roll-up**. ## Marking things read Reading to the bottom of a conversation marks it read on its own, as long as the tab is in front and the window has focus. To do it by hand, open the context menu on a conversation row and choose **Mark as read**, or **Mark as unread** to put the marker back. Threads carry the same pair. **Mark all as read** is on the Space menu beside the Space name and clears everything, then returns the view to **All**. ## Empty views - **No unread conversations right now.** - **No conversations with mentions right now.** ## Related - [Notifications and mute](/help/spaces/notifications-and-mute) - [Find the threads in a channel](/help/spaces/threads-in-a-channel) - [Notifications are not arriving](/help/spaces/notifications-are-not-arriving) --- --- title: Notifications and mute type: how-to section: spaces summary: Set what a single conversation notifies you about from its row menu, and set the default for everything in Spaces settings. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/page-nav/use-room-row-actions.ts - evolve-front-end/components/team-chat/notification-preferences/team-chat-global-notification-settings.tsx - evolve-front-end/components/team-chat/chrome/team-chat-browser-push-prompt.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/unread-and-mentions, spaces/notifications-are-not-arriving] aliases: [team-chat/notifications, spaces/mute] --- 1. Open the context menu on the conversation's row in the navigation column. 2. Open **Notifications**. 3. Choose **All messages**, **Mentions**, **Nothing**, or **Use default ({{level}})**. The row menu also holds **Mute notifications**, with **Mute for 15 minutes**, **Mute for 1 hour**, **Mute for 3 hours**, **Mute for 8 hours**, **Mute for 24 hours**, and **Mute until I unmute**. Once a conversation is muted its menu shows **Muted** and a single **Unmute**. Threads carry the same pair of settings on their own rows, so a noisy thread can be silenced without silencing its channel. ## The default for everything 1. Choose your name at the bottom of the navigation column to open **Spaces settings**. 2. Under **Notifications**, choose **All messages**, **Mentions**, or **Nothing**. This is your account-wide default. Any conversation left on **Use default ({{level}})** follows it. The most specific setting wins: a thread's own setting overrides its channel's, and a channel's overrides your account default. ## What mute changes and what it does not Muting stops the notification and takes the conversation out of the **Unread** view and out of the unread roll-up; the row then reads **Muted; excluded from roll-up**. Two things still get through: a mention of you by name, and a conversation you marked as unread yourself. Setting the level to **Nothing** instead of muting shows **Notifications off** on the row. ## Browser notifications While a Spaces tab is open in the background, Spaces offers **Stay up to date** with **Enable browser notifications for direct messages and Spaces mentions while this tab is in the background.** Choose **Enable notifications** and allow the browser prompt. **Not now** dismisses it, and it does not come back on its own. ## If it did not work - **Notification preference could not be updated. Try again.** is a service failure. Choose the level again. - **We couldn't load notification preferences. Try again.** in **Spaces settings** means the default could not be read. Choose **Retry**. - **Browser notifications are blocked** with **Allow notifications for this site in your browser settings, then try again.** means the browser refused. Change the site permission, then choose **Try again**. - Nothing arriving at all is covered by [Notifications are not arriving](/help/spaces/notifications-are-not-arriving). --- --- title: Send a direct message type: how-to section: spaces summary: Open DMs in the destination rail, choose the plus button, pick one person for a direct message or several for a group. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/dialogs/team-chat-create-direct-message-dialog.tsx - evolve-front-end/components/team-chat/page-nav/nav-notes-to-self.test.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/what-a-space-is, spaces/notifications-and-mute] aliases: [team-chat/direct-messages, spaces/dms] --- 1. Choose **DMs** at the top of the destination rail on the far left. 2. Choose the plus button, **New direct message**. 3. Search for people by **Name or email**. 4. Choose **Start direct message** for one person, or **Start group message ({{count}} people)** for several. A one-to-one conversation with somebody you have written to before resumes rather than creating a second one. A group message is always new, and it can hold at most 10 people including you. ## Notes to self **Notes to self** is a conversation with nobody else in it. Open it with **Open Notes to self** in the direct messages section. It behaves like any other conversation: attachments, threads, pins, and search all work. ## Removing a direct message from your list Open the context menu on a direct message row and choose **Delete for me**. The dialog says **This removes the conversation from your list only. Nothing is deleted, the other side is not affected, and the conversation returns if a new message arrives.** Only direct messages can be removed this way. To leave a group message for good, choose **Leave group** on its row. ## Blocking somebody Open a person's entry in the member list and choose **Block {{name}}**. The dialog says **Messages from {{name}} will be hidden, and notifications from them will be suppressed. You can unblock them at any time in Profile settings under Blocked people.** Unblock from **Spaces settings**, under **Blocked people**. ## If it did not work - **No matching people** with **Try another name or email.** means the search found nobody. Try the email address. - **A group message can have at most 10 people.** means you picked too many. Remove somebody, or create a channel instead. - **The conversation could not be opened. Try again.** is a service failure. Choose the action again. - **You cannot send messages to a member you have blocked.** means you blocked the other person. Unblock them in **Spaces settings**. --- --- title: Pin a message type: how-to section: spaces summary: Open the actions on a message and choose Pin message; pinned messages collect on the channel's Pins tab. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/pins/team-chat-pins-view.tsx - evolve-front-end/components/team-chat/pins/use-room-pins.ts - evolve-front-end/components/team-chat/shared/team-chat-message-action-descriptors.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/channels-and-sub-channels, spaces/search-in-spaces] aliases: [team-chat/pins] --- 1. Point at the message. Its actions appear above it. 2. Choose **Pin message**. On a phone, press and hold the message and choose it from the sheet. 3. Open **Pins** in the channel header to see everything pinned there. **Pin message** appears only if you may manage the channel's pins. Spaces confirms with **Message pinned.** ## Unpin Unpinning is not a message action. Open the **Pins** tab, find the row, and choose **Unpin**. ## The Pins tab **Pins** lists the channel's pinned messages together with any decisions, actions, and sources recorded from them. Filters narrow the list to **Messages**, **Decisions**, **Actions**, or **Sources**. An empty tab reads **No messages are pinned in this conversation.** **Pin message as...** records the message under one of those headings instead of pinning it plainly. Only a plain pin is stored on the server; the other three are notes on the tab, capped at eight and cleared when the page reloads. Use a plain pin for anything that has to last. ## Pinning a conversation instead Pinning a message and pinning a conversation are different. The context menu on a channel or direct message row pins the conversation itself, which moves it into the **Pinned** section at the top of the navigation column. That changes only your own view. ## If it did not work - If **Pin message** is absent, you do not manage pins in this channel, or the message has not finished sending. - **Message was not pinned. Try again.** and **Message was not unpinned. Try again.** are service failures. Repeat the action. - **Pinned messages could not be loaded.** means the tab could not read the list. Reopen the tab. --- --- title: Share a file in a channel type: how-to section: spaces summary: Use the plus button in the composer to upload a file or pick one from Drive, or drag files onto the message pane. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/composer/use-composer-attachment-intake.ts - evolve-front-end/components/team-chat/composer/content-platform-picker-dialog.tsx - evolve-front-end/components/team-chat/kernel/attachment-intake.ts - evolve-front-end/components/team-chat/kernel/constants.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/the-files-tab, spaces/channels-and-sub-channels] aliases: [team-chat/attachments, spaces/upload-a-file] --- 1. Choose the plus button at the left of the composer, **Add attachment and tools**. 2. Under **Attach**, choose **Upload photos & files** to pick from this device, **Upload from Drive** to reuse a file you already have, or **Attach video** for video. 3. Wait for the staged chip to finish uploading. 4. Add a message if you want one, and send. You can also drag files onto the message pane. The overlay reads **Drop to upload to {{roomName}}**. Dragging works in a thread panel too. Pasting an image from the clipboard attaches it and announces **Image attached from clipboard**. ## Reuse a file from Drive **Upload from Drive** opens a picker: **Choose an existing file to attach without uploading it again.** Search with **Search files**, then choose **Attach** on the row. Attached rows change to **Attached**. Folders are not offered. ## Limits - At most 10 files per message, and at most 10 videos per message. - At most 50 GB per file. - Video is restricted to MP4, WebM, QuickTime, MPEG, and Matroska. Everything else is checked against the platform's file-type catalogue when the upload starts, so there is no fixed list to consult here. ## What happens after you send The file is scanned before anybody else can open it. While that runs, your own copy reads **Scanning — visible to others shortly** and the card shows **Processing** with **Scan in progress**. When it finishes the card shows **Clean** and offers **Download**. If the scan blocks the file the card reads **Quarantined** with **Download blocked**, and the sender sees **Blocked — recipients cannot access this file**. Images render inline. A message with several images becomes a tiled gallery; from five images the last tile reads **Show {{count}} more images**. Choosing an image opens it full size, where the left and right arrow keys move between images, plus and minus zoom, and zero resets. Every file you send is also listed on the channel's **Files** tab. See [The Files tab](/help/spaces/the-files-tab). ## If it did not work - **Attach up to {{count}} files per message.** or **Attach up to {{count}} videos per message.** means the message is full. Send it and start another. - **Use Attach video for video files.** means a video went through the wrong picker. Use **Attach video**. - **This file type is not available for this release phase.** means the file-type catalogue rejects it. - **Choose a non-empty file.** means the file has no content. - **Finish or remove file uploads before sending** means a chip is still uploading. Wait, or use the chip's cancel control. - **Upload failed. Try again.** on a chip offers a retry control on the chip itself. --- --- title: The Files tab type: reference section: spaces summary: Files lists everything in the channel's file store, newest first, with a download control on each file that has one. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/files/team-chat-files-view.tsx - evolve-front-end/components/team-chat/files/use-room-files.ts - evolve-front-end/components/team-chat/chrome/room-header.tsx - evolve-front-end/app/api/team-chat/rooms/[roomId]/files/route.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/share-a-file, spaces/you-cannot-see-the-files-tab, spaces/search-in-spaces] aliases: [team-chat/files, spaces/room-files] --- **Files** is the fourth tab in a channel header. It lists the channel's files, newest first, each with its name and the date it arrived, and a download control on every file that has one. Its address is the channel URL with `?view=files`, so you can link straight to it. The tab is read-only. Files arrive by being shared in the channel; see [Share a file in a channel](/help/spaces/share-a-file). There is no upload, rename, move, delete, or folder control here, and no filter, sort, or search box. ## What is listed and what is not Everything in the channel's own file store is listed, whether it came from a message or was placed there by the platform. A file whose bytes are gone, whose scan has not cleared, or whose original message is no longer readable is left out rather than shown as broken. Rows without a downloadable attachment behind them appear as plain entries with no download control. Anybody who can read the channel's messages can list and download its files. There is no separate permission and no setting to turn the tab on or off. ## Paging Files load 50 at a time. **Load more files** fetches the next 50. ## States - **Loading files…** while the list is being read. - **No files yet** when the channel has never taken a file. - **Files could not be loaded.** with **Retry** when the read failed. ## Finding a file by name The tab has no search. Use the Spaces search panel instead, which has a **Files** result type. See [Search in Spaces](/help/spaces/search-in-spaces). ## Related - [Share a file in a channel](/help/spaces/share-a-file) - [You cannot see the Files tab](/help/spaces/you-cannot-see-the-files-tab) - [Search in Spaces](/help/spaces/search-in-spaces) --- --- title: Link cards type: reference section: spaces summary: A link pasted into a message expands into a card; GitHub, scholarly, media, and Evolve links get purpose-built cards. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/cards/card-registry.ts - evolve-front-end/components/team-chat/cards/team-chat-generic-link-card.tsx - evolve-front-end/components/team-chat/cards/providers/github-card.tsx - evolve-front-end/lib/team-chat/link-preview-providers/github/parse.ts - evolve-front-end/components/team-chat/composer/composer-link-preview-setting.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/share-a-file, spaces/channels-and-sub-channels] aliases: [team-chat/link-previews, spaces/unfurls] --- A link you paste into a message expands into a card below it. Most links get a card built from the page's own metadata: host, title, description, and image. Some kinds of link get a card built for them. ## GitHub A GitHub link is recognised as one of seven kinds, and each shows different facts: | Kind | Card | What it shows | | --- | --- | --- | | Repository | **GitHub repository** | Language, description, stars, forks, last update | | Issue | **GitHub issue** | Number, **Open** or **Closed**, author, comment count | | Pull request | **GitHub pull request** | Number, **Open**, **Closed**, **Merged**, or **Draft**, branches, commits, files changed, lines added and removed | | Workflow run | **GitHub workflow run** | Workflow name, run number, result, branch, who started it | | Commit | **GitHub commit** | Short hash and commit date | | File | **GitHub file** | Language, path, branch or ref | | Release | **GitHub release** | Tag, name, **Pre-release** or **Published**, publication date | Public repositories work with no setup. A link to a private repository needs two things: private previews turned on for Spaces by an administrator, and a GitHub connected account of your own. Without them the card offers **Connect GitHub to preview this** with **Connect account**, or one of **GitHub App installation needed**, **Access restricted** with **Request access**, or **External previews are off for this room**. A private-repository card is resolved for you alone and is never shared with anybody else in the channel; it answers at repository level, so a link to a file or a run inside a private repository shows the repository. ## Other cards built for the source - Research and reference: **Scholarly article**, **arXiv preprint**, **PubMed article**, **Book**, **Wikipedia article**, **Clinical trial**, research organizations, EUR-Lex acts, and security advisories. - Media: **YouTube**, **TikTok**, Vimeo, Loom, and Spotify. - Recognition only, with no content read from the site: X, Reddit, LinkedIn, Instagram, Microsoft 365, and Google Workspace. These cards name the kind of thing and offer **Open on {{platform}}** or **Open in {{provider}}**. - Meeting invitations, shown as **Meeting link** with **Open meeting link** and no meeting detail. - Evolve's own records: a decision you can acknowledge from the card, a ticket, a Drive file, and a link to another channel or thread. ## Turning previews off - For one message: a checkbox appears under the composer when your draft holds a link. Clear **Show link previews** before sending. It returns to on for your next message. - For every message you see: open **Spaces settings** and clear **Show previews for links shared in messages.** under **Link previews**. - For a message already sent: its actions offer **Hide preview**, **Remove previews for everyone**, and **Restore previews**. ## When a card does not appear - **Preview blocked** with **This link is not eligible for a preview.** - **No preview available** with **No Open Graph or Twitter Card metadata was available.** - **This link is private, needs sign-in, or does not exist.** - **Preview expired** and **Card type not supported** ask you to reopen or update. - **Not shared with this conversation** appears for an Evolve record the channel cannot read. The card offers a way to copy an access request for its owner. ## Related - [Share a file in a channel](/help/spaces/share-a-file) - [Channels and sub-channels](/help/spaces/channels-and-sub-channels) --- --- title: Search in Spaces type: how-to section: spaces summary: Press Ctrl+K or Cmd+K to search everything you can read, or use the channel header's search box for one conversation. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/search/team-chat-search-panel.tsx - evolve-front-end/components/team-chat/chrome/team-chat-room-search.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/the-files-tab, spaces/threads-in-a-channel] aliases: [team-chat/search, spaces/find-a-message] --- 1. Press Ctrl+K, or Cmd+K on a Mac. The panel is titled **Search Spaces**. 2. Type at least two characters in **Find a message, file, person, direct message, channel, or Space**. 3. Choose **Search**, then choose a result to open it. Results are grouped as **Messages**, **Files**, **People**, **Direct messages and channels**, and **Spaces**. The **Result type** control narrows them to one group. **Search scope** limits the search to the current thread, the current conversation, or one Space instead of everything. ## Narrowing a search Open **Filters** for: - **Sender** and **Author**, with **Anyone**, **People**, **Agents**, or **People and agents** - **From** and **To** dates - **Exact phrase** and **Exclude words** - **Has file** and **Has link** - **Mentions me** - **Order**, with **Most relevant** or **Newest** ## Searching one conversation A wide window puts a search box in the channel header, labelled **Search in {{roomName}}**. It searches that conversation only, including history older than what is on screen. Its own help text says so, and names the filter tokens it takes. Results come in two groups. **Loaded messages** matches what is already on screen, and takes the `from:`, `mentions:`, `has:link`, and `decision:true` tokens. **Earlier in this conversation** searches the stored history and needs at least two plain characters; the tokens do not apply there. A match from history opens in place rather than moving the timeline. **Show more results** loads the next ten. This box searches messages only, never file names. It is only present on wide windows; on a narrow window, use the Spaces search panel. ## If it did not work - **Enter at least two characters to search.** means the query is too short. - **No matches** with **Try another phrase or widen the scope.** means nothing matched. Widen **Search scope** or clear the filters. - **Search failed. Try again.** and **History search failed.** are service failures. Choose **Retry**. - **History search is unavailable in this conversation.** means the stored history cannot be searched here. The **Loaded messages** group still works. - Search never returns something you cannot already read, so a message in a channel you are not in will not appear. --- --- title: Start or join a call type: how-to section: spaces summary: Choose Start call in the channel header, pick your camera and microphone in the pre-join dialog, then join. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/voice/voice-strip.tsx - evolve-front-end/components/team-chat/voice/voice-prejoin-dialog.tsx - evolve-front-end/components/team-chat/voice/voice-controls.tsx - evolve-front-end/components/team-chat/page-nav/nav-current-user-bar.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/channels-and-sub-channels, spaces/add-people-to-a-channel] aliases: [team-chat/calls, spaces/voice, spaces/video-call] --- 1. Open the channel and choose **Start call** in the channel header. If a call is already running the button reads **Join call ({{formattedCount}})** instead. 2. In the pre-join dialog, **Join {{roomName}}**, set **Join with** to **Camera on** or **Camera off** and **Microphone on** or **Microphone off**. 3. Check **Microphone**, **Speaker**, and **Camera**, then confirm. The dialog says **Choose what to share when you join. Camera, microphone, devices and screen sharing stay one click away during the call.** Your choices are remembered on that browser. The call control is present when calls are turned on for your Account. If a channel header has no call button, calls are not enabled there. ## How other people join - The channel header offers them **Join call ({{formattedCount}})**. - The channel's row in the navigation column shows **{{count}} in call** with a **Join** button. - You can call people directly. Choose **Ring people** during the call: **Choose up to {{count}} channel members. An invite never joins them automatically.** Search **Channel members**, select them, and choose **Ring selected**. They see **Incoming call** with **Answer** and **Decline**. ## Controls during a call The call strip carries **Mute** and **Unmute**, **Deafen** and **Undeafen**, **Start camera** and **Stop camera**, and, on a wide window, **Share screen**, **Ring people**, and **Devices**. On a narrow window those sit behind **More**, described as **Share, choose devices, ring teammates, or manage this call.** **Share screen** hands the choice of what to share to your browser: **Your browser will ask what to share. Sharing tab audio is a browser option.** A shared screen becomes the main object on the stage, marked **{{name}} is sharing**. **Show call details** expands the stage to the participant tiles, with **Open fullscreen**. Tiles are marked **Speaking**, **Muted**, **Camera on**, **Sharing screen**, **Weak connection**, or **Reconnecting**. ## Leaving and ending **Leave call** leaves only you: **You will leave this call. Everyone else stays connected.** A channel owner can also choose **End the call for everyone...**, which disconnects everybody. A call that nobody joins ends itself: **Waiting for someone to join. The call ends in {{countdown}}.** If everybody leaves, **Everyone left. The call ends in {{countdown}}.** **Stay** keeps it live for five more minutes. You can move around Spaces during a call and stay connected. Leaving Spaces altogether warns **Leave the call? Navigating away from Spaces will disconnect you.** ## Choosing devices before you call The bar at the bottom of the navigation column opens **Audio and video settings**: **Choose the microphone, speaker and camera Spaces calls use on this browser. Choices are remembered here and can be changed during a call under Devices.** It includes **Test microphone**, which is local: **The test is local and is not sent to the call.** ## If it did not work - **Microphone is blocked in the browser. Allow it from the lock or camera icon in the address bar, then choose it here. You can still join and listen.** Change the browser permission, then pick the device again. - **No microphone is available. Connect one, then choose it under Devices.** and the camera equivalent mean no device was found. - **Screen sharing is unavailable in this browser.** means the browser does not offer it. Use a different browser. - **The call could not connect. Check your network and browser media access, then try again.** and **Call media could not connect. Try joining again.** are connection failures. Join again. - **The call service is temporarily unavailable. Try again shortly.** means the call service did not answer. - **That call ended. Waiting for the next one.** means the call finished while you were joining. --- --- title: Agents and desks in a channel type: explanation section: spaces summary: A desk is an AI teammate you reach by mentioning it in its own Space; agent work can also be started from a single message. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/kernel/agent-activation-access.ts - evolve-front-end/components/team-chat/message-actions/use-agent-activations.ts - evolve-front-end/components/team-chat/composer/team-chat-mention-suggestions.tsx - evolve-front-end/app/i18n/locales/en/desks.json - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/mention-someone, spaces/space-members-and-roles] aliases: [team-chat/agents, spaces/claude-desk, spaces/desks] --- A desk is an AI teammate with an identity of its own. **Each desk is an AI teammate with its own Space and Drive folder. Mention it in its Space and it answers in a few minutes.** You reach it the same way you reach a person: type `@`, pick its name, and send the message. Desks appear in the mention list under **Agents**, separately from **People**, and their messages are labelled **Agent**. There is no command to type and no special token. ## What a desk can do A desk owns its own identity, inbox, Space, Drive folder, and runtime, and it works within limits its owner set: how many tasks it may run at once, how much AI usage it may spend a day, and how much computer time. When it reaches a daily limit it stops until the next day. A desk is set up and managed outside Spaces, in AI Studio under Desks. That is where its description, its limits, and its state live, and where its activity is listed with the trigger **Mentioned in its Space** and the outcome of each turn. Its states include **Ready — answers when mentioned in its Space**, **Working now**, and **Paused — daily limit reached**. ## Starting agent work from a message Separately from mentioning a desk, you can point an agent that is already a member of the channel at one specific message. Open the message's actions and choose **Start agent work**: **Ask an agent in this channel to respond to the committed message. This does not create another conversation.** Pick the agent under **Agent**, then choose **Start work**. The dialog states what is checked: **Connector availability, authority, payer, and limits are checked when work starts. Existing approvals and side-effect controls still apply.** The message then carries a status that updates while the work runs: **Accepted**, **Queued**, **Waiting for agent**, **Waiting for budget**, **Working**, **Waiting for input**, **Complete**, **Failed**, **Stopped**, **Expired**, or **Not permitted**. **Stop work** ends it early. This needs three things: your account holds the permission to start agent work in that channel, the channel has at least one active agent member, and the channel is not read-only. ## What agents can read An agent works with what the channel already gives it. Attachments follow the channel's access policy, stated in the dialog as **{{count}} attachments follow channel access policy**. An agent has no wider reach than the channel it is a member of. ## Related - [Mention someone or a role](/help/spaces/mention-someone) - [Space members and roles](/help/spaces/space-members-and-roles) --- --- title: You cannot see a Space type: troubleshooting section: spaces summary: A Space you expect is missing because you are not a member, it is invite only, your Account lost Spaces access, or a collaboration ended. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/page-nav/nav-state.tsx - evolve-front-end/components/team-chat/space-discovery/space-discovery-surface.tsx - evolve-front-end/components/team-chat/space-admin/space-collaboration-sharing-settings.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/explore-and-join-a-space, spaces/cross-account-access, spaces/what-a-space-is] aliases: [team-chat/missing-space, spaces/space-not-visible] --- Work through the message you actually see. Each one has a different cause and a different fix. ## Spaces access required Full text: **Conversations appear after this account has Spaces access.** Your account does not have access to Spaces at all, so no Space can appear. Ask an Account administrator to grant your account access to the Spaces app. ## No conversations yet Full text: **Conversations will appear once you have Spaces access.** You have access but belong to nothing yet. Choose **Explore Spaces** and join one, or ask a Space admin to add you. See [Explore and join a Space](/help/spaces/explore-and-join-a-space). ## Access required Full text: **You do not have permission to view this Spaces conversation.** You opened a link to a channel you are not a member of. Ask somebody in that channel to add you. ## No Spaces are available to join right now. You are looking at **Explore Spaces** and nothing is open to your Account. Only Spaces set to **Everyone in your organization** are listed. A Space set to **Invite only** never appears anywhere until somebody adds you: **Only people who are added can see this Space.** Ask a Space admin for an invite. ## Space discovery is not available for this organization yet. Self-service joining is not turned on for your Account, so there is no directory to browse. A Space admin has to add you. ## Conversations failed to load Full text: **Check your connection and try again.** This is a failure to read the list, not a permission problem. Choose **Retry**. ## A Space that used to be there has gone Three causes, in order of likelihood. 1. You or somebody else used **Leave Space**. Ask a Space admin to add you again, or rejoin from **Explore Spaces** if the Space is open to your Account. 2. The Space was reached through a collaboration with another Account, and the collaboration ended, its grant expired, or its owner turned **Collaboration access** off. Nothing is shown when this happens. Ask the owning Account's administrator. See [Cross-Account access](/help/spaces/cross-account-access). 3. The Space was deleted. **Delete Space** cannot be undone. ## The Space is there but has no channels Full text: **You joined this Space, but it does not have any channels yet. A Space administrator can create one.** The Space exists and you are a member. Ask a Space administrator to create a channel, or create one yourself if you may. ## Related - [Explore and join a Space](/help/spaces/explore-and-join-a-space) - [Cross-Account access](/help/spaces/cross-account-access) - [Space members and roles](/help/spaces/space-members-and-roles) --- --- title: You cannot post in a channel type: troubleshooting section: spaces summary: The composer is locked because the channel is an announcement channel, it is archived, your access is read only, or a send failed. applies_to: clients: [web] sources: - evolve-front-end/lib/team-chat/post-policy-affordance.ts - evolve-front-end/components/team-chat/composer/message-composer.tsx - evolve-front-end/components/team-chat/chrome/status-banners.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/channels-and-sub-channels, spaces/space-members-and-roles, spaces/cross-account-access] aliases: [team-chat/cannot-post, spaces/composer-locked] --- Read the notice above or below the composer. Each message below names one cause. ## Only Space admins can post here The channel's **Who can post** setting is **Space admins only**, which makes it an announcement channel. Everybody can read it; only Space administrators write in it. Ask a Space administrator to post for you, or to change the setting. If a send slips through anyway it is refused with **Only Space admins can post in this channel.** ## This conversation is read-only. History remains searchable and threads can be reviewed. The channel has been archived. The header also shows **Read-only archive**. Archiving cannot be reversed from Spaces; ask a Space administrator to create a new channel. ## This account is not authorized to send in the selected channel. Two causes. 1. You reach this Space through a collaboration with another Account and your grant is **Read only**. Ask the owning Account's administrator for **Read and post**. See [Cross-Account access](/help/spaces/cross-account-access). 2. Your channel membership no longer allows sending. Check the member list for your own row. ## You cannot send messages to a member you have blocked. You blocked the other person in this direct message. Open **Spaces settings**, find them under **Blocked people**, and choose **Unblock**. ## Sign in again before retrying this message. Your session expired while the message was waiting. Reload the page, then send it again. ## Finish or remove file uploads before sending An attachment is still uploading. Wait for the chip to finish, or cancel it on the chip. ## Message not sent. Retry when the connection is stable. The send failed in transit. The message keeps a retry control. If it keeps failing, check whether the connection banner is showing. ## Storage for this channel type is not ready yet. Retry after setup is complete. The channel's storage has not finished being set up. Wait and send again. ## Related - [Channels and sub-channels](/help/spaces/channels-and-sub-channels) - [Space members and roles](/help/spaces/space-members-and-roles) - [Cross-Account access](/help/spaces/cross-account-access) --- --- title: You cannot see the Files tab type: troubleshooting section: spaces summary: Files is on every channel; on a narrow window its name is hidden or the tabs collapse into a menu, and an empty channel reads No files yet. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/chrome/room-header.tsx - evolve-front-end/components/team-chat/files/team-chat-files-view.tsx - evolve-front-end/components/team-chat/kernel/team-chat-room-view-params.ts - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/the-files-tab, spaces/share-a-file, spaces/you-cannot-see-a-space] aliases: [team-chat/files-tab-missing, spaces/files-tab-missing] --- **Files** is present on every channel and every direct message. There is no setting, permission, or role that removes it, so if it looks absent one of the four causes below applies. ## The tab strip shows icons with no words On a window narrower than roughly 1536 pixels the four tabs keep their icons and drop their names. **Files** is the folder icon, fourth from the left after **Messages**, **Pins**, and **Threads**. Point at it to confirm the name. ## The tab strip is a single menu On a phone-width window the four tabs collapse into one control that shows only the tab you are on. Open it and choose **Files**. You can also go straight there: add `?view=files` to the channel address. ## No files yet The tab is open and working. The channel has never taken a file, so there is nothing to list. Share one and it appears; see [Share a file in a channel](/help/spaces/share-a-file). A file you remember sending can be missing from the list on purpose. A file is left out while its scan has not cleared, if its scan blocked it, if its access window expired, or if the message it came from is no longer readable. ## Files could not be loaded. The list failed to load. Choose **Retry**. If it keeps failing, check whether the channel itself still opens; a channel you have lost access to cannot list files either. See [You cannot see a Space](/help/spaces/you-cannot-see-a-space). ## Related - [The Files tab](/help/spaces/the-files-tab) - [Share a file in a channel](/help/spaces/share-a-file) - [You cannot see a Space](/help/spaces/you-cannot-see-a-space) --- --- title: Notifications are not arriving type: troubleshooting section: spaces summary: Check the conversation's own level and mute state, then your account default, then the browser's permission for this site. applies_to: clients: [web] sources: - evolve-front-end/components/team-chat/page-nav/use-room-row-actions.ts - evolve-front-end/components/team-chat/notification-preferences/team-chat-global-notification-settings.tsx - evolve-front-end/components/team-chat/chrome/team-chat-browser-push-prompt.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-spaces ttl_days: 45 related: [spaces/notifications-and-mute, spaces/unread-and-mentions, spaces/mention-someone] aliases: [team-chat/no-notifications, spaces/notifications-missing] --- Three settings decide whether a message notifies you, and the most specific one wins: a thread overrides its channel, and a channel overrides your account default. Check them from the most specific down, then check the browser. ## The row says Muted The conversation is muted. Its unread count is suppressed and it is left out of the **Unread** view; the row may also read **Muted; excluded from roll-up**. Open the row's context menu, open **Muted**, and choose **Unmute**. Muting never suppresses a mention of you by name, so if the row shows a number the mention did arrive. ## The row says Notifications off The conversation's own level is **Nothing**. Open **Notifications** on the row and choose **All messages**, **Mentions**, or **Use default ({{level}})**. ## Only mentions arrive Either the conversation is set to **Mentions**, or your account default is and the conversation is on **Use default ({{level}})**. Change whichever one applies. The account default is in **Spaces settings** under **Notifications**. ## Nothing arrives in any conversation Your account default is **Nothing**: **Do not notify me by default.** Open **Spaces settings**, and under **Notifications** choose **All messages** or **Mentions**. ## Browser notifications are blocked Full text: **Allow notifications for this site in your browser settings, then try again.** The browser refused the permission. Allow notifications for the site in the browser's own settings, then choose **Try again**. ## Browser notifications are unavailable Full text: **We could not enable browser notifications. Check your connection and try again.** Registration failed rather than being refused. Choose **Try again**. ## The prompt never came back **Stay up to date** is offered once. Choosing **Not now** dismisses it and it does not return on its own, so browser notifications stay off even though everything inside Spaces is set correctly. ## Nothing from one particular person You blocked them. **Messages from {{name}} will be hidden, and notifications from them will be suppressed. You can unblock them at any time in Profile settings under Blocked people.** Unblock them in **Spaces settings** under **Blocked people**. ## Nothing when you were named in a large channel A mention reaches at most 50 members of a conversation. Above that, some named people are not notified. Ask the sender to name you directly rather than using a group mention. ## We couldn't load notification preferences. Try again. The settings could not be read, so what you see may not be what is stored. Choose **Retry** before changing anything. ## Related - [Notifications and mute](/help/spaces/notifications-and-mute) - [Unread and Mentions](/help/spaces/unread-and-mentions) - [Mention someone or a role](/help/spaces/mention-someone) --- --- title: Find your way around Drive type: reference section: drive summary: Drive holds your files in one place. Home lists recent items and what needs your action; the left rail reaches every area and your managed folders. sources: - evolve-front-end/app/[lng]/drive/page.tsx - evolve-front-end/components/content-platform/content-platform-page-nav.tsx - evolve-front-end/components/content-platform/content-platform-home-overview.tsx - evolve-front-end/components/content-platform/content-platform.constants.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/my-drive, drive/shared-with-you, drive/upload-a-file] --- Drive is where you upload, find, preview and publish files. Its own description reads **Upload, find, and review content from one place.** Opening it lands you on **Home**, which lists your managed folders, your recent items and the items waiting on you. ## The left rail The rail runs top to bottom: 1. **New**, holding **New folder**, **New managed folder**, **Upload file**, **Upload folder** and **Upload site**. 2. **Search**, which opens search across Drive with the placeholder **Search in Drive**. 3. **Home**, **My Drive**, **Shared** and **Sites**. 4. A **Workflows** group: **My tasks**, **Retrieval** and **Published by me**. 5. A **Managed folders** section, described below. 6. **Archive** and **Supported files**. 7. **Secure Data Intake**, for the people who administer it. 8. **Open guide**, which opens **Drive Guide**. Some rows carry a number on the right. **Home**, **Shared**, **Sites** and the **Managed folders** section count what changed and needs your attention there, shown as **99+** above ninety-nine. An **Ops** row appears only for administrators. ## The Managed folders section The section header reads **Managed folders**, with a plus beside it for **New managed folder**. Under it sit up to three groups, each showing at most five folders and each hidden when it is empty: - **Space files**, the folders behind Space channels you can see. - **My managed folders**, the folders you created. - **Shared**, everything else you can read. **All managed folders** at the bottom of the section opens the full list. Collapsing the rail hides the whole section; the area buttons remain. ## What each area holds | Area | What is in it | | --- | --- | | **Home** | Recent and available content across your Drive. | | **My Drive** | Files and folders you uploaded or created. | | **Shared** | Content shared with you. | | **Sites** | HTML sites you uploaded. | | **My tasks** | Items currently waiting for your action. | | **Retrieval** | Items an application manages, used by retrieval paths. | | **Published by me** | Items you published within managed folders. | | **Archive** | Items currently hidden from the default view. | | **Supported files** | The file types Drive can parse, preview and process. | | **Secure Data Intake** | Secure upload links issued to people outside Evolve. | ## What Home shows **Managed folders** comes first: up to five folder cards, each with the folder's name and its state, and a button for **All managed folders**. Below that are two tabs: - **Recents**, the items across Drive with the most recent activity. - **Needs my attention**, a task list with the columns **Action needed**, **Name**, **Assigned**, **Location** and **Requested by**. **Action needed** reads **Review**, **Make changes** or **Approve**. Narrow it with the **Action** filter or the field labelled **Search items needing attention**. ## Searching and filtering The search field accepts free text and filter tokens. Combine tokens to narrow the result, for example `status:review type:pdf updated:7d`. **Drive Guide** lists the ones Drive understands: `status:review`, `status:approved`, `status:changes_requested`, `type:pdf`, `type:image`, `updated:7d`, `owner:me`, `source:upload` and `source:content-registry`. A token Drive does not recognise is reported under **Not applied as filters** and searched as plain text instead. Filter controls sit beside the field, with **Clear filters** to drop them. **Status** offers **Draft**, **Pending review**, **Approved**, **Changes requested**, **Rejected** and **Published**. ## The item list Rows carry **Name**, **Owner**, **Status** and the date they were last modified. Checking rows enables the actions above the table; **Clear** drops the selection. Items shared with you cannot be deleted, archived, moved or copied, and the list says so when you try. ## Related - [Find the files you uploaded](/help/drive/my-drive) - [Find what other people shared with you](/help/drive/shared-with-you) - [Upload a file](/help/drive/upload-a-file) - [Open and preview a file](/help/drive/open-and-preview-a-file) --- --- title: Find the files you uploaded type: how-to section: drive summary: My Drive lists the files and folders you uploaded or created. Open it from the Content group in the left rail or from the pinned row under My managed folders. sources: - evolve-front-end/components/content-platform/content-platform.constants.ts - evolve-front-end/components/content-platform/content-platform-page-nav.tsx - evolve-front-end/components/content-platform/content-platform-workspace-access.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/home, drive/upload-a-file, drive/shared-with-you] --- Choose **My Drive** in the left rail. It lists the files and folders you uploaded or created, newest activity first, without anything other people shared with you. ## Two ways in - The **Content** group near the top of the rail has a **My Drive** row. - The **Managed folders** section repeats **My Drive** as a pinned row inside **My managed folders**. Both open the same place. ## What lands in My Drive Anything you upload without choosing another destination goes here, including files, folders you create with **New folder**, captured URLs and uploaded sites. Items you upload into a managed folder do not appear here; they belong to that folder. **My Drive** is your personal container. Nobody else sees its contents unless you share an item or move it into a managed folder. ## Narrow the list The same search field and filters work here as on **Home**. **Type**, **Status**, **Modified** and **Clear filters** all apply, and the search field accepts tokens such as `type:pdf` and `updated:7d`. Filtering by owner is offered on **Home** and **Shared** rather than here, where every item has the same owner. ## If it did not work - A file you uploaded a moment ago may still be processing. Refresh the list; a row appears as soon as the upload is registered, before its preview is ready. - If you chose a destination during the upload, the file is in that managed folder instead. Look under **All managed folders**. - An item you archived is hidden from the default view. Open **Archive** to find it. - If the area will not open at all, your role may not carry the capability behind it. Ask an Account administrator to check your access. --- --- title: Find what other people shared with you type: how-to section: drive summary: Shared lists the items other people granted you directly or through a collaboration. Account-wide shares and Space files are not part of that list. sources: - evolve-front-end/components/content-platform/content-platform.constants.ts - evolve-front-end/components/content-platform/content-platform-workspace-access.ts - evolve-front-end/components/content-platform/shell-v2/workspace-share-type-value.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/home, drive/permission-levels, drive/cannot-share] --- Choose **Shared** in the left rail. It lists the content other people shared with you, whether they named you directly or granted a collaboration you belong to. ## What appears in Shared - Items shared with you as a person. - Items shared with a collaboration you belong to. - Managed folders another person shared with you, which also appear as rows under **Shared** inside the **Managed folders** section of the rail. The **Share type** column on each row says how the access reached you. ## What does not appear in Shared - Items shared with the whole Account. An Account-wide share behaves as an audience for a link rather than a listed grant, so it does not add a row here. - Files posted in a Space. Drive hides the folder behind a Space channel today, so a file sent into a channel is reachable from the channel's **Files** tab rather than from **Shared**. The rail keeps a **From Spaces** group, but it lists Account-scoped folders you neither own nor received directly, not channel folders. - Anything shared with you and then archived by its owner. ## If it did not work - Ask the person who shared it which recipient they chose. A share aimed at a workgroup or a Space reaches you by a different path. - If they sent you a link instead, open the link; a restricted link still requires that you are in the item's access list. - If the link reports **You do not have access to view this content**, the grant did not save. Ask the owner to add you again, per [Invite people to a managed folder](/help/drive/invite-people-to-a-managed-folder). - For a file someone posted in a Space, open that channel's **Files** tab. --- --- title: Open and preview a file type: how-to section: drive summary: Choose a row to open the file's own page. It shows the file itself, with panels for Info, Comments and History, and a Download action. sources: - evolve-front-end/app/[lng]/drive/items/[itemId]/page.tsx - evolve-front-end/components/content-platform/content-platform-item-preview-page-client.tsx - evolve-front-end/components/content-registry/content-registry-rich-preview.tsx - evolve-front-end/lib/content-registry/preview-profile.ts verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/renditions, drive/file-will-not-open, drive/home] --- Choose a file's row in any Drive list. Drive opens the file's own page with the file rendered in the middle and a way back to where you came from. Choosing a folder's row opens the folder in place instead. ## What the file page gives you The header carries the file's title, its workflow status, and buttons that open the panels down the right-hand side: | Control | What it opens | | --- | --- | | **File info** | **Info**: **Access**, the processing lifecycle, **File details**, **Review**, **Activity**, **Metadata** and **Versions**. | | **Comments** | The review threads and comments on the file, with a box to add one. | | **History** | **Activity**: everything that happened to the file, filtered by **All**, **Status** or **Versions**. | | **Ask** | **Ask AI**, for a question about this file. | The header also holds **Download**, **Copy link**, **Share** and **More actions**. Editing the title in place offers **Save title** and **Cancel title edit**. ## Preview and Text Most files show a rendered preview. Where Drive also has the extracted text, a switch offers **Preview** and **Text**. **Text** shows what Drive pulled out of the file, which is the same text search and retrieval use. **Text** is not offered for a site, for an archived web capture, or for a file type Drive cannot extract text from. ## What renders inline Drive renders a preview for images, video, audio, PDFs, Word documents, spreadsheets and tables, presentations, plain text and code, Markdown, notebooks, JSON, email, contacts, archives (as a file listing), 3D models, point clouds, building models, and scientific and medical formats. Word documents and PDFs render in your browser rather than as server-made page images. A `docx` file is paginated in the browser. A Markdown file is rendered as a document. A `csv` file is shown as a table. A site opens in a sandboxed frame. An archived web capture opens as **Archived capture** with an inert replay that never reaches the live web. ## Audio and video A video or audio file plays in place. Captions come from the transcript, offered as **Captions** on the player, with **Download transcript (.vtt)** beside it. Where no transcript exists yet, the panel says **Transcript is not available yet.** and offers **Generate transcript**. While it runs it says **Transcribing audio…** or **Transcribing video…**, and a long job reports **Transcription is taking longer than expected.** ## Download the original **Download** always fetches the original file, not the preview. It announces **Preparing download...** while it prepares the file. A download is refused while security checks are still running, and refused outright for a file a security check blocked. ## If it did not work - A file with no preview names the reason in its place. Every message and what it means is in [File will not open](/help/drive/file-will-not-open). - **Preview unavailable** with **File too large to preview. Download to view locally.** appears above 100 MB. Use **Download**. - A folder shows **Open this folder from the table to view its contents.** Go back to the list and choose the folder. - If the page itself will not load, the file may have been deleted, or your access withdrawn. Ask the owner. --- --- title: Upload a file type: how-to section: drive summary: Choose Upload file, pick a destination, choose the files and choose Add. Drive verifies each file, transfers it, then processes it for preview and search. sources: - evolve-front-end/components/content-platform/content-platform-upload-panel.tsx - evolve-front-end/components/content-platform/content-platform-upload-session-host.tsx - evolve-front-end/app/web-workers/upload.worker.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/upload-a-folder, drive/accepted-file-types, drive/upload-failed] --- Choose **New**, then **Upload file**. Pick where the files should land, choose **Choose files**, then choose **Add**. Each file is verified on your device, transferred, and then processed for preview and search. ## Upload 1. Choose **New** in the left rail, then **Upload file**. The panel opens with the title **Upload files**. 2. Check **Save to**. Uploads go to **My Drive** unless you started from a managed folder, in which case that folder is preselected. The helper text says **Uploads save to your current managed folder when you start from one, and to My Drive otherwise. Choose a managed folder when the upload should be available there.** 3. Choose **Choose files**, or drag the files onto the panel. 4. Review the queue. Each row shows the file, its size and its state. 5. Choose **Add**. The button reads **Adding** during the upload and **Done** when the queue finishes. You can upload up to 1,000 files in one go. Above that, Drive says **Too many files selected. Upload up to 1,000 files at a time.** You can also drop files straight onto the **My Drive** area without opening the panel. An overlay appears reading **Drop your files to upload**. ## What each state means | State | What is happening | | --- | --- | | **Ready to upload** | The file is queued. Nothing has been sent. | | **Verifying file** | Drive is hashing the file on your device. The panel says **Nothing has been sent yet. Upload URLs are signed after this finishes.** | | **Preparing upload** | Drive is resolving the destination and signing the transfer. | | **Uploading** | Bytes are moving. A large file is split into parts, and the row counts the finished parts against the total. | | **Waiting for connection** | The network dropped. The upload resumes on its own. | | **Saving item** | The transfer finished and Drive is registering the file. | | **Processing** | Drive is extracting text, metadata and previews. | | **Uploaded** | The file is in Drive and its row links to it. | Files over 100 MB use a multipart transfer, so closing and reopening the page keeps their progress. The panel says **If the page reloads mid-transfer, large uploads keep their progress and can be resumed from where they left off.** Six files transfer at a time. You can minimise the panel and keep working; the uploads carry on. ## Describe an image or add captions Each queued row offers the accessibility fields its type needs. - An image gets **Alt text**, with the prompt **Describe this image for people using screen readers**, and a **Decorative image (empty alt text)** checkbox for an image that carries no information. - Audio and video get captions. The hint reads **A transcript is generated automatically during processing. You can upload a corrected WebVTT captions file at any time.** Once the file exists in Drive, **Add captions (.vtt)** accepts a WebVTT file up to 10 MB. ## Resume an unfinished upload If a transfer was interrupted, the panel shows **Unfinished uploads from a previous session** with the progress so far. **Resume** continues from the last saved part, and asks you to pick the same file again. **Discard** drops it. Picking a different file is refused, and the message names the file to pick to continue the upload. ## If it did not work - Read the message on the failed row and the recommended action under it. It names the next step, such as **Try again** or **Choose another file**. - A rejected file type means the format is not in the catalogue: see [Accepted file types](/help/drive/accepted-file-types). - For each failure message and what it means, see [Upload failed](/help/drive/upload-failed). - **Add** stays disabled while accepted file types are still loading, while **My Drive** is being prepared, and when nothing uploadable is selected. The panel states which of those applies. --- --- title: Upload a folder type: how-to section: drive summary: Choose Upload folder and pick a folder on your device. Sub-folders are preserved, and empty folders are created too when your browser reports them. sources: - evolve-front-end/components/content-platform/content-platform-upload-panel.tsx - evolve-front-end/components/content-platform/content-platform-upload-file-selection.ts - evolve-front-end/components/content-platform/use-content-platform-file-drop.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/upload-a-file, drive/accepted-file-types, drive/upload-failed] --- Choose **New**, then **Upload folder**. Pick the folder on your device and choose **Add**. Drive rebuilds the folder tree as it uploads, so the structure you see on your computer is the structure you get in Drive. ## Upload 1. Choose **New**, then **Upload folder**. The panel opens with the title **Upload folder**. 2. Check **Save to** and change the destination if the folder does not belong in **My Drive**. 3. Choose **Choose folder** and pick the folder. Dragging the folder onto the panel works too. 4. Review the selection summary. It reports the detected upload type, the file count and the total size. 5. Choose **Add**. The panel states what it preserves: **Sub-folders are preserved; empty folders are created too.** Per-file rules still apply, and the 1,000-file limit counts every file in the tree. If you are already in the panel in files mode, **Or add a folder** switches to the folder picker without closing anything. ## Empty folders Drive can create an empty folder only when your browser tells it the folder exists. Dragging the folder in, or picking it in a browser that supports the directory picker, reports empty folders; choosing files through the plain file dialog does not. When empty folders are included, the summary lists each one as **Empty folder** and names the path that will be created. After the upload, Drive reports each path as uploaded, or as a folder that already exists. ## What Drive skips Operating-system noise is dropped without asking: `.DS_Store`, any file starting `._`, and a top-level `__MACOSX` directory. Nothing else is filtered; unsupported files inside the tree are rejected individually. ## If it did not work - **The selected folder could not be opened.** means the browser refused the directory picker. Drag the folder onto the panel instead. - Cancelling the picker closes it silently. Nothing is queued. - A message naming one folder that could not be created applies to that empty folder alone. The files elsewhere in the tree still upload. - For a rejected file inside the folder, see [Accepted file types](/help/drive/accepted-file-types) and [Upload failed](/help/drive/upload-failed). --- --- title: Create a folder type: how-to section: drive summary: "Choose New folder, type a name and choose Create. The folder is made where you are: inside the folder or managed folder you are looking at." sources: - evolve-front-end/components/content-platform/content-platform-create-folder-dialog.tsx - evolve-front-end/components/content-platform/validations/content-platform-create-folder.ts - evolve-front-end/components/content-platform/content-platform-move-create-folder.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/create-a-managed-folder, drive/my-drive, drive/upload-a-folder] --- Choose **New**, then **New folder**. Type a name into **Folder name** and choose **Create**. The folder is made where you are standing, and the confirmation names that place. ## Create it 1. Navigate to the place the folder belongs, whether that is **My Drive**, a folder inside it, or a managed folder you can write to. 2. Choose **New**, then **New folder**. The dialog title is **New folder** and it tells you where the folder will go. 3. Type into **Folder name**. The field suggests **Untitled folder**. 4. Choose **Create**. It reads **Creating…** while it works, then confirms with the folder's location. The only rule on the name is that it cannot be empty; leading and trailing spaces are trimmed. If you leave it blank, **Create** stays disabled rather than showing an error. ## A folder is not a managed folder A folder groups items inside a container. It carries no members, no sharing of its own, no snapshots and no review workflow. It inherits whatever access its container has. Use a managed folder when you want members, sharing and a review or publishing workflow: see [Create a managed folder](/help/drive/create-a-managed-folder). ## Creating a folder while moving something The move dialog can create the destination as you go. Pick the parent, create the folder there, and move the item into it in one pass. ## If it did not work - **Couldn't create the folder.** means nothing was made. Try again. - A message shown in place of the confirmation came from the service; the wording names what it refused. - Creating a folder inside a managed folder needs write access there. If you hold **Can view**, the folder is created in **My Drive** instead of the folder you were looking at. - To bring an existing tree of folders in from your computer, see [Upload a folder](/help/drive/upload-a-folder). --- --- title: Move or copy a file type: how-to section: drive summary: Move and Copy to open a folder picker scoped to where the item already lives. You cannot move items between managed folders, and folders cannot be copied. sources: - evolve-front-end/components/content-platform/content-platform-move-dialog.tsx - evolve-front-end/components/content-platform/content-platform-move-folder-list.tsx - evolve-front-end/components/content-platform/content-platform-shell-v2-client.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/create-a-folder, drive/archive-an-item, drive/permission-levels] --- Open the item's actions and choose **Move**, or **Copy to** for a copy. Pick the destination folder in the dialog and choose **Move here** or **Copy here**. The picker only offers folders in the place the item already lives. ## Move an item 1. Open the item's actions menu and choose **Move**. The dialog title names the item. 2. Read the line under it. It says which place you are choosing inside. 3. Choose a folder from **Folders** to go into it, or **Back** to go up. The path shows in **Destination path**, starting at the home icon. 4. Choose **New folder** if the destination does not exist yet, name it, and choose **Create**. 5. Check the destination beside **Move to:** and choose **Move here**. It reads **Moving…** while it works, and confirms with **Item moved.** Checking several rows first moves them together, and the dialog title counts them. The confirmation reports how many moved. ## Copy an item **Copy to** works the same way, with **Copy here** as the confirm and **Item copied.** as the confirmation. The original stays where it is. Folders cannot be copied. Drive says **Folders can't be copied.** and does not open the dialog. ## What the picker will and will not offer - Only folders inside the same place the item lives. A file in **My Drive** cannot be moved into a managed folder from here, and a file in one managed folder cannot be moved into another. - Never a folder you are moving. Moving a folder into itself is not offered. - A destination with no children says **No subfolders here. Move into this location.** Choosing the confirm puts the item at that level. Selecting items from two different places at once is refused up front: **You can only move items that live in the same place.** or **You can only copy items that live in the same place.** ## What you cannot move or copy Items shared with you belong to someone else. Drive says **Items shared with you cannot be moved.** or **Items shared with you cannot be copied.** and leaves them alone. The same applies to any item you hold read-only. ## If it did not work - **Couldn't move that item.** and **Couldn't copy that item.** mean nothing changed. Try again. - **Couldn't load folders.** inside the dialog means the destination list failed. Close it and reopen. - Moving needs write access on both the item and the destination. Check [Can view, Can comment and Can edit](/help/drive/permission-levels). - To get a file from one managed folder into another, download it and upload it to the destination. --- --- title: Archive an item type: how-to section: drive summary: Archiving hides an item from the default lists without deleting it. Open Archive to find it again and choose Unarchive to bring it back. sources: - evolve-front-end/components/content-platform/content-platform-action-menu.tsx - evolve-front-end/components/content-platform/content-platform-shell-v2-client.tsx - evolve-front-end/components/content-platform/content-platform.constants.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/home, drive/my-drive, drive/delete-a-managed-folder] --- Open the item's actions and choose **Archive**. The item leaves **Home**, **My Drive** and the other default lists, and Drive confirms with **Item archived.** Nothing is deleted. ## Archive one item or several 1. Find the item in any Drive list. 2. Open its actions menu and choose **Archive**. 3. Drive confirms with **Item archived.** To archive a set, check the rows and use the archive action above the table. The confirmation for a set reads **Items archived.** Items shared with you cannot be archived. Drive says **Items shared with you cannot be archived** and leaves the selection alone. ## Find and restore an archived item **Archive** in the left rail lists the items currently hidden from the default view. Open the item's actions there and choose **Unarchive**. The confirmation reads **Item unarchived.**, or **Items unarchived.** for a set. The item returns to the lists it was in before. ## Archiving is not deleting | Action | What happens | | --- | --- | | **Archive** | The item is hidden from default lists. Its content, links and access stay as they were. | | **Unarchive** | The item reappears. | | **Delete** | The item is removed permanently. The dialog asks **Delete item?** and warns that it cannot be undone. | Deleting a set asks **Delete items?** with the same warning, and the button reads **Delete selected**. Items shared with you cannot be deleted either. ## The other kind of archive An uploaded `zip`, `tar` or `tgz` file is also called an archive. Drive extracts those, and the item offers **View extracted files** once extraction finishes. Until then it says **Extracted files are available after extraction completes.** That is unrelated to the **Archive** area described above. ## If it did not work - **Couldn't archive that item.** and **Couldn't unarchive that item.** both mean nothing changed. Try again. - An item that will not archive may be shared with you rather than owned by you. Ask its owner. - Archiving needs write access to the item. A viewer sees the action but the request is refused. - An archived item still opens from a link you sent earlier, and still belongs to the folder it was in. --- --- title: Accepted file types type: reference section: drive summary: Drive accepts what the administered catalogue lists. Supported files shows the live list; this page carries the default set and the size rules. sources: - evolve-front-end/lib/content-platform/supported-file-types.ts - evolve-front-end/components/content-platform/content-platform-upload-panel.tsx - evolve-front-end/components/content-platform/content-platform-file-support-panel.tsx - evolve-front-end/components/content-platform/content-platform-supported-files-dialog.tsx generated: evolve-front-end/scripts/help-generate.mjs verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/upload-a-file, drive/upload-failed, drive/renditions] --- [//]: # (help-generate begin human:intro) Drive accepts the file types in its administered catalogue, and refuses everything else at the point of upload. **Supported files** in the left rail shows the live list for your Account; the tables below are compiled from the code that defines the default catalogue and the upload limits. Read the product's own list rather than this page when the two disagree. The catalogue is administered, so an Account can hold fewer or more types than the default. [//]: # (help-generate end human:intro) [//]: # (help-generate begin human:live-list) ## Reading the live list **Supported files** describes itself as **Browse every file format Evolve can work with.** and carries an **Admin-managed** badge with the date the catalogue was last published. Its table has the columns **File type**, **Extensions**, **MIME** and **Description**, grouped as **Documents**, **Media**, **Archives**, **Data** and **Other**. **Search supported file types** filters by extension, MIME type or description. The upload panel links to the same information as **Supported file types**, which opens a flat table headed **We accept the following files** with the columns **Type**, **MIME** and **Supported actions**. [//]: # (help-generate end human:live-list) ## The default catalogue Evolve ships 56 file types by default, covering 64 extensions. Generated from `evolve-front-end/lib/content-platform/supported-file-types.ts` by `evolve-front-end/scripts/help-generate.mjs`. | File type | Extensions | MIME types | | --- | --- | --- | | Plain Text Document | `.txt` | `text/plain` | | PDF Document | `.pdf` | `application/pdf` | | Word Document (Legacy) | `.doc` | `application/msword` | | Word Document | `.docx` | `application/vnd.openxmlformats-officedocument.wordprocessingml.document` | | Word Document (Macro-Enabled) | `.docm` | `application/vnd.ms-word.document.macroenabled.12`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document` | | Word Template (Macro-Enabled) | `.dotm` | `application/vnd.ms-word.template.macroenabled.12`, `application/vnd.openxmlformats-officedocument.wordprocessingml.template` | | Rich Text Format | `.rtf` | `application/rtf`, `text/rtf`, `application/x-rtf`, `text/richtext` | | Markdown Document | `.md`, `.markdown` | `text/markdown`, `text/x-markdown`, `text/plain` | | Mermaid Diagram | `.mmd`, `.mermaid` | `text/vnd.mermaid`, `text/x-mermaid`, `text/mermaid`, `text/plain` | | Excel Workbook | `.xlsx` | `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` | | Excel Workbook (Legacy) | `.xls` | `application/vnd.ms-excel` | | Excel Workbook (Macro-Enabled) | `.xlsm` | `application/vnd.ms-excel.sheet.macroenabled.12`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` | | Excel Template (Macro-Enabled) | `.xltm` | `application/vnd.ms-excel.template.macroenabled.12`, `application/vnd.openxmlformats-officedocument.spreadsheetml.template` | | Excel Workbook (Binary) | `.xlsb` | `application/vnd.ms-excel.sheet.binary.macroenabled.12` | | PowerPoint Presentation | `.pptx` | `application/vnd.openxmlformats-officedocument.presentationml.presentation` | | PowerPoint Presentation (Legacy) | `.ppt` | `application/vnd.ms-powerpoint` | | CSV Table | `.csv` | `text/csv`, `application/csv`, `text/plain` | | Tab-Separated Values | `.tsv` | `text/tab-separated-values`, `text/plain` | | HTML Document | `.html`, `.htm` | `text/html` | | XHTML Document | `.xhtml` | `application/xhtml+xml` | | Stylesheet | `.css` | `text/css` | | JavaScript | `.js` | `text/javascript`, `application/javascript`, `text/ecmascript`, `application/ecmascript` | | JavaScript Module | `.mjs` | `text/javascript`, `application/javascript`, `text/ecmascript`, `application/ecmascript` | | XML Document | `.xml` | `application/xml`, `text/xml` | | JSON Document | `.json` | `application/json` | | YAML Document | `.yaml`, `.yml` | `application/yaml`, `application/x-yaml`, `text/yaml`, `text/x-yaml`, `text/plain` | | OpenDocument Text | `.odt` | `application/vnd.oasis.opendocument.text` | | OpenDocument Spreadsheet | `.ods` | `application/vnd.oasis.opendocument.spreadsheet` | | OpenDocument Presentation | `.odp` | `application/vnd.oasis.opendocument.presentation` | | MP4 Video | `.mp4` | `video/mp4` | | MP3 Audio | `.mp3` | `audio/mpeg`, `audio/mp3` | | PNG Image | `.png` | `image/png` | | JPEG Image | `.jpg`, `.jpeg`, `.jpe`, `.jfif` | `image/jpeg` | | GIF Image | `.gif` | `image/gif` | | WebP Image | `.webp` | `image/webp` | | AVIF Image | `.avif` | `image/avif` | | Icon File | `.ico` | `image/x-icon`, `image/vnd.microsoft.icon` | | SVG Image | `.svg` | `image/svg+xml` | | BMP Image | `.bmp` | `image/bmp`, `image/x-ms-bmp` | | TIFF Image | `.tiff`, `.tif` | `image/tiff`, `image/tif` | | Web Font | `.woff` | `font/woff`, `application/font-woff` | | Web Font 2 | `.woff2` | `font/woff2` | | ZIP Archive | `.zip` | `application/zip`, `application/x-zip-compressed`, `multipart/x-zip` | | Autodesk Revit model | `.rvt` | `application/octet-stream` | | Autodesk Revit family | `.rfa` | `application/octet-stream` | | Autodesk Revit template | `.rte` | `application/octet-stream` | | Autodesk Revit family template | `.rft` | `application/octet-stream` | | Graphisoft ArchiCAD project | `.pln` | `application/octet-stream` | | Graphisoft ArchiCAD archive project | `.pla` | `application/octet-stream` | | Autodesk Navisworks document | `.nwd` | `application/octet-stream` | | Autodesk Navisworks fileset | `.nwf` | `application/octet-stream` | | Autodesk Navisworks cache | `.nwc` | `application/octet-stream` | | Trimble SketchUp model | `.skp` | `application/octet-stream` | | Trimble SketchUp backup | `.skb` | `application/octet-stream` | | Rhinoceros 3D model | `.3dm` | `application/octet-stream` | | Bentley MicroStation design | `.dgn` | `application/octet-stream` | [//]: # (help-generate begin human:catalogue-notes) A WebVTT captions file (`.vtt`) is accepted through the captions control on an audio or video row rather than as a general upload, so it has no row of its own above. [//]: # (help-generate end human:catalogue-notes) ## Size and count rules Generated from `evolve-front-end/components/content-platform/content-platform-upload-panel.tsx` by `evolve-front-end/scripts/help-generate.mjs`. | Rule | Value | | --- | --- | | Files per upload | 1,000 | | Multipart transfer starts at | 100 MB | | Files transferring at once | 6 | | Parts in flight per file | 4 | | Captions file | 10 MB | [//]: # (help-generate begin human:size-notes) There is no per-file size limit in the browser. The service enforces its own limit and reports **This file is too large for the current upload limit.** or **This file exceeds the available upload limit.** when a file is over it. A site bundle is limited separately, to 50,000 files and 5 GiB in total. See [Upload a site](/help/drive/upload-a-site). [//]: # (help-generate end human:size-notes) [//]: # (help-generate begin human:archives) ## Archives A `zip`, `tar`, `tar.gz` or `tgz` upload is queued for extraction, so its contents become items in Drive rather than a single opaque file. A ZIP holding a site with `index.html` at its root is treated as a site instead: see [Upload a site](/help/drive/upload-a-site). [//]: # (help-generate end human:archives) [//]: # (help-generate begin human:related) ## Related - [Upload a file](/help/drive/upload-a-file) - [Upload failed](/help/drive/upload-failed) - [What Drive makes from your files](/help/drive/renditions) [//]: # (help-generate end human:related) --- --- title: What Drive makes from your files type: explanation section: drive summary: After an upload Drive scans the file, extracts its text and metadata, and for images builds two WebP renditions. Documents render in your browser. sources: - evolve-content-extract/src/registry-image/registry-image-rendition-config.ts - evolve-content-extract/src/registry-image/registry-image-rendition-executor.ts - evolve-front-end/components/content-platform/content-platform-shell-v2-client.utils.ts - evolve-front-end/lib/content-platform/raw-text.ts - evolve-front-end/lib/content-registry/archive-extraction.ts verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/open-and-preview-a-file, drive/file-will-not-open, drive/accepted-file-types] --- An uploaded file goes through the same sequence every time: it is registered, scanned for malware, and then processed. Processing extracts the file's text and metadata, and for an image it also builds two smaller WebP copies. Nothing is produced for a file the scan blocked. ## Where you see the progress The file's **Info** panel lists the processing lifecycle, and each stage shows as a chip: | Chip | What it tracks | | --- | --- | | **Registry** | Whether the item exists in Drive. | | **Scan** | The malware scan. **Clean** is the only state that lets processing continue. | | **Extraction** | The parse of the file contents. | | **Metadata** | The facts Drive read out of the file. | | **Preview** | Whether a preview and extracted text exist. | | **Search** | Whether the file is indexed for search. | | **Readiness** | The rollup of the above. | | **Delivery** | Whether the item is published, and its script and content-security policy. | ## Images For an image Drive builds exactly two renditions, both WebP: | Rendition | Longest side | Purpose | | --- | --- | --- | | Thumbnail | 320 pixels | List and card thumbnails. | | Preview | 1600 pixels | Inline viewing. | Each rendition is capped at 8 MB. Renditions are built from a source under 25 MB, no larger than 16,384 pixels on a side and 40 million pixels in total, in GIF, JPEG, PNG or WebP. Anything outside those bounds keeps its original and no rendition. Some image formats cannot be shown in a browser at all without a rendition. For those the viewer says so in place, for example **TIFF originals require a derived browser image before inline rendering.** or **Camera RAW originals require a derived browser image before inline rendering.** The extracted facts stay available under **Image facts**. Renditions were activated in production on 2 September 2026. ## Documents Drive does not build page images for documents. It extracts their text and metadata, and the browser renders the document itself: a PDF in a browser viewer, a Word document paginated on the page, a spreadsheet as a table. A scanned PDF has no text to extract. Drive says **Extracted text is unavailable for this item. This PDF may require OCR.** and offers **Run OCR** on the file's **Metadata**. OCR reports its own state, from **OCR queued** and **OCR running** through **OCR complete**, **OCR partial** or **OCR failed**, and its output appears as a related file labelled **OCR text**. **Run OCR** is refused with a stated reason: **File type not supported for OCR.**, **Waiting for malware scan pass.**, **Item readiness is blocked for processing.** or **You do not have permission to run OCR.** ## Video and audio A video gets a poster frame, and speech is transcribed on request. See [Open and preview a file](/help/drive/open-and-preview-a-file) for the transcript controls. ## Archives A `zip`, `tar` or `tgz` upload is unpacked so its contents become items. The chip reports **Extraction queued**, **Extracting**, **Extracted**, or **Extracted with errors**, and the item then offers **View extracted files**. An oversized archive reports **Too large to extract**, and Drive explains: **The archive is over the extraction size limit, so its contents were not unpacked. The archive itself uploaded successfully and can be downloaded.** ## Extracted text The text Drive pulls out of a file is what powers search and retrieval, and what the **Text** view shows. Its state is reported on the file, and the messages are exact: - **Extracted text is still being prepared. Try again in a moment.** - **Raw text isn't available for this file type.** - **Text extraction failed for this item.** - **Raw text is not available for this item yet.** A failed extraction leaves the file itself intact and downloadable. Use **Refresh metadata** on the file to ask for another pass. ## Related - [Open and preview a file](/help/drive/open-and-preview-a-file) - [File will not open](/help/drive/file-will-not-open) - [Accepted file types](/help/drive/accepted-file-types) --- --- title: Upload a site type: how-to section: drive summary: A site is a static HTML bundle with index.html at its root. Choose Upload site, name it, decide on JavaScript, and Drive registers it in Sites. sources: - evolve-front-end/components/content-platform/content-platform-upload-panel.tsx - evolve-front-end/lib/content-registry/minisite-upload-manifest.ts - evolve-front-end/lib/content-platform/public-minisite-links.ts - evolve-front-end/app/[lng]/drive/minisites/[minisiteId]/page.tsx verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/edit-a-site, drive/link-access, drive/upload-failed] --- Choose **New**, then **Upload site**. Name the site, drop in a folder or a ZIP with `index.html` at its root, and choose **Add**. Drive registers it and lists it under **Sites**. ## What the bundle must contain - An entrypoint at the root of the site: `index.html`, `index.htm` or `index.xhtml`. A ZIP with a single top-level folder is unwrapped first, so the entrypoint may sit inside that one folder. - Only static assets. Drive accepts `html`, `htm`, `xhtml`, `css`, `js`, `mjs`, `json`, `md`, `txt`, `csv`, `pdf`, `png`, `jpg`, `jpeg`, `gif`, `webp`, `avif`, `svg`, `ico`, `woff` and `woff2`. - No executables. Files ending `bat`, `cmd`, `com`, `exe`, `jar`, `msi`, `php`, `ps1`, `scr`, `sh` or `vbs` are refused. - Nothing that still needs building. Upload the built output, not the source project. Limits: at most 50,000 files, 5 GiB in total, a path depth of 16, a path length of 240 characters and 96 characters per path segment. Empty files are refused. ## Upload it 1. Choose **New**, then **Upload site**. The panel title is **Upload site package**. 2. Type the name into **Site name**. It is required, and **Add** stays disabled until it has a value. 3. Leave **Allow bundled JavaScript** unchecked unless the site needs the scripts inside its own bundle. External scripts are never allowed. The badge next to the checkbox reads **Scripts detected**, **Scripts allowed** or **Scripts blocked** to say what the current setting does. 4. Drop the folder or ZIP onto the panel, or choose it from your device. The prompt reads **Drop a ZIP or folder that includes the main HTML file and supporting assets, or click to choose from your device.** 5. Read the selection summary. **Mini site detected** or **Mini site ZIP detected** means Drive found the entrypoint. **No mini site detected** means it did not, and the bundle will upload as an ordinary folder or archive instead. 6. Choose **Add**. Drive creates the site, uploads the assets, and registers the file list against it. It appears in **Sites**, which lists the HTML sites you uploaded. ## Open it and share it Open a site from **Sites** to see its detail page and its assets. The item's actions offer a **Public link**, which grants read access to anyone holding the link and expires after 30 days. Scripts are switched off on the public link unless the site was uploaded with bundled JavaScript allowed, and a site whose script policy is still under review cannot be shared publicly until that finishes. ## Replace a site with a new version Use **Update** on the site. The panel warns that uploading creates a new revision and that the current site changes once the new bundle is registered. Upload the whole bundle again; Drive keeps the same site and adds a revision. ## If it did not work - A message that the archive must contain `index.html`, `index.htm` or `index.xhtml` at the site root. The entrypoint is missing or nested too deep. Zip the folder that contains it. - A message that the bundle contains an unsupported minisite asset type. It names a file whose extension is not on the list above. Remove it or convert it. - A message that the bundle contains an executable file that cannot be registered as a minisite asset. It names a blocked extension. - A message that the file could not be read as a valid ZIP archive means the archive is damaged. Rebuild it. - **The files uploaded, but the mini-site could not be registered.** means the assets arrived but the site record did not. Reload **Sites** before uploading again. - To change the content afterwards, see [Change a site in plain English](/help/drive/edit-a-site). --- --- title: Change a site in plain English type: how-to section: drive summary: A site's editor takes a plain-English instruction, makes the edit, shows the result in Preview, and publishes only after validation passes and you arm Publish. sources: - evolve-front-end/app/[lng]/drive/minisites/[minisiteId]/edit/page.tsx - evolve-front-end/components/content-platform/content-platform-minisite-editor-page-client.tsx verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/upload-a-site, drive/link-access, drive/publish-an-item] --- Open the site and choose its edit view. Type what you want changed under **Describe the change you want**, in ordinary words. The change is made for you, shown in **Preview**, and goes live only when you choose **Publish**. ## Make a change 1. Open the site from **Sites** and go to its edit view. 2. Type the instruction into **Describe the change you want**. The field's own example reads: change the hero title to Welcome to our department. 3. Wait for the edit. Publishing is held while it runs. 4. Open **Preview** to see the result. **Refresh** re-reads the preview, the difference and the validation result. The header counts the unpublished changes and shows the validation state as **Validation checking**, **Validation passing** or **Validation needs attention**. A passing site reports **No problems found. Your site is ready to publish.** You can also edit a file directly and choose **Save file**. Saving reports the path it wrote. ## Publish the change 1. Choose **Publish**. The card explains: **Publish makes your latest saved changes live on your site.** 2. Add a **Note for this publish (optional)**. 3. Tick the confirmation that you want to publish these changes and make them live. 4. Confirm the prompt asking whether to publish these changes and make them live on your site now. **Publish** is available only when validation passes, nothing is in flight, and you have ticked the confirmation. The success message reads **Your changes are live.** ## If it did not work - **Someone else published a change to this site while you were editing. Refresh the page and try again.** means another editor published first. Reload, check the difference and reapply your change. - **We couldn't publish your changes. Try again.** is a service failure. Nothing went live; try again. - **Validation needs attention** blocks publishing. Open the validation card, fix what it names, then **Refresh**. - To replace the whole site rather than edit it, upload the bundle again: see [Upload a site](/help/drive/upload-a-site). --- --- title: Capture a URL type: how-to section: drive summary: Capture URL files a request to preserve a web page as evidence. Give the URL, choose a capture profile and a destination, and submit. sources: - evolve-front-end/components/content-platform/content-platform-capture-url-dialog.tsx - evolve-front-end/validations/web-acquisition/capture-url.ts - evolve-front-end/types/web-acquisition.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/upload-a-file, drive/home, drive/my-tasks] --- Choose **Capture URL** in the Drive header, paste the address, choose a capture profile and a destination, then choose **Capture URL** again to submit. Drive files a request and preserves the page as evidence; the capture itself happens after you submit, not while you wait. ## File a request 1. Choose **Capture URL** in the Drive header. The dialog explains itself: **Create a Web Acquisition request for account, managed folder, or page evidence.** 2. Paste the address into **URL**. It has to be a complete `http` or `https` address, up to 4,096 characters. 3. Choose a **Capture profile**: **Standard evidence**, **Visual evidence** or **Document evidence**. 4. Choose a **Destination**: - **Account library** saves the evidence under the active Account. - **Managed folder** routes it to a folder you can write to. Pick the folder under **Managed folder**. - **Managed folder page** attaches it to one page. Pick both the folder and the **Page**. 5. Choose a **Repeat** mode. **Once** starts a new capture. **Reuse if fresh** reuses recent evidence that is still inside the **Freshness window**, which you set in days from 1 to 30. **Refresh after** re-captures once the existing evidence is older than the **Refresh threshold**, which you set in hours from 1 to 720. 6. Choose **Capture URL**. While it submits, the dialog says **Checking capture authority and backend intake.** On acceptance it reports **Capture request accepted**, the request identifier, and the destination it went to. **Recurring** is listed as a repeat mode but cannot be chosen. Selecting it fails with **Recurring captures are not accepting requests yet.** ## Where the button is **Capture URL** sits in the Drive header, and on a managed folder when the feature is switched on there. If you reach for it from a folder where it is not offered, Drive says **Open Capture URL from the Drive header.** ## What Drive refuses to capture | Message | Cause | | --- | --- | | **Enter a URL to capture.** | The field is empty. | | **Enter a complete URL including http:// or https://.** | The address is not a valid URL. | | **Capture URL accepts only http or https URLs.** | Another scheme, such as `ftp` or `file`. | | **Enter a public URL without embedded credentials.** | The address carries a username or password. | | **Local, private-network, and link-local URLs cannot be captured.** | The host is `localhost`, a `.local` name, or a private or loopback address. | | **Enter a shorter URL.** | Over 4,096 characters. | | **Select a valid managed folder destination.** | No folder chosen for a folder destination. | | **Select a valid managed-folder page destination.** | No page chosen for a page destination. | ## If it did not work - **Capture URL is not accepting requests yet. No capture was started.** and **Capture URL is not reachable. No capture was started.** both mean nothing was captured. Submitting again re-checks the same request rather than filing a duplicate. - **Capture URL could not submit the request. No capture was started.** behaves the same way: choose **Capture URL** again. - **Managed folder list unavailable; destination authority is still checked on submit.** means the picker could not load. Type the folder identifier and submit; your access is still verified. - Writing to the destination needs write access there. Choose **Account library** if a folder keeps being refused. --- --- title: Create a managed folder type: how-to section: drive summary: Choose Create managed folder, give it a name, add an optional description and category, and Drive opens the new folder. New folders start private. sources: - evolve-front-end/components/content-platform/content-platform-create-workspace-dialog.tsx - evolve-front-end/components/content-platform/content-platform-workspace-kinds.tsx - evolve-front-end/components/content-platform/content-platform-workspaces-panel.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/invite-people-to-a-managed-folder, drive/managed-folder-settings, drive/delete-a-managed-folder] --- A managed folder is the shared container in Drive: it holds files, members, sites, activity and snapshots. Choose **Create managed folder**, type a name, and choose **Create managed folder** in the dialog. Drive opens the folder straight away. ## Create it 1. Open **All managed folders** and choose **Create managed folder** at the top right. The same dialog opens from **New managed folder** in the rail's **New** menu, and from the small plus next to the **Managed folders** heading. 2. Type a name into **Managed folder name**. The example in the field reads **e.g. FY26 strategy launch**. 3. Add a **Description (optional)**. The field asks **What is this managed folder for?** 4. Choose a **Managed folder category** if one fits. The help text under the control says **Used to organize and filter managed folders. It does not change permissions or workflows.** 5. Choose **Create managed folder**. The button reads **Creating…** while the folder is being made, then Drive opens it. The name is the only required field. The submit button stays disabled until you type one. ## Categories The picker offers **Research**, **Course / teaching**, **Thesis / dissertation**, **Student project**, **Administration & operations**, **Events**, **Alumni & community**, **Compliance** and **Public web / outreach**, or **No category**. The field also accepts your own wording: type a value and choose the row that offers to use what you typed. A folder with no category is listed as **Uncategorized**. Category is a label for finding and filtering folders. It grants nothing and starts no workflow. ## What you get A new managed folder is **Private**: you are the only person who can see it until you share it. It has no files, no members and no snapshots. Its tabs are **Overview**, **Sites**, **Members**, **Activity** and **Snapshots**. You can rename the folder and change its category later. The description is fixed at creation and shown read-only on **Overview** afterwards. ## If it did not work - If the button will not activate, the name is empty after trimming spaces. - **Current account id is unavailable. Refresh your session before creating a managed folder.** means your session lost its Account. Reload the page and try again. - **Failed to create managed folder.** points at the service rather than your input. Creating a folder needs write access to managed folders in your Account; ask an Account administrator if it keeps failing. - To share the new folder, see [Invite people to a managed folder](/help/drive/invite-people-to-a-managed-folder). --- --- title: Invite people to a managed folder type: how-to section: drive summary: Open the folder, choose Invite, pick people, workgroups or collaborations, set Can view or Can edit, choose Share, then choose Done to save. sources: - evolve-front-end/components/powerflow/share-resource-dialog.tsx - evolve-front-end/components/content-platform/content-platform-workspaces-panel.tsx - evolve-front-end/app/[lng]/drive/workspaces/[workspaceId]/page.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/permission-levels, drive/link-access, drive/create-a-managed-folder] --- Open the managed folder and choose **Invite**. In the dialog, type a name in the recipient field, choose the result, set the permission, choose **Share**, then choose **Done**. ## Add a recipient 1. Open the folder from the **Managed folders** section of the rail or from **All managed folders**. 2. Choose **Invite** at the top right. It sits on every tab. The dialog header reads **Share managed folder**. The same dialog opens from **Share** in a folder row's actions menu. 3. Type into the recipient field. Its label reads **Add people, workgroups, collaborations, or all Evolve users**. It is a picker, not an email box: the list below shows matching people with their email address, workgroups with their member count, and collaborations with their participant count. 4. Choose a result. It becomes a removable chip in the field. 5. Set the permission next to the field. The control is labelled **Permission for new recipients** and starts on **Can view**. **Can edit** is the other usable value; **Can comment** is listed but disabled. 6. Choose **Share**. The recipient moves into the **Who can access** list. 7. Choose **Done**. The button reads **Saving** while the change is in flight, and the dialog closes when it is saved. **Share** stages the row. **Done** and **Copy link** are what save it. Closing the dialog any other way discards a staged row. ## What you can add - A person in your Account, matched by name and shown with their email address. - A workgroup. Everyone in it gets the permission you set. Who belongs to a workgroup is managed in the Workgroups app, not here. - A collaboration. Everyone in it gets the permission you set. - **All Evolve users**, a single row that grants read access to every signed-in Evolve user. Treat it as publishing, not as adding a member. A Space is not offered as a recipient. A Space owns no folder of its own, so the picker offers the Space's workgroup instead. When nothing matches, the dialog says **No people, workgroups, collaborations, or all Evolve users found.** ## Change or remove access **Who can access** in the same dialog lists everyone who holds access. Each row has its own permission menu, with **Remove** at the bottom to withdraw the grant. Change a row, then choose **Done**. A row whose menu is greyed out came from a grant that cannot be edited in place. Remove it and invite again. The **Members** tab is the other view of the same list. It shows **Member**, **Source**, **Granted** and **Role**, and it can remove access but not change it. Use **Remove access** there for one row or for a set of checked rows; the confirmation reads **This removes the following managed-folder access:** and closes with **People keep any access they still have through other grants.** ## If it did not work - The permission covers the folder and everything in it. Check [Can view, Can comment and Can edit](/help/drive/permission-levels) before deciding a recipient has too little access. - A recipient added through a workgroup keeps access as long as they are in the workgroup. Removing the person from the folder's **Members** tab is not possible for a workgroup row; remove the workgroup grant instead. - A person who still cannot open the folder may be outside your Account. - If the dialog reports a failure, see [Cannot share](/help/drive/cannot-share). --- --- title: Can view, Can comment and Can edit type: reference section: drive summary: What the three permissions in the share dialog mean, which two you can actually choose, and how a permission on a managed folder reaches its contents. sources: - evolve-front-end/components/powerflow/share-resource-dialog.tsx - evolve-front-end/components/content-platform/content-platform-workspace-access.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/invite-people-to-a-managed-folder, drive/link-access, drive/cannot-share] --- The share dialog lists three permissions, **Can view**, **Can comment** and **Can edit**, and lets you choose two of them. **Can comment** appears in the menu but is not selectable yet, so a recipient holds either read access or write access. ## What each permission covers | Permission | Stored as | What the recipient can do | | --- | --- | --- | | **Can view** | read | Open and preview the item, and download the original. On a managed folder, list its contents and open them. | | **Can comment** | not issued | Shown in the menu and disabled. Choosing it has no effect. | | **Can edit** | write | Everything **Can view** allows, plus changing the item and adding to a managed folder. | The control for recipients you are adding is labelled **Permission for new recipients**. Its trigger reads **Can edit** when write access is selected and **Can view** in every other case, including while **Can comment** is highlighted. Each row already in the access list carries the same menu plus a fourth entry, **Remove**, which withdraws that recipient's access when you choose **Done**. ## How a folder permission reaches its contents A permission set on a managed folder covers the folder and the items inside it. There is no narrower override for a single item inside the folder: to give someone access to one file only, share that file instead. The platform records four grant kinds internally, shown elsewhere as **Read**, **Write**, **Review** and **Publish**. The share dialog issues read and write. Review and publish come from the review and publishing settings on the managed folder. ## Permissions you cannot change here A row with a greyed-out permission menu was granted outside Drive, for example through a Space or a collaboration. Change it where it was made. The dialog still shows the row so you can see who holds access. ## Related - [Invite people to a managed folder](/help/drive/invite-people-to-a-managed-folder) - [Share a file or folder by link](/help/drive/link-access) - [Cannot share](/help/drive/cannot-share) --- --- title: Share a file or folder by link type: how-to section: drive summary: Copy link hands out an Evolve link that opens only for the access list. Anyone with the link mints a public link for a file, and expires after 30 days. sources: - evolve-front-end/components/powerflow/share-resource-dialog.tsx - evolve-front-end/components/content-platform/use-share-link-actions.ts - evolve-front-end/lib/content-platform/public-content-links.ts - evolve-front-end/lib/content-platform/public-minisite-links.ts verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/invite-people-to-a-managed-folder, drive/permission-levels, drive/cannot-share] --- Open **Share**, leave **Link Access** on **Restricted**, and choose **Copy link**. The link goes to your clipboard and opens in Evolve for the people, workgroups and collaborations in the access list, and for nobody else. ## Copy a link for the access list 1. Open the item and choose **Share**, or **Invite** on a managed folder. 2. Check **Link Access**. **Restricted** means, in the dialog's own words, **Only invited parties can open this in Evolve.** 3. Choose **Copy link**. **Copy link** saves whatever is staged in the dialog before it copies, so a person you added in the same visit already has access by the time the link leaves your hands. A failed save cancels the copy rather than handing out a link that skips the change. The button also waits while the access list is still loading. ## Make a link that works without an Evolve sign-in This is available for a file, not for a managed folder. 1. Open **Share** on the file. 2. Open **Link Access** and choose **Anyone with the link**. The caption becomes **Anyone on the Internet with the link can view.** 3. Read the note underneath: **Press Copy link to create the public link and copy it.** Selecting the option stages an intention. No link exists yet. 4. Choose **Copy link**. The confirmation reads **Public link copied.** If the browser refuses the clipboard write, the message shows the URL so you can copy it by hand. A public link grants read access only, expires 30 days after it is minted, and covers the contents when the item is a folder or a site. On a site, scripts are switched off for public visitors. **Anyone with the link** is absent when the item cannot carry one: on every managed folder, and on a file you hold read-only. The item's own actions menu offers **Copy public link** for the same purpose. ## Links on a managed folder A managed folder has one link audience, **Restricted**, and no public option, no expiry and no password. **Copy link** copies the folder's address in Evolve, which opens for the access list only. To widen access, add a recipient: see [Invite people to a managed folder](/help/drive/invite-people-to-a-managed-folder). ## Find or withdraw a public link you already made **Link Access** cannot list a public link that already exists and cannot revoke one. The dialog says so: **Existing public links are managed from the item's own menu, and are not listed here.** **Restricted** in this control is therefore not proof that no public link is circulating. Use the item's own actions menu to inspect and remove its public link. Reopening the dialog clears the cached URL, so the next **Copy link** mints a fresh link rather than handing out one you have since revoked. ## If it did not work - **Copy link** stays disabled while the dialog saves and while access is still loading. Wait for the list to settle, then choose it again. - A failed mint reports **Failed to create public link.** Choose **Copy link** again; the failed attempt left no link behind. - A copy failure reports **Couldn't copy that link.** or **Could not copy the public link.** Browsers block clipboard writes that do not follow your own click, so press the button directly. - A recipient who lands on **You do not have access to view this content** is not in the access list. Add them, then send the link again. --- --- title: Rename a managed folder and read its tabs type: how-to section: drive summary: Folder settings holds Snapshot, Edit and Delete. Edit changes the name and category; the five tabs are Overview, Sites, Members, Activity and Snapshots. sources: - evolve-front-end/components/content-platform/content-platform-workspaces-panel.tsx - evolve-front-end/components/content-platform/content-platform-workspace-kinds.tsx - evolve-front-end/app/[lng]/drive/workspaces/[workspaceId]/page.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/create-a-managed-folder, drive/snapshots, drive/delete-a-managed-folder] --- Open the managed folder, choose the settings button labelled **Folder settings**, then **Edit**. Change **Name** or **Category** and choose **Save**. The same menu holds **Snapshot** and **Delete**. ## Rename or recategorise 1. Open the folder and choose **Folder settings**. 2. Choose **Edit**. The dialog title is **Edit managed folder**, with the reassurance **Members, files, and snapshots stay attached.** 3. Change **Name**, or pick a different **Category**, or both. 4. Choose **Save**. The button reads **Saving...** while it works, and stays disabled until something has actually changed. Only the name and the category can change. The description you typed when creating the folder is fixed: **Overview** shows it read-only, and a folder created without one shows **No description yet.** ## What the settings menu holds | Item | What it does | | --- | --- | | **Snapshot** | Opens **Capture snapshot**. See [Capture a snapshot of a managed folder](/help/drive/snapshots). | | **Edit** | Opens **Edit managed folder** for the name and category. | | **Delete** | Opens the confirmation described in [Delete a managed folder](/help/drive/delete-a-managed-folder). | A folder row in the list carries an actions menu with two settings entries of its own. Neither does anything today; use the settings button inside the folder. ## The five tabs | Tab | What it shows | | --- | --- | | **Overview** | The description, a **Recommended** rail of files with recent workflow activity, and the folder's file browser with search, **Type**, **People**, **Modified** and **Status** filters. | | **Sites** | Sites published from this folder. Empty until you upload one. | | **Members** | Everyone who holds access, with **Member**, **Source**, **Granted** and **Role**, and **Remove access**. | | **Activity** | Files in the folder with review or publish activity, with **Name**, **Owner**, **Date modified** and **Status**. | | **Snapshots** | The snapshots captured for this folder. | **Overview** owns the only file browser. There is no separate Files tab, and no Reviews tab: review state appears as a **Status** value and in **Activity**. On a narrow screen the tab row becomes a single select labelled **Managed folder inspector tab**. ## Uploading into the folder The folder header carries an **Upload** menu with **Upload files**, **Upload folder** and **Upload site**, and, where the feature is switched on, **Capture URL**. ## If it did not work - **Save** stays disabled when neither the name nor the category differs from what is stored. - **Failed to update managed folder.** means the change did not save. Renaming needs write access to the folder. - There is no control for access mode, retention or notifications on a managed folder. Sharing is the only access setting, and it lives behind **Invite**. - The description cannot be edited. Put the current wording in the folder name, or record it in a file inside the folder. --- --- title: Capture a snapshot of a managed folder type: how-to section: drive summary: A snapshot records which revision of every page a folder held at one moment. Capture it from the settings menu; it is a record, not a restore point. sources: - evolve-front-end/components/content-platform/content-platform-workspaces-panel.tsx - evolve-content-workspace/src/domain/workspace-service.ts - evolve-content-workspace/src/api/router.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/managed-folder-settings, drive/create-a-managed-folder, drive/my-tasks] --- Open the managed folder, choose the settings button, then **Snapshot**. Give the snapshot a label and choose **Capture snapshot**. Drive records which revision of every page the folder held at that moment and lists it on the **Snapshots** tab. ## Capture one 1. Open the managed folder. 2. Choose the settings button next to **Invite**. Its label reads **Folder settings**. 3. Choose **Snapshot**. The dialog title is **Capture snapshot**, with the line **Snapshots freeze the managed-folder state for review or publishing hand-off.** 4. Edit **Label** if you want. It arrives filled with the folder name and the current date and time in UTC. 5. Add **Notes (optional)**. The field asks **What's in this snapshot?** 6. Choose **Capture snapshot**. The button reads **Capturing…** until it is done, then Drive moves you to the **Snapshots** tab. An empty **Snapshots** tab offers **Create snapshot** as a shortcut to the same dialog. ## What a snapshot records A snapshot is a manifest of pointers, not a copy of your files. It records the folder, the identity of every page in it, which revision of each page was current, the active bindings and branch heads, and the registry revisions those pages referenced. Drive hashes that manifest, and the hash is what the **Snapshots** tab shows under **Manifest**. Because it stores pointers, a snapshot stays small however large the folder is, and it does not protect a file whose content is later replaced or deleted. ## Reading the Snapshots tab The table lists **Snapshot** (the label), **Description** (your notes, or **Managed folder snapshot** when you left them empty), **Created**, and **Manifest** (the short hash). Rows have no actions. Publishing also captures a snapshot on its own when a page is promoted, so the list can hold entries you did not create. ## Snapshots do not restore There is no restore action. Drive can create a snapshot and read one back, and nothing more. The empty state on the tab says snapshots "can be restored later"; the product does not offer that today, so treat a snapshot as evidence of what the folder held, not as a way to undo a change. ## If it did not work - **Capture snapshot** stays disabled until **Label** has text in it. - **Failed to capture snapshot.** points at the service. Try again; capturing twice in the same second is treated as one request, so a repeat is safe. - Capturing a snapshot needs write access to the folder. If it keeps failing and you hold **Can view**, ask the folder's owner. - To keep a copy of the files themselves, download them. A snapshot will not bring back deleted content. --- --- title: Delete a managed folder type: how-to section: drive summary: Deleting is permanent and needs you to type the folder's name. It removes the folder, its members and its snapshots; the files themselves stay in Drive. sources: - evolve-front-end/components/content-platform/content-platform-workspaces-panel.tsx - evolve-content-workspace/src/domain/workspace-service.ts - evolve-content-workspace/src/api/router.ts verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/managed-folder-settings, drive/create-a-managed-folder, drive/archive-an-item] --- Open the folder, choose **Folder settings**, then **Delete**. Type the folder's exact name into the confirmation field and choose **Delete managed folder**. There is no undo and no trash. ## Delete one folder 1. Open the managed folder and choose **Folder settings**. 2. Choose **Delete**. The dialog title is **Delete managed folder** and the line under it reads **This permanently removes the managed folder and its authoring rows.** 3. Read the panel headed **You will delete**. It names the folder and counts its pages and members. 4. Type the folder's name exactly as shown. The field will not accept anything else, and the button stays disabled until it matches. 5. Choose **Delete managed folder**. It reads **Deleting...** while it works. You can also start this from a folder row's actions menu, where the entry reads **Delete managed folder…**. ## Delete several at once Check the folders in the list and use the delete action from the selection bar. A multiple-folder confirmation asks you to type **DELETE** rather than a folder name. The result is reported per folder, so a partial failure tells you how many went and how many did not. ## What is removed and what is kept Removed permanently: - The managed folder itself, with its name, category and description. - Its pages and every revision of them. - Its members and the grants that gave them access. - Its snapshots, bindings and pending review notifications. Kept: - The uploaded files. Content lives in Drive's registry, and deleting the folder removes only the connections that placed those files in it. The files stop appearing in the folder and stay reachable from **Home**, **My Drive** or **Shared**, depending on who owns them. ## If it did not work - The button is disabled until the typed text matches the folder name exactly, after trailing spaces are trimmed. Copy the name from the panel above the field. - A report of a failed delete means the folder is still there. Reload the list and try again. - Deleting needs write access to the folder. A viewer sees the control but the request is refused. - To hide a folder's contents rather than destroy the folder, archive the items instead: see [Archive an item](/help/drive/archive-an-item). --- --- title: Send a file for review type: how-to section: drive summary: Choose Send for review on the item, then name the reviewers and what you expect of each. The review exists only once a reviewer is named. sources: - evolve-front-end/components/content-platform/content-platform-review-reviewer-dialog.tsx - evolve-front-end/components/content-platform/content-platform-review-reviewers-panel.tsx - evolve-front-end/components/content-platform/content-platform-review-status-panel.tsx - evolve-front-end/components/content-platform/content-platform-item-preview-page-client.tsx verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/my-tasks, drive/publish-an-item, drive/invite-people-to-a-managed-folder] --- Open the file, choose **Send for review** from its actions, then name the reviewers in **Invite reviewers** and choose **Add reviewers**. Naming a reviewer is what creates the review: closing the picker without one leaves the file in **Draft**. ## Send it 1. Open the file. 2. Choose **Send for review**. On a draft, the status panel offers **Submit for review** for the same thing. 3. In **Invite reviewers**, search the field prompting **Invite people, groups, or collaborations**. It matches people, workgroups and collaborations. 4. Set **Expectation** for the reviewers you are adding: **Decision**, **Review** or **Make changes**. **Decision** is the default. 5. Choose **Add reviewers**. It reads **Sending** while it saves. The file's status becomes **Pending review**, and the item appears in each reviewer's **My tasks**. ## Reviewers must already be able to read the file A reviewer who cannot open the file cannot review it. When that happens the dialog refuses the assignment and says so: share the item with them first, then assign. Use **Share** on the file, or add them to the managed folder holding it. See [Invite people to a managed folder](/help/drive/invite-people-to-a-managed-folder). ## Manage reviewers afterwards The item's **Reviewers** panel lists everyone assigned, grouped as **Approved**, **Change request**, **Rejected** and **Pending**, with a count of how many of the assigned people have approved. **Add reviewers** adds more; the remove control beside a name drops one. A group with nobody in a given state reads **Nobody in this state.** An item with nobody assigned reads **No reviewers assigned.**, and decisions on it are refused until you assign someone. ## After a decision - **Approved** means every required reviewer approved. The status panel names who. - **Changes requested** returns the work to you. Upload a corrected version with **Upload new version**, which appears under **Versions** on the status panel. - **Rejected** closes the review. Send the item for review again to reopen the question. ## If it did not work - **Couldn't assign these reviewers.** means nothing was saved. Try again. - **Add reviewers** stays disabled until at least one recipient is chosen. - A reviewer who cannot see the item in **My tasks** was probably added to a group rather than named. Check the **Reviewers** panel. - To record your own decision on someone else's file, see [Review a file someone sent you](/help/drive/my-tasks). --- --- title: Review a file someone sent you type: how-to section: drive summary: My tasks lists what is waiting on you. Open the item, then choose Approve, Request changes, Send back to author or Reject from its actions. sources: - evolve-front-end/components/content-platform/content-platform-review-decision-dialog.tsx - evolve-front-end/components/content-platform/content-platform-review-status-panel.tsx - evolve-front-end/components/content-platform/review-decision-availability.ts - evolve-front-end/components/content-platform/content-platform-item-preview-page-client.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/request-a-review, drive/home, drive/publish-an-item] --- Choose **My tasks** in the left rail, open the item you were asked about, and record your decision from the item's actions: **Approve**, **Request changes**, **Send back to author** or **Reject**. **Approve** and **Request changes** each open a dialog with an optional **Comment**. ## Find what is waiting on you **My tasks** lists items currently waiting for your action, described as **Open and changes-requested tasks**. The columns are **Action needed**, **Name**, **Assigned**, **Location** and **Requested by**. **Action needed** reads **Review**, **Make changes** or **Approve**. Narrow the list with the tabs **All**, **Review**, **Make changes** and **Approve**, or with the field labelled **Search tasks**. The same list appears on **Home** under the tab **Needs my attention**. An empty queue reads **No items are waiting for your action.** ## Record a decision 1. Open the item from **My tasks**. 2. Open its actions menu. 3. Choose the decision: - **Approve** records your approval. - **Request changes** asks the author for a revision. - **Send back to author** returns the item to draft. - **Reject** closes the review. It records no comment. 4. For **Approve** and **Request changes**, add a **Comment** of up to 2,000 characters. It is optional, and the dialog notes that anything you write there is posted to the file's comments. The prompt reads **Add a note for the author (optional)** on an approval and **Tell the author what needs to change (optional)** on a change request. 5. Confirm. The button reads **Approving** or **Sending** while it saves. ## What the item's status means | Status | Meaning | | --- | --- | | **Draft** | Not yet sent for review. | | **Pending review** | Sent, and waiting on reviewers. | | **Changes requested** | A reviewer asked for a revision. | | **Approved** | Approved by the reviewers required. | | **Rejected** | Closed without approval. | | **Published** | Released from its managed folder. | Rows and pills collapse **Pending review** and **Changes requested** into **In review**, and show an unpublished item as **Draft**. The full value appears on the item's own status panel. ## Reading the review panel The item's status panel shows **Status**, who created the draft, who requested the review, and, for an approved item, the line **The latest version of the file has been approved by all reviewers**. **Reviewers** lists everyone assigned, split into **Approved by** and **Awaiting decision**, with a count of how many of the assigned people approved. **Versions** lists saved revisions and offers **Upload new version**. ## When a decision is not available A greyed-out decision names its reason. Common ones: - **Send this item for review before recording a decision.** No review exists yet. - **you are not assigned as a reviewer on this review** and your decision is not counted. - **open review threads must be resolved first** before an approval is accepted. - **this review has no assigned reviewers — assign one before deciding**. - **the diff evidence is stale — request a new review against the current version**. - **Already approved. Send a new revision for review to decide again.** or **This review was rejected. Send a new revision for review to decide again.** - **Your approval is recorded — waiting for another reviewer's approval.** Your part is done. ## If it did not work - **Couldn't record that decision.** means nothing was saved. Try the same decision again. - **Couldn't load tasks. Try refreshing.** points at the service. Use **Refresh** above the list. - A task that vanished was withdrawn or decided by someone else. Open the item and read its status panel. - To send something of your own for review, see [Send a file for review](/help/drive/request-a-review). --- --- title: Publish an item from a managed folder type: how-to section: drive summary: Publish is an action on an item inside a managed folder. Published items appear under Published by me, and Unpublish reverses it. sources: - evolve-front-end/components/content-platform/content-platform-item-preview-page-client.tsx - evolve-front-end/lib/content-platform/publication-permission.ts - evolve-front-end/components/content-platform/content-platform-area-initial-filter-state.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/my-tasks, drive/link-access, drive/upload-a-site] --- Open an item that lives in a managed folder and choose **Publish** from its actions. Its status becomes **Published**, and it appears under **Published by me**. **Unpublish** on the same menu reverses it. ## Publish 1. Open the item. It has to be inside a managed folder; an item in **My Drive** cannot be published. 2. Open the item's actions. 3. Choose **Publish**. It reads **Publishing...** while it works and confirms with **Published.** The same control becomes **Unpublish** afterwards, reading **Unpublishing...** while it works and confirming with **Unpublished.** ## What Published by me lists **Published by me** lists items that are published, that live in a managed folder, and that you published yourself. The list follows the publication record, not ownership: uploading a file, reviewing it or authoring a change does not put it here. Publishing does not make an item public. It records a release inside the folder. To give people outside Evolve access to something, use a public link on a site: see [Share a file or folder by link](/help/drive/link-access). ## Where a published item shows - On the item itself, as the status **Published** with a line naming who published it. - In **Published by me**. - For a site, through its own public link. ## Publishing is not available The control is greyed out when any of these is true: - The item is not in a managed folder. - You hold read access only. The menu explains that publishing requires write access and that you should ask the owner to share the file with write permission. - The item is an asset inside a site's manifest rather than a file in its own right. - Another workflow action on the item is still running. ## If it did not work - **Couldn't unpublish that item.** means the item is still published. Try again. - A refusal that names write access on the folder is the permission case above. Ask the folder's owner for **Can edit**. - Rollback and revoke are not offered on a published item today. **Unpublish** is the way back. - For a site, publishing the site's own content is a separate action in its editor: see [Change a site in plain English](/help/drive/edit-a-site). --- --- title: What the Retrieval area shows type: explanation section: drive summary: Retrieval lists the items an application manages for retrieval and RAG paths. It is a filtered view of your files, not a place to run a query. sources: - evolve-front-end/components/content-platform/content-platform-area-initial-filter-state.ts - evolve-front-end/components/content-platform/content-platform.constants.ts - evolve-front-end/components/content-platform/content-platform-shell-v2-client.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/home, drive/my-drive, drive/accepted-file-types] --- **Retrieval** lists the items in Drive that an application manages, rather than ones a person uploaded by hand. Those items are what retrieval and RAG paths read. The area is a filtered list of files: you can browse, filter, preview and select them exactly as anywhere else in Drive. ## What lands there An item appears in **Retrieval** when it is marked as application-managed. Items that arrived through an API rather than the upload panel are the usual case. The area's own empty state says so: **No app-managed items found. Items retrieved via the API appear here.** Your own uploads do not appear here. They are in **My Drive**. ## What you cannot do here There is no query box, no answer panel and no citation view in this area. Asking a question against your content happens in AI Studio, not in Drive. **Retrieval** is the inventory of what the retrieval path can read, so it answers "is this file indexed and reachable" rather than "what does this file say". ## Why an item might be missing - The file is not application-managed. It will be under **My Drive** or in a managed folder. - Processing has not finished. A file gains its extracted text after the upload completes; see [What Drive makes from your files](/help/drive/renditions). - The extraction failed. The file is usable but carries no text, which keeps it out of retrieval paths. ## Related - [Find your way around Drive](/help/drive/home) - [What Drive makes from your files](/help/drive/renditions) - [Accepted file types](/help/drive/accepted-file-types) --- --- title: Collect files from someone outside Evolve type: how-to section: drive summary: Secure Data Intake issues a secure upload link to a named sender. Accepted files are scanned, validated and delivered into a managed folder you choose. sources: - evolve-front-end/app/[lng]/drive/intake/page.tsx - evolve-front-end/app/[lng]/intake/[publicLocator]/page.tsx - evolve-front-end/components/content-intake/** - evolve-front-end/lib/content-intake/operator.server.ts - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/upload-a-file, drive/create-a-managed-folder, drive/home] --- Open **Secure Data Intake** in the left rail and choose **New request**. Name the request, pick the managed folder the files should land in, add the recipients' email addresses, and choose **Issue request**. Each recipient gets a link that verifies their email and accepts the files. The rail row appears only for people who administer intake. Its own description reads **Issue secure upload links, monitor delivery, and route accepted files into a managed folder.** ## Issue a request 1. Choose **Secure Data Intake**, then **New request**. The dialog says **Create a secure upload link for one or more named senders.** 2. Type a **Request name**. 3. Choose the **Destination managed folder**. Folders belonging to a Space are grouped under **Spaces**. 4. Add **Recipients**, one email address per line. The help text says **Enter one email address per line. Addresses are used only for identity matching and delivery.** 5. Write **Sender instructions**. The sender sees them on the upload page. 6. Open **Limits and handling** if the defaults do not fit. It carries **Per-file limit (GB)**, **Total limit (GB)**, **Maximum files**, **Concurrent uploads**, **Expires after (days)**, **Purpose reference**, **Classification reference** and **Retention profile**. The panel notes **Any file format is accepted under the returned policy. Unrecognized formats use store-only handling.** 7. Choose **Issue request**. It reads **Issuing…** while it works. ## What the sender does The sender opens the link and sees **Secure Data Intake** with your instructions and the request limits. They enter their **Email address** under **Verify your email**, which explains **Use the email address that received this request. Evolve will send a one-time code.**, then choose **Continue securely**. They then choose files or a folder and start the upload. The page describes itself: **Choose files or a folder. Any file type allowed by the request policy can be transferred.** Uploads can be paused and resumed, and the receipt page says **You can close this page. The safe receipt below is authoritative.** The footer states what happens next: **Files are admitted by request policy, scanned, validated, and delivered only to the designated managed folder.** ## Track a request The list shows **Request**, **State**, **Expires**, **Submissions** and **Attention**. Open a row for its details, its policy and its submissions. **Invitations** holds one row per recipient. **Add or reissue** issues a new link for an address; the help text warns **Reissuing creates a fresh link and invalidates the previous one. Delivery status does not control access.** **Revoke** withdraws an invitation and ends its sessions. On the request itself, **Expire** stops new uploads and **Revoke** ends every active sender session. Both ask you to confirm. **Submissions** lists each file with **File**, **State** and **Size**, and counts the uploaded files against the declared total for each submission. ## When something needs attention - **Scanning needs review** holds the affected files. The note says the affected files stay isolated and cannot be delivered, and gives the support reference to quote when escalating. - **Destination needs attention** means the delivery could not be bound. Enter the **Managed folder ID**, optionally a **Folder ID (optional)**, and choose **Rebind destination**. - **Notification delivery needs attention. Reissue if the recipient did not receive a usable link.** means the email may not have arrived. Use **Add or reissue**. ## If it did not work - **Destination managed folders could not be loaded.** means the folder picker failed. Reload the page. - **The intake request could not be issued.** means nothing was created. Try again. - **Intake requests could not be refreshed. Existing results remain available.** means the list is stale, not empty. - A sender who reports **This request is not available** holds a revoked or expired link. Issue a fresh one. - Administering intake needs the intake capability on your role. If the rail row is absent, ask an Account administrator. --- --- title: Upload failed type: troubleshooting section: drive summary: Every upload failure names a message and a recommended action. This page groups the messages by cause and says which ones are worth retrying. sources: - evolve-front-end/lib/content-registry/upload-error-catalog.ts - evolve-front-end/lib/content-registry/upload-error.ts - evolve-front-end/components/content-platform/content-platform-upload-panel.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/upload-a-file, drive/accepted-file-types, drive/upload-a-site] --- A failed row in the upload queue carries the reason and a recommended action beneath it. Do what that action says first. **Try again** on the row retries a single file; **Details** shows the error code, the HTTP status and a reference identifier to quote if you need help. ## The file itself is not accepted | Message | What to do | | --- | --- | | **This file type is not supported here. Choose a supported format.** | Check [Accepted file types](/help/drive/accepted-file-types) and convert the file. | | **The file type does not match its extension.** | The contents are not what the extension claims. Re-export the file. | | **This file is too large for the current upload limit.** | Split the file or ask an administrator about the limit. | | **This file exceeds the available upload limit.** | The destination is out of room. Remove files or choose another destination. | | **We could not start this upload. Please select the file again.** | Pick the file again; the selection went stale. | None of these are worth retrying unchanged. ## You are not allowed to upload here | Message | What to do | | --- | --- | | **You do not have permission to upload to this location.** | You hold read access on the destination. Ask its owner for **Can edit**. | | **Your session has expired. Please sign in again.** | Start a new session, then upload again. | | **Your session could not be verified for this upload.** | The same: start a new session. | ## The destination is wrong or gone | Message | What to do | | --- | --- | | **The upload destination could not be found.** | Reload Drive; the folder may have been renamed or deleted. | | **This destination is unavailable. Choose another location.** | Pick a different destination in **Save to**. | | **This upload is already in progress or has changed. Refresh and try again.** | Reload before retrying, or the same file lands twice. | | **The upload expired. Please start it again.** | Queue the file again from the beginning. | | **My Drive is still being prepared. Please try again in a moment.** | Wait a moment. Drive is provisioning your personal container. | | **My Drive is unavailable. Please refresh and try again.** | Reload the page. | ## The transfer broke These are worth retrying as-is: - **The file transfer was interrupted.** - **The upload completed, but we could not confirm the file.** - **The file transfer finished, but the upload could not be finalized.** - **We could not start this upload. Please try again.** - **The uploaded file could not be verified. Please try again.** - **The upload service took too long to respond.** - **The upload service returned an unexpected response.** A large upload keeps its progress across a reload, so a retry after an interruption resumes rather than restarting. **This queue item cannot be retried after the panel was reloaded.** means that particular row lost its session: queue the file again. ## Security checks | Message | What it means | | --- | --- | | **Security checks are still running.** | Nothing is wrong. The file is held until the scan finishes. | | **This file was blocked by a security check.** | The file will not be admitted. Do not retry it. | | **Security checking is temporarily unavailable. Please try again later.** | Retry later. | ## Processing after the upload **The file uploaded, but preview or search processing could not be completed.** means the file is in Drive and usable, but has no preview or extracted text. Retry later; the row offers **Inspect item** to open it as it stands. **Preview and search processing cannot be retried right now.** means the retry is unavailable for the moment. ## The service is down **The upload service is temporarily unavailable.**, **Your session could not be confirmed. Please try again later.** and **The list of supported file types is unavailable. Please try again later.** all point at a service rather than your file. Try again later; nothing was uploaded. ## Before the upload even starts | Message | Cause | | --- | --- | | **Too many files selected. Upload up to 1,000 files at a time.** | More than 1,000 files. Split the batch. | | **Some files are not supported here.** | At least one dropped file is not in the catalogue. | | **The selected folder could not be opened.** | The browser refused the directory picker. Drag the folder in instead. | | **Upload file types are still loading. Please try again in a moment.** | The catalogue has not arrived. Wait a second. | | **Choose a WebVTT (.vtt) captions file.** | The captions file is not `.vtt`. | | **Caption files must be smaller than 10 MB.** | The captions file is over the limit. | ## Related - Open **Details** on the row and quote the reference identifier when you ask for help. - Retry one file rather than the batch: a single **Try again** avoids re-uploading everything. - If a whole batch fails the same way, the cause is the destination or your access, not the files. - For a site bundle rejected before upload, see [Upload a site](/help/drive/upload-a-site). --- --- title: File will not open type: troubleshooting section: drive summary: Each preview failure states its own reason. This page maps every message to its cause and says whether waiting, retrying or downloading is the fix. sources: - evolve-front-end/components/content-registry/content-registry-rich-preview.tsx - evolve-front-end/components/content-platform/content-platform-item-preview-page-client.tsx - evolve-front-end/lib/content-platform/error-screens.ts - evolve-front-end/components/content-platform/private-content-link-error.tsx verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/open-and-preview-a-file, drive/renditions, drive/upload-failed] --- Drive replaces a failed preview with a short statement of why. Read that statement first: it distinguishes a file that is still being processed from one that will never preview, and only some cases are worth retrying. **Download** works in almost every case, because it fetches the original rather than the preview. ## The file is still being processed | Message | What to do | | --- | --- | | **Preview not yet available, scan in progress.** under **Scan in progress** | Wait. The malware scan has to pass before anything is generated. | | **Preview is being generated, check back shortly.** under **Preview processing** | Wait, then reload the page. | | **Partial preview available. Full content may be missing.** under **Partial preview** | Use **Retry extraction** for a full pass, or work with what is shown. | ## The file cannot be previewed here | Message | What to do | | --- | --- | | **This file type cannot be previewed here.** | Use **Download**. Drive could not identify the format. | | **Preview not available for this file type.** | The same: download it. | | **File too large to preview. Download to view locally.** | The file is over 100 MB. Use **Download**. | | **Metadata is available, but no browser-safe preview artifact was generated for this file type.** | The facts Drive read are on the **Info** panel. The file downloads normally. | ## Something went wrong with the file | Message | What to do | | --- | --- | | **Preview generation failed. Try re-uploading or contact support.** under **Preview generation failed** | Use **Retry extraction** first. If it fails again, upload the file again. | | **Preview unavailable: file may be corrupt. Try re-uploading.** | Download the file and open it locally to confirm. Re-upload a good copy. | ## Access or security stopped it | Message | What to do | | --- | --- | | **Preview blocked: malware detected. Contact administrator.** under **Preview blocked** | Nothing to retry. The file will not be served, and the download is refused too. | | **You do not have permission to preview this item.** under **Access restricted** | Ask the owner to share it with you, or to give you **Can edit** if you need to change it. | | **Preview blocked.** with **Preview URL is not allowed.** | The preview source failed a policy check. Report it with the file's identifier from the **Info** panel. | ## The page itself will not load - A link that reports **You do not have access to view this content** means you are not on the item's access list. The page adds **Ask the owner to share the file or folder with your Evolve account.** - **This content link is unavailable** means the link expired or was withdrawn. Ask for a new one; public links last 30 days. - Drive sends you to a not-found page when the item was deleted, and to a session page when your session lapsed. - A server error offers **Try again**. Use it before anything else. ## An image shows facts but no picture Some image formats need a generated browser copy before they can be shown. The viewer says which, for example **TIFF originals require a derived browser image before inline rendering.** or **Camera RAW originals require a derived browser image before inline rendering.** The extracted facts are under **Image facts**, and **Download** gives you the original. See [What Drive makes from your files](/help/drive/renditions). ## A PDF opens but has no text The document is a scan. Choose **Run OCR** on the file's **Metadata** panel. Until it finishes, Drive says **Extracted text is unavailable for this item. This PDF may require OCR.** ## Related - Note the exact wording. The message decides whether waiting, retrying or downloading is the fix. - Use **Download** to confirm the file itself is sound; a preview failure rarely means a damaged file. - **Retry extraction** exists only for a failed or partial extraction. Its absence means retrying will change nothing. - Quote the **Item ID** from the **Info** panel when you report a preview problem. --- --- title: Cannot share type: troubleshooting section: drive summary: "What each failure in the share dialog means: a disabled Done button, a failed save, a recipient who cannot be found, and a link that opens for nobody." sources: - evolve-front-end/components/powerflow/share-resource-dialog.tsx - evolve-front-end/components/content-platform/content-platform-workspaces-panel.tsx - evolve-front-end/app/i18n/locales/en/content-platform.json verified: at: 2026-09-04 env: code by: content-lane-drive ttl_days: 45 related: [drive/invite-people-to-a-managed-folder, drive/permission-levels, drive/link-access] --- Most share failures come from one of four things: nothing staged to save, a recipient the picker cannot offer, a grant the service refused, or a link whose audience is narrower than you expected. Work through the symptom you can see. ## Done is greyed out **Done** activates only when the dialog holds an unsaved change. Adding a recipient to the field is not enough: choose **Share** first, which moves the recipient into **Who can access**. **Done** is also disabled while the access list or the candidate list is still loading. ## Failed to update shares. The service refused the change and nothing was saved. Reopen the dialog and check **Who can access** to see what is actually stored, then try again. Granting access needs write permission on the item, so this repeats for anyone holding **Can view**. ## Failed to load shares. The dialog could not read the current access list. Nothing is broken and nothing has changed; close it, reload the page and open **Share** again. ## No people, workgroups, collaborations, or all Evolve users found. The picker matched nothing. Three causes, in order of likelihood: - The person is spelled differently in the directory. Search by surname alone. - You are searching for a Space. Spaces are not offered as recipients, because a Space owns no folder. Pick the Space's workgroup instead, or post the file into the channel from the **Send in Spaces** tab. - The person is not in your Account. There is no invitation by email address from this dialog. ## The permission menu on a row will not open That row's grant cannot be changed in place. Choose **Remove** on the row, then invite the same recipient again with the permission you want. ## The recipient says the link does not work - A **Restricted** link opens only for the access list. Confirm the person appears in **Who can access**, rather than assuming the link is enough. - A recipient who sees **You do not have access to view this content** is outside the access list. The page tells them to **Ask the owner to share the file or folder with your Evolve account.** - A recipient who sees **This content link is unavailable** hit a link that has expired or been withdrawn. Public links last 30 days. ## The file is not in their Shared list An Account-wide grant does not add a row to **Shared**, and a file posted into a Space channel is reached from that channel's **Files** tab rather than from Drive. See [Find what other people shared with you](/help/drive/shared-with-you). ## Related - Reopen the dialog and read **Who can access**. It is the only reliable statement of who holds access. - Ask the recipient which Account they are signed in to. - Check whether you hold **Can edit** on the item. Sharing is a write action. - For a public link that must be withdrawn, use the item's own actions menu; **Link Access** cannot revoke one. --- --- title: Start a conversation in AI Studio type: how-to section: ai-studio summary: Open AI Studio, type your question in the message box, and press Enter. AI Studio creates a thread and streams the reply. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/page.tsx - evolve-front-end/app/[lng]/studio/studio-root-composer.tsx - evolve-front-end/app/[lng]/studio/(pages)/(new-prompt)/th/** - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/lib/ai-studio/routes.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/choose-a-model, ai-studio/attach-files-to-a-message, ai-studio/find-a-past-thread] aliases: [ai-studio/start-a-chat] --- Type your question in the message box at the bottom of the page and press Enter. AI Studio saves the exchange as a thread and writes the reply into the page as it arrives. Each exchange lives in a thread. A new thread starts empty, with the heading **What shall we explore next?** and the message box reading **Ask me anything**. ## Send your first message 1. Open AI Studio. Or select **New Thread** above the thread list in the left sidebar to leave the thread you are reading. 2. Type your message. Press Shift and Enter together for a new line inside the same message. 3. Press Enter, or select the arrow button next to the message box. The address in your browser changes from `/studio/th` to `/studio/th/` as soon as the thread exists, so you can copy the address or reload the page without losing the exchange. ## Stop a reply that is still running While a reply is streaming, the arrow button becomes a square. Select it to stop. AI Studio keeps the partial text and marks the response with **You stopped this response.** Pressing Enter does not stop a running reply. Use the button. ## Keep going in the same thread Send another message and AI Studio adds it to the same thread with the earlier messages as context. Everything you have already sent counts towards the thread's token limit, so a long thread eventually reaches it. See [Token limits in a thread](/help/ai-studio/token-limits). ## If it did not work - The message box is missing a send button and shows **No models are available for your account**: see [No models are available for your account](/help/ai-studio/model-unavailable). - Enter does nothing and a message says **Please wait until all files are uploaded.**: wait for the attachment chips to finish, then press Enter again. - The reply stops part way: see [A reply stopped before it finished](/help/ai-studio/response-cut-off). - The counter next to the message box is red: the thread is at its token limit. Start a new thread with **New Thread**. --- --- title: Choose a model type: how-to section: ai-studio summary: Select the model name at the top of a thread, pick a group, then pick a model. A model picked from a provider group becomes your default. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/ModelSelectorV2.tsx - evolve-front-end/app/[lng]/studio/components/ModelList.tsx - evolve-front-end/app/[lng]/studio/components/ModelConfigPanel.tsx - evolve-front-end/app/[lng]/studio/components/ModelConfiguration.tsx - evolve-front-end/app/[lng]/studio/store/useModelStore.ts - evolve-front-end/app/[lng]/studio/store/useModelConfigStore.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/start-a-conversation, ai-studio/token-limits, ai-studio/model-unavailable] --- Select the model name at the top of the thread to open the model picker, choose a group, then choose a model. The next message you send uses it. The button shows the model you are on now. Before a model resolves it reads **Select model**. ## Pick a model 1. Select the model name at the top of the thread. 2. The first pane is headed **Models**. It starts with **Recommended**, then one row per provider. Self-hosted models are grouped under **Self-hosted**. 3. Select a row to open its models. **Recommended** splits into **Smart** and **Fast**. Use **Back** or **All models** to return to the first pane. 4. Select a model. The picker closes and the button shows the new name. The picker has no search box. Which models appear depends on what your Account allows, so two people can see different groups. Choosing a model from a provider group makes it your default: new threads open on it until you choose another. Choices made inside **Recommended** are not kept as the default. ## Set how hard the model thinks Some models expose one setting, **Reasoning**. A higher level makes the model spend longer before answering and costs more. 1. Open the model picker and select the settings control on the model's row. 2. Choose a level under **Select reasoning**. 3. Use **Reset to default** to go back to the level the model ships with. A model with no settings shows **This model doesn't support any customizations.** Nothing else about the model is exposed. There is no control for temperature, response length, or web access; a model that can read the web does so on its own when the question needs it. ## If it did not work - The button reads **Select model** and no models are listed: see [No models are available for your account](/help/ai-studio/model-unavailable). - The model you want is not in any group: your Account does not allow it. Ask your Account administrator. - A file was refused after you switched model: models accept different file types. See [A file was not uploaded](/help/ai-studio/upload-rejected). - Replies are slower than you expect: lower the **Reasoning** level. --- --- title: What models can do type: reference section: ai-studio summary: The model catalogue is served at run time and differs by Account. This page carries the model facts that live in the code. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/utils/modelUtils.ts - evolve-front-end/app/[lng]/studio/utils/model-file-support.ts - evolve-front-end/app/[lng]/studio/utils/supported-file-types.ts - evolve-front-end/app/[lng]/studio/components/Chat/lower-effort-retry.ts - evolve-front-end/app/[lng]/studio/store/useLLMModelsStore.ts generated: evolve-front-end/scripts/help-generate.mjs verified: at: 2026-09-05 env: code by: help-generate ttl_days: 45 related: [ai-studio/choose-a-model, ai-studio/token-limits, ai-studio/model-unavailable] --- [//]: # (help-generate begin human:intro) The list of models you can pick is not held in the product's code. It is served to the browser when a thread opens, and it differs by Account, so no page can name the models you will see. Open the model picker to read your own list: see [Choose a model](/help/ai-studio/choose-a-model). What this page carries instead is what the interface itself knows about models, whatever the catalogue says. [//]: # (help-generate end human:intro) ## What you can attach to a message A model accepts files by family. The picker offers a file only when the catalogue says the model takes that family. Generated from `evolve-front-end/app/[lng]/studio/utils/model-file-support.ts` and `evolve-front-end/app/[lng]/studio/utils/supported-file-types.ts` by `evolve-front-end/scripts/help-generate.mjs`. | Family | Extensions | | --- | --- | | Images | `.gif`, `.jpeg`, `.jpg`, `.png`, `.webp` | | Video | `.mp4`, `.webm` | | Documents and code | `.bash`, `.c`, `.cfg`, `.conf`, `.cpp`, `.cs`, `.css`, `.csv`, `.doc`, `.docx`, `.env`, `.go`, `.graphql`, `.html`, `.ini`, `.java`, `.js`, `.json`, `.jsx`, `.kt`, `.latex`, `.less`, `.log`, `.md`, `.pdf`, `.php`, `.ppt`, `.pptx`, `.proto`, `.py`, `.r`, `.rb`, `.rs`, `.rtf`, `.scala`, `.scss`, `.sh`, `.sql`, `.swift`, `.tex`, `.toml`, `.ts`, `.tsv`, `.tsx`, `.txt`, `.xls`, `.xlsx`, `.xml`, `.yaml`, `.yml` | Images are sent as `image/gif`, `image/jpeg`, `image/png`, `image/webp`, and video as `video/mp4`, `video/webm`. A document's MIME type follows its extension. ## Reasoning levels A model that exposes **Reasoning** offers some of 8 effort levels. The interface ranks them from least to most effort in this order: `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max`, `ultra`. Which of them a model offers comes from the catalogue, and a model that offers none shows **This model doesn't support any customizations.** Generated from `evolve-front-end/app/[lng]/studio/components/Chat/lower-effort-retry.ts` by `evolve-front-end/scripts/help-generate.mjs`. A level the catalogue names but this order does not carry, such as a provider's own wording, is shown as it arrives and is not ranked. ## Image generation One model is treated as an image generator by the interface rather than by the catalogue: `gpt-image-2`. When it is selected, the thread returns pictures instead of text. See [Generate images and videos](/help/ai-studio/generate-images-and-videos). ## When the catalogue is silent The catalogue reports what each model accepts and whether it can read the web. When a model's record says neither, the interface falls back to two lists of model names it holds itself: 35 names treated as able to read images, and 6 treated as able to read the web. Both lists are marked in the code as superseded by the catalogue. Generated from `evolve-front-end/app/[lng]/studio/utils/modelUtils.ts` by `evolve-front-end/scripts/help-generate.mjs`. The names in those lists are not a list of models you can pick, so they are not reproduced here. Your own list is the model picker. [//]: # (help-generate begin human:boundary) ## What this page cannot tell you - Which models your Account allows. The catalogue is per Account and arrives at run time. - What a model costs. See [What your requests cost](/help/ai-studio/cost-and-usage). - How large a thread a model allows. See [Token limits in a thread](/help/ai-studio/token-limits). [//]: # (help-generate end human:boundary) [//]: # (help-generate begin human:related) ## Related - [Choose a model](/help/ai-studio/choose-a-model) - [Token limits in a thread](/help/ai-studio/token-limits) - [No models are available for your account](/help/ai-studio/model-unavailable) [//]: # (help-generate end human:related) --- --- title: Attach files to a message type: how-to section: ai-studio summary: Attach files from your device or from Drive with the plus button next to the message box, or drag them onto the thread. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ImportFiles.tsx - evolve-front-end/app/[lng]/studio/components/Chat/FileAttachmentGrid.tsx - evolve-front-end/app/[lng]/studio/components/Chat/attachment-type-config.ts - evolve-front-end/app/[lng]/studio/utils/model-file-support.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/upload-rejected, ai-studio/attach-a-repository, ai-studio/choose-a-model] --- Select the plus button next to the message box, choose **Upload files**, and pick the files. They upload as chips above the message box and are sent with your next message. What a model accepts is decided by the model, not by AI Studio, so the picker offers different file types on different models. ## Four ways to attach - **Upload files** from the plus button, labelled **More options**, opens your device's file picker. You can select several files at once. - Drag files onto the thread. An overlay reads **Drop files here to upload**. - Paste an image straight into the message box. - **Add from Drive** opens your Drive files. Search by name, narrow by **File type**, then choose **Add as attachment**. An image-capable model also offers **Add photo from URL**. On a model that reads video the same item reads **Add photo or YouTube video from URL**. Paste the address into **URL** and select **Add**. ## Size limits | Kind | Largest accepted | | --- | --- | | Image | 20 MB | | Video | 1000 MB | | Document | 100 MB | A file over the limit is refused with **Following could not be uploaded:** and the file's name and size. ## Before you send Each attachment appears as a chip. Select **Remove** on a chip to take it off the message. On an image chip you can add a description for people using screen readers with **Add image description**. Wait for every chip to finish. Sending early shows **Please wait until all files are uploaded.** and nothing is sent. Attachments are not carried over to a new thread. Attach them again if you start one. ## If it did not work - A file was refused: see [A file was not uploaded](/help/ai-studio/upload-rejected). - The plus button offers no upload item: the model you are on takes no files. Change model, then attach again. See [Choose a model](/help/ai-studio/choose-a-model). - **Add from Drive** shows **Error fetching files**: close the window and open it again. - A chip says **Some files failed to upload**: remove it and attach the file again. --- --- title: Attach a repository to a thread type: how-to section: ai-studio summary: Attach up to five GitHub repositories to a thread so the model reads their file listing and README as reference on every message. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/AddRepository/AddRepositoryDialog.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ThreadRepositoryAttachments.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ThreadRepositoryAttachmentsPanel.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ThreadRepositoryAttachmentsHeader.tsx - evolve-front-end/lib/studio/thread-repository-attachments.ts - evolve-front-end/app/i18n/locales/en/agents.json - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/attach-files-to-a-message, ai-studio/github-link-cards, ai-studio/run-an-agent] --- Select the plus button next to the message box, choose **Add repository**, then pick a GitHub connection, a repository, and a branch. The model reads that repository as reference on every message in the thread. You need a GitHub account connected to your Evolve profile first. Without one the picker shows **You haven't connected GitHub yet.** and a link, **Connect GitHub on your profile**. ## Attach a repository 1. Select the plus button next to the message box, then **Add repository**. 2. Choose a connection. The one marked **Default** is used unless you pick another. Select **Next**. 3. Find the repository. Type in **Search repositories** to narrow the list; each row shows **Private** or **Public**. Select **Next**. 4. Choose a **Branch**. The repository's default branch is pre-selected. 5. To limit the model to one folder, type it into **Path (optional)**. 6. Select **Add**. The repository appears as a chip labelled `owner/repo@branch`, with **via** and the connection name below it. The same chips show under the thread title. A thread carries up to five repositories. Past that, adding one is refused with a message giving the limit. ## What the model receives On every message, each active repository contributes the top-level file listing and the README, both trimmed to a fixed size. The model gets this as read-only reference alongside your message. Nothing is written into the thread's history, and nobody else sees it. Attaching a repository before you send the first message holds it locally; the chip reads **Saved with your first message** until the thread exists. ## Remove a repository Select the remove control on the chip. If the underlying access grant survives, a warning appears: **Repository removed. Its access grant could not be revoked; revoke it under Connected accounts.** Follow it in your profile. ## A chip with a warning icon These chips carry a note, **Not sent to the model.**, and the repository contributes nothing until you fix the cause. - **Connection removed** — the GitHub connection is gone. Connect GitHub again, then re-attach. - **Access revoked** — the grant for this repository was withdrawn. Re-attach it. - **Not verified** — the repository could not be checked. Remove it and add it again. ## If it did not work - **Add repository** is not in the menu: the repository surface is off for your environment, or your GitHub connection is not usable. Check your connected accounts in your profile. - **Couldn't load GitHub connections.** or **Couldn't load repositories.**: close the window and open it again. - **Couldn't add this repository.**: check that the connection is active and that you still have access to the repository on GitHub. - The model answers as if it cannot see the code: it receives a file listing and the README, not the whole repository. Paste the specific file, or see [Attach files to a message](/help/ai-studio/attach-files-to-a-message). --- --- title: Use a persona in a thread type: how-to section: ai-studio summary: Select the persona control at the top of a thread and choose a persona. Its text is added to the model's instructions on every message you send. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/PersonasDropdown.tsx - evolve-front-end/app/[lng]/studio/components/PersonaIndicator.tsx - evolve-front-end/app/[lng]/studio/components/Personas/PersonaSystemPromptInspector.tsx - evolve-front-end/app/[lng]/studio/store/usePersonaStore.ts - evolve-front-end/app/[lng]/studio/utils/personaUtils.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/create-a-persona, ai-studio/cost-and-usage, ai-studio/start-a-conversation] --- Select the persona control at the top of the thread, next to the model name, and choose a persona. Every message you send from then on carries the persona's text as part of the model's instructions. The control reads **Persona** when none is chosen, and shows the persona's name once one is. ## Choose a persona 1. Select **Persona** at the top of the thread. On a narrow screen, open the thread's **More options** menu and choose **Personas**. 2. Type in **Search personas** to narrow the list. 3. Select a persona. Only your private personas appear here. If the list is empty it reads **No personas found**. ## Clear the persona Open the same control and select the remove button on the persona that is currently chosen. The thread goes back to plain replies. ## A persona stays chosen Your choice is remembered in this browser and applied to new threads until you clear it. Check the control at the top of a thread before you send if you want plain replies. ## See exactly what the model is told Select the document button next to the chosen persona. A window headed with the persona's name shows the text the model receives, under a note: **Sent once per turn, after the platform system prompt. The platform prompt is not shown.** Below the title is its size in characters and approximate tokens. A persona changes the model's instructions only. It does not change which model runs, which tools are available, or what your attachments do. ## If it did not work - Replies read the same as before: check that the control shows a persona name and not **Persona**. - The persona you made for a workgroup is not listed: the thread picker lists private personas only. - **The system prompt could not be loaded.**: close the window and open it again. - Costs went up after choosing a persona: the persona text is sent with every message. See [What your requests cost](/help/ai-studio/cost-and-usage). --- --- title: Create a persona type: how-to section: ai-studio summary: Open Personas in the AI Studio sidebar, select Add Persona, and fill in the role and instructions the model should follow. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/(pages)/personas/page.tsx - evolve-front-end/app/[lng]/studio/components/Personas/** - evolve-front-end/app/[lng]/studio/context/PersonasContext.tsx - evolve-front-end/app/[lng]/studio/types/schema.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/use-a-persona, ai-studio/cost-and-usage] --- Open **Personas** in the AI Studio sidebar, select **Add Persona**, fill in **Persona Name**, **Persona Role** and **Instructions**, then select **Create Persona**. A persona is a block of standing instructions you can apply to any thread. Personas you create here are **Private**: only you see them. ## Fill in the form 1. Select **Personas** in the sidebar, then **Add Persona**. 2. **Persona Name** — how the persona appears in your lists and pickers. It is required. 3. **Description** — your own note about the persona. It is not part of the text the model receives, but it does count towards the character limit below. 4. **Persona Role** — the perspective the model takes. 5. **Instructions** — how the model should behave: style, tone, and what it should and should not do. 6. Select **Create Persona**. ## Add traits Traits are named blocks under the main instructions, for the parts of a persona that are easier to keep separate. 1. Select **Add New Trait** in the **Traits** column. 2. Type a **Trait name**, then the **Trait details**. 3. Repeat for each trait, up to 50. ## Length and cost A counter under **Instructions** shows how many characters you have used out of the maximum. It counts the name, description, role, instructions and every trait together. - Past 24,000 characters a warning appears: **Long persona text is sent with every message and raises its cost.** - The hard limit is 60,000 characters. Saving past it fails with a message giving that maximum. The persona is sent on every message in a thread that uses it, so length is paid for repeatedly. Keep it as short as the job allows. To read exactly what the model receives, open the persona's system prompt from the thread: see [Use a persona in a thread](/help/ai-studio/use-a-persona). ## Edit, copy or delete The list at **Personas** has a row menu on every persona: - **Edit** reopens the form. Save with **Save Changes**. - **Duplicate** makes a copy named after the original with `- Copy` appended. - **Copy Details** puts the persona's text on your clipboard. - **Delete** removes it. Deleting cannot be undone. Sort the list with **Sort by**, or search it with **Search**. ## If it did not work - **Persona name is required**: fill in **Persona Name**. - **An error occurred while saving.**: check the character counter, then save again. - A message says a persona can hold at most 50 traits: remove traits or fold them into **Instructions**. - The new persona is not in the thread picker: reload the thread page. --- --- title: Connect an MCP server type: how-to section: ai-studio summary: Use the plug button next to the message box to add a remote MCP server so the model can reach its tools and data during the thread. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/McpManager.tsx - evolve-front-end/app/[lng]/studio/components/McpServersModal.tsx - evolve-front-end/app/[lng]/studio/components/AddMcpServerModal.tsx - evolve-front-end/app/[lng]/studio/components/ServerLibraryModal.tsx - evolve-front-end/app/[lng]/studio/components/MCPApprovalDialog.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/start-a-conversation, ai-studio/choose-a-model] --- Select the plug button next to the message box, choose **Add MCP server**, give it a **Name** and a **Remote server URL**, then select **Add**. The model can use that server for the rest of the thread. The plug button reads **Add MCP server** while no server is active and **Manage MCP servers** once one is, with the number of active servers beside it. It appears only on models that support these servers. ## Add a server 1. Select the plug button next to the message box. 2. Select **Add MCP server**. 3. **Name** — letters, digits, hyphens and underscores, starting with a letter. 4. **Remote server URL** — the full remote endpoint, for example an address ending in `/mcp`. 5. **Allowed tool names (optional)** — a comma-separated list. A server can expose many tools; listing the ones you want keeps the thread to those. Leave it blank to accept the server's own default. 6. Select **Add**. The window states the scope plainly: **Once added, this MCP server will be used for all subsequent assistant responses in this thread only, with no additional permission prompts.** That covers adding the server: you are not asked again to make it available to the thread. Individual tools can still ask before they run, if the server marks them that way. ## Reuse a server in other threads - **Server library** holds servers you have added before. Open it from the plug button and select **Add** on a row to make it active in this thread, or **Remove** to take it out. - Turn on **Make listed MCP servers global for new threads** so the active servers carry into threads you start later. Threads that already exist keep what they had. You need at least one active server before the switch will turn on. ## Approving a tool Where a server asks for confirmation, a message names the server and asks whether to allow it. Choose **Allow** or **Deny**. Denying leaves the model to answer without that server. ## Remove a server Open the plug button, select the delete control on the server's row, then **Done**. Turning off the global switch also clears the active list. ## If it did not work - The plug button is missing: the model you are on does not support these servers. See [Choose a model](/help/ai-studio/choose-a-model). - **Name must start with a letter** or **Name can only contain letters, digits, hyphens (-), and underscores (_)**: rename the server. - **Invalid URL format**: paste the whole address, including the scheme. - The model does not use the server's tools: check the server appears under **MCP servers list**, and that any list in **Allowed tool names (optional)** includes the tool you expect. --- --- title: Generate an image or a video type: how-to section: ai-studio summary: Turn on Image in a thread to get pictures instead of text, or open Media in the sidebar to generate images and videos with size and quality controls. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/app/[lng]/studio/(pages)/media/page.tsx - evolve-front-end/app/[lng]/studio/(pages)/video/** - evolve-front-end/app/[lng]/(fullscreen)/studio/(pages)/media/** - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/start-a-conversation, ai-studio/attach-files-to-a-message] --- Turn on **Image** next to the message box to get pictures instead of text in a thread. For size, quality and video, open **Media** in the AI Studio sidebar. ## Images inside a thread 1. Select **Image** next to the message box. Its description reads **Generate images instead of text replies**. 2. Describe the picture you want and send the message. 3. Turn **Image** off to go back to text replies. Turning **Image** on switches the thread to an image model and back again when you turn it off. The setting belongs to the thread you are in and starts off in a new one. Attachments and image generation do not mix. Sending with both gives **Remove attachments before sending an image generation request.** ## Images and videos on the Media page Select **Media** in the sidebar. The page is headed **Bring an idea to life** and has one control, **Media mode**, with **Image** and **Video**. Image is the mode it opens on. In **Image** mode: 1. Type your description into **Describe the image you want to generate**. 2. Choose a **Model**, a **Quality** of **Auto**, **High**, **Medium** or **Low**, and an **Aspect ratio** of **1:1**, **3:2** or **2:3**. 3. Select the submit button. In **Video** mode: 1. Type your description into **Describe the video you want to generate**. 2. Optionally select **Add photo** to start from a picture, from your camera, from a URL, or from your files. The picture must be 10 MB or smaller. 3. Choose a **Model**, a **Duration**, a **Resolution** of **720p** or **1080p**, and an **Aspect ratio** of **16:9** or **9:16**. 4. Select the submit button. Video generation runs on servers outside Evolve. The page states where: **Video generation runs on xAI or Google servers in the United States.** ## Recents Finished pictures and videos appear under **Recents** below the composer. Open one to see it full screen, where you can **Download** it, **Delete** it, or **Reuse** the prompt. **Recents** is held in your browser for the current session only. Download anything you want to keep. It is not a permanent library, and it does not show images you generated inside a thread. ## If it did not work - **Image mode is temporarily unavailable. Please try again later.**: no image model is available to your Account right now. - A tile reads **Image generation failed** or **Video generation failed**: open it and select **Rerun**. - **Image must be 10 MB or smaller.**: use a smaller starting picture. - A picture from an earlier session is gone from **Recents**: it is kept for the browser session only. --- --- title: Use your voice in a thread type: how-to section: ai-studio summary: "The Voice button next to the message box holds two modes: Live Chat, a spoken back-and-forth, and Dictate, which types what you say into the box." applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/voice/** - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/transcribe-an-audio-file, ai-studio/start-a-conversation] --- Select the arrow beside **Voice** next to the message box and choose **Live Chat** to speak with the model, or **Dictate** to type what you say into the message box. Your browser asks for the microphone the first time. Both modes need it. ## Speak with the model 1. Select the arrow beside **Voice**, then **Live Chat**. 2. Wait for **Voice is live**. Then speak. 3. Speaking while the model is talking interrupts it. 4. To finish, select the arrow and choose **Stop Live Chat**. The exchange is saved as a thread titled **Voice conversation**. If the live connection cannot be made, AI Studio falls back to **Transcript-only mode**: record a segment, then confirm it to put the text into the message box without spoken replies. ## Dictate into the message box 1. Select the arrow beside **Voice**, then **Dictate**. 2. Speak. Select **Stop Dictation** when you are done. 3. The text lands in the message box. Read it, correct it, then send. ## While voice is active The **Tools** button next to the message box is unavailable while a voice session is starting or stopping. Wait for it to settle. ## If it did not work - **Microphone blocked**: allow the microphone for this site in your browser's settings, then reload the page. - **Voice unavailable in this browser**: use a current desktop browser. Voice needs audio interfaces some browsers do not provide. - **Realtime voice is unavailable. Transcript-only mode is active.**: record segments and confirm each one, or type instead. - **No speech was detected in the recorded segment.**: check the right microphone is selected in your browser and speak closer to it. --- --- title: Transcribe an audio file type: how-to section: ai-studio summary: Choose Transcribe audio from the plus button next to the message box, pick a recording, review the transcript, then insert it into the thread. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/audio-transcription-file.ts - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/use-your-voice, ai-studio/attach-files-to-a-message] --- Select the plus button next to the message box, choose **Transcribe audio**, pick one recording, then select **Transcribe**. Review the text and select **Insert into chat** to put it in the message box. The window states what happens to the file: **The recording stays transient. Only the selected audio and options are sent for this transcription.** ## Transcribe a recording 1. Select the plus button next to the message box, then **Transcribe audio**. 2. Select **Choose audio to transcribe** and pick one file. MP3, MP4, MPEG, MPGA, M4A, WAV, WebM, OGG and FLAC are accepted, up to **25 MiB maximum**. 3. Choose a **Transcription model**: **Best**, **Fast & economical**, **Speaker labels** if you need who said what, or **Captions, timestamps & translation**. 4. Select **Transcribe**. The status moves through **Reading audio file…** and **Transcribing…** to **Transcript ready. Review it before inserting.** 5. Correct the text under **Editable transcript**. 6. Select **Insert into chat**. Transcribe one file at a time. Choosing several gives **Transcribe one audio file at a time.** ## Captions and translation Choosing **Captions, timestamps & translation** adds a **Whisper task** control: - **Transcript** — plain text in the recording's own language. - **SRT captions** and **VTT captions** — subtitle text with timing. - **Timestamps** — a transcript with segment times. - **Translate to English** — English text from speech in another language. ## Help the model get names right Open **Advanced options** and fill in what applies: - **Languages, comma separated** for the languages spoken. - **Keywords, comma separated** for terms it should spell correctly. - **Names or context** for people, acronyms or specialist words. ## If it did not work - **Choose an MP3, MP4, MPEG, MPGA, M4A, WAV, WebM, OGG, or FLAC audio file.**: convert the recording to one of those formats. - **Audio files must be 25 MiB or smaller.**: split the recording or export it at a lower bitrate. - **No speech was detected. Try another file or model.**: check the file plays, then try another **Transcription model**. - **The audio could not be transcribed.**: select **Retry**. --- --- title: Find a thread you had before type: how-to section: ai-studio summary: Recent threads are listed by date in the left sidebar. For older ones, open All threads and search, filter or sort the full list. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/components/ConversationsList.tsx - evolve-front-end/app/[lng]/studio/utils/date-groupings.ts - evolve-front-end/app/[lng]/studio/(pages)/threads/page.tsx - evolve-front-end/app/[lng]/studio/components/Results_Table/** - evolve-front-end/app/[lng]/studio/components/chats/chats-tabs.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/rename-or-delete-a-thread, ai-studio/export-a-thread, ai-studio/follow-an-agent-run] --- Recent threads are in the left sidebar, grouped by date. For anything older, select **All threads** at the bottom of that list to open the full **Threads** page, then search or filter. ## The sidebar list Threads are grouped under **Today**, **Yesterday**, **This Week**, **This Month**, then by month. Newest first inside each group. A spinner on a row means that thread is still running. Select a row to open the thread. When the list is empty it reads **No threads yet**. The sidebar has no search. Use the **Threads** page for that. ## The Threads page Select **Threads** in the AI Studio sidebar, or **All threads** at the foot of the sidebar list. Two tabs split the page: - **Primary** — threads you started yourself. - **Agents** — threads created by agent runs. The table shows **Title**, **Last message**, **Status** and **Model**. ## Narrow the list - **Search** matches on the title, status and model of the threads on the page. When a search is active, **Search all of Evolve** appears for a wider search. - **Status** filters to **Complete**, **In progress**, **In Queue**, **Failed** or **Retrying**. - **Model** filters to one model. - **Sort by** offers **Last message**, **Newest**, **Oldest**, **Title A-Z** and **Title Z-A**. On a narrow screen the same controls sit behind one filter button under **All filters**. ## If it did not work - **No records found.**: clear **Search**, then set **Status** and **Model** back to **All**. - A thread you remember is not listed: check the **Agents** tab, and check you are in the Account you were using at the time. - The list is stale: select the refresh button in the toolbar. - **Failed to load conversations**: select **Retry** in the sidebar list. --- --- title: Move around a long thread type: how-to section: ai-studio summary: From eight messages on, a conversation map appears at the right edge. Open it to jump to any message, and collapse your own prompts to see replies only. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/ConversationNavigator.tsx - evolve-front-end/app/[lng]/studio/components/Chat/Chat.tsx - evolve-front-end/app/[lng]/studio/components/ChatEllipsisDropdown.tsx - evolve-front-end/app/[lng]/studio/components/Full Conversation/** - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/find-a-past-thread, ai-studio/fork-a-thread, ai-studio/export-a-thread] --- Hover the dots at the right edge of a long thread to open the **Conversation map**, then select an entry to jump to that message. The map appears once a thread has eight or more messages, and on wide screens only. ## Use the map 1. Move the pointer to the dot rail at the right edge, or focus the control labelled **Open conversation map**. 2. The panel lists one entry per message, marked **You** or **Assistant**, with the first line of the message. 3. Select an entry. The thread scrolls to that message and highlights it. ## Hide your own prompts Open the thread's **More options** menu and select **Collapse prompts** to leave only the replies on screen. The same item then reads **Show prompts**. The map follows: with prompts hidden it lists replies only. ## Read a finished thread end to end Opening a thread from the **Threads** page gives a read-only view with a sticky header. It carries the same **Show prompts** and **Hide prompts** control, and a **Back** button to the list. To carry on writing in that thread, select **Continue**. ## If it did not work - No dots at the right edge: the thread has fewer than eight messages, or the window is too narrow. - The map lists fewer entries than you expect: prompts are collapsed. Select **Show prompts**. - Selecting an entry moves to the wrong place: reload the page so the message list re-measures. - The read-only view will not accept a message: you are not the author of that thread. Use **Fork**. See [Fork a thread](/help/ai-studio/fork-a-thread). --- --- title: Fork a thread type: how-to section: ai-studio summary: Select Fork on any message to start a new thread that holds the conversation up to that point, leaving the original untouched. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Full Conversation/ForkBtn.tsx - evolve-front-end/app/[lng]/studio/components/Full Conversation/MessageBubble.tsx - evolve-front-end/app/[lng]/studio/components/Full Conversation/StreamButton.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/move-around-a-long-thread, ai-studio/start-a-conversation, ai-studio/export-a-thread] --- Select **Fork** on a message to start a new thread containing every message up to and including that one. The original thread is untouched. Use it to try a different line of questioning without losing what you already have, or to carry on from someone else's thread that you cannot write in. ## Fork from a message 1. Open the thread from the **Threads** page. 2. Hover the message you want to branch from. 3. Select **Fork**. AI Studio makes a new thread named after the original with `- Fork` appended, and opens it. Send your next message there. The new thread stands on its own. Nothing you do in it changes the original, and the original shows no sign that it was forked. ## Threads you did not write Opening someone else's thread gives a read-only view. The page explains it: you can fork from any message and continue in your own copy. Use **Fork**, then **Continue** in the new thread. ## If it did not work - **Fork** is not on the message: open the thread from the **Threads** page rather than from the sidebar list. - The fork stops short of where you wanted: fork from the later message. A fork keeps everything up to the message you chose, and nothing after it. - The fork has no attachments: attachments are not carried into a forked thread. Attach them again. See [Attach files to a message](/help/ai-studio/attach-files-to-a-message). - You cannot type in a thread and there is no **Continue** button: you are not its author. Fork it. --- --- title: Rename or delete a thread type: how-to section: ai-studio summary: Use the More options menu at the top of a thread to rename it or delete it, or delete several at once from the Threads page. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/(pages)/(new-prompt)/th/** - evolve-front-end/app/[lng]/studio/components/ChatEllipsisDropdown.tsx - evolve-front-end/app/[lng]/studio/components/Results_Table/ChatActionsMenu.tsx - evolve-front-end/app/[lng]/studio/components/Results_Table/Table.tsx - evolve-front-end/app/[lng]/studio/components/Full Conversation/Header.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/find-a-past-thread, ai-studio/export-a-thread, ai-studio/fork-a-thread] --- Open the **More options** menu at the top of the thread and choose **Rename** or **Delete**. AI Studio names a thread from your first message. Rename it when that name stops describing what the thread became. ## Rename 1. Open the thread. 2. Select **More options** at the top of the page. 3. Select **Rename**, type the new name, and confirm. In the read-only view opened from the **Threads** page, select the title itself to edit it, then save with the tick. ## Delete one thread 1. Open the thread, or find its row on the **Threads** page. 2. Select **More options** at the top of the thread, or the row menu on the **Threads** page. 3. Select **Delete** and confirm. A confirmation reads **Conversation deleted successfully**. Deleting cannot be undone. Export anything you need first: see [Export a thread](/help/ai-studio/export-a-thread). ## Delete several at once 1. Open the **Threads** page. 2. Tick the threads you want to remove. 3. Select **Delete** in the toolbar that appears, then confirm. ## If it did not work - **Rename** is missing: you are not the author of the thread. Only the author can rename or delete it. - **Failed to delete**: reload the page and try once more. - A deleted thread is still in the sidebar: reload the page. - You deleted the wrong thread: it cannot be recovered from AI Studio. Contact Support. --- --- title: Export a thread type: how-to section: ai-studio summary: Export a thread as a Word document or a text file, copy it to the clipboard, or copy a link to it, from the More options menu. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Results_Table/Export.tsx - evolve-front-end/app/[lng]/studio/components/Results_Table/ChatActionsMenu.tsx - evolve-front-end/app/[lng]/studio/components/ChatEllipsisDropdown.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ChatMessage.tsx - evolve-front-end/lib/ai-studio/routes.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/rename-or-delete-a-thread, ai-studio/find-a-past-thread, ai-studio/move-around-a-long-thread] --- Open the **More options** menu at the top of the thread, select **Export**, choose **Conversation** or **Replies**, then choose **Word Document (.docx)** or **Text File (.txt)**. The same menu is on every row of the **Threads** page. ## What each option contains - **Conversation** — every message, with **You** above your own and the model's name above each reply. - **Replies** — the model's replies only, with no headers. Both start with a citation line naming the University of Nicosia, the date, and the model that produced the replies. Choose **Word Document (.docx)** to keep pictures in the file; **Text File (.txt)** leaves them out. ## Copy instead of downloading Select **Copy to clipboard** in the same menu, then **Conversation** or **Replies**. Paste it wherever you need it. To cite one reply on its own, open **Message actions** on that reply and select **Copy Citation**. ## Send someone a link Select **Copy link**. The link opens the thread's read-only view. Whoever opens it needs access to AI Studio in the same Account; they can read the thread and fork it, but not write in it. ## Export several threads at once 1. Open the **Threads** page. 2. Tick the threads you want. 3. Select **Export** in the toolbar, then a format. More than one thread is delivered as a single ZIP file. ## If it did not work - Nothing downloads: allow downloads from Evolve in your browser, then export again. - The menu shows **Copying...** and stops: reload the page and copy again. - The recipient of a link sees nothing: they need access to AI Studio in the same Account. - Pictures are missing from the export: use **Word Document (.docx)**. Text files carry no pictures. --- --- title: Run an agent type: how-to section: ai-studio summary: Open Agents in the AI Studio sidebar, pick an agent, describe the work, fill in the fields it asks for, and select Start a run. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/(pages)/agents/page.tsx - evolve-front-end/components/agents/hero-composer/** - evolve-front-end/components/agents/agent-executions-tab-fast-path.tsx - evolve-front-end/app/i18n/locales/en/dsl-agents.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/follow-an-agent-run, ai-studio/attach-a-repository, ai-studio/cost-and-usage] --- Select **Agents** in the AI Studio sidebar, choose an agent, describe the work under **Hand this off to an agent**, complete the fields the agent asks for, then select **Start a run**. An agent is a named automation your Account provides. Unlike a thread, it works on its own for as long as the job takes and reports back as a run. You cannot create an agent yourself; the list holds those made available to you. ## Start a run 1. Select **Agents** in the sidebar. 2. Choose an agent from the picker in the composer. 3. Describe the work in the box. Some agents replace the prompt with their own wording. 4. Set the fields shown along the composer. These change with the agent: a model, files, a number, a repository, a branch. 5. If the agent asks for more, select **More** and fill in the rest. Its tooltip reads **This agent has more required fields to run**. 6. Select **Start a run**. A confirmation reads **Agent started successfully** and the run appears under **Agent Executions**. ## Point an agent at a repository Where an agent takes a repository, type the owner and name, or the full GitHub address, into the repository field, then set the **Branch**. Agents that read code need this before they will start. ## Where the runs go A run does not appear in your thread list. It goes to **Agent Executions** on the same page, below the composer. See [Follow an agent run](/help/ai-studio/follow-an-agent-run). Some agents open a thread of their own as they work. Those appear under the **Agents** tab of the **Threads** page, not under **Primary**. ## If it did not work - **Agents** is not in the sidebar: agents are limited to administrators and developers in your Account. Ask your Account administrator. - **No agents are available.**: no agent has been made available to you yet. The page adds **Refresh after an administrator grants access to an agent.** - **Complete the highlighted field before you start.**: fill in the fields marked under **Input required:**, then start again. - **Select a repository before you start.**: set the repository field, then the branch. - **Unable to start this run.**: try again. If it repeats, note the agent's name and contact Support. --- --- title: Follow an agent run type: how-to section: ai-studio summary: Agent Executions on the Agents page lists every run. Open one to see its steps and outputs, stop it while it is going, or start it again. applies_to: clients: [web] sources: - evolve-front-end/components/agents/agent-executions-tab-fast-path.tsx - evolve-front-end/components/agents/agents-table.tsx - evolve-front-end/app/[lng]/(fullscreen)/studio/(pages)/agents/execution-details/** - evolve-front-end/app/[lng]/studio/components/agents/agent-execution/** - evolve-front-end/app/i18n/locales/en/dsl-agents.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/run-an-agent, ai-studio/cost-and-usage, ai-studio/find-a-past-thread] --- Open **Agents** in the AI Studio sidebar and read **Agent Executions**. Each row is one run. Select a row to open it. A count of runs still going appears above the table under **In progress**. Selecting it filters the table to those runs. ## What the states mean | State | What it means | | --- | --- | | **In progress** | The run is working now. | | **Completed** | The run finished. | | **Needs input** | The run is waiting for you to answer something. | | **Needs review** | The run stopped on a problem. Open it and read the steps. | | **Terminated** | The run was stopped. | | **Pending** | The run is accepted and waiting to start. | Narrow the table with **Agents**, **Status** and **Repository**, or with **Search**. Set how many rows you see with **Rows per page**. ## Inside a run Selecting a row opens the run full screen. - **Overview** carries the ticket it belongs to, the agent, when it started and last changed, and links to a **Final report** or a **Pull Request** where the agent produced one. - **Technical details** holds identifiers, token counts, cost and output links. - **Execution steps** lists what the agent did, with a state on each step and counts for total, running, completed and failed. - **Parameters** shows what the run was started with. - Files the agent produced appear as artifacts you can open or download. ## Stop a run 1. Open the run, or find its row. 2. Select **Stop run**. 3. Confirm. The message reads **Stopping will end this run and cancel any steps in progress.** Only a run that is **In progress** can be stopped. Selecting others gives **Only executions in progress can be stopped**. To stop several, select **Select**, tick the rows, then **Stop selected**. **Stop all** ends every run that is going. ## Start a run again Select **Rerun** on the row. The composer opens with the earlier run's settings filled in. Check them, change what you need, then start it. Where your access has changed since the first run, some settings are dropped and you fill them in again. ## If it did not work - **Executions could not be loaded. Try again.**: select **Try again**. - **No runs match your search or filters.**: clear **Search** and set the filters back to **All**. - A run sits on **Needs input**: open it and answer in the run's own controls. - A run stopped on **Needs review**: read **Execution steps** for the step that failed, then **Rerun**. --- --- title: Token limits in a thread type: reference section: ai-studio summary: Every thread has a token budget set by its model. The counter beside the message box shows how much is used, and the thread stops at the limit. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/MessageDetails.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/app/[lng]/studio/utils/constants.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/cost-and-usage, ai-studio/choose-a-model, ai-studio/response-cut-off] --- A token is roughly a short word or part of one. Every thread has a maximum number of tokens, set by the model it uses, covering everything already in the thread plus what you are about to send. ## The counter Beside the message box are two numbers: tokens used in this thread, and the maximum the model allows. A ring around them fills as the thread grows and turns red at the limit. Before the model catalogue loads it reads `-- / --`. Hovering it names both numbers. ## What counts towards the limit - Every message you have sent in this thread. - Every reply the model has produced in it. - The text of any persona you have applied, on every message. - The file listing and README of any repository attached to the thread, on every message. Because the whole thread is sent each time, the count grows faster the longer the thread runs. ## At the limit The thread stops accepting messages and shows: **You have exceeded the token usage limit for this conversation. Please shorten your prompt or start a new thread to continue.** The send button is unavailable until you start a new thread. Nothing is lost. The thread stays readable and exportable. ## Staying under it - Start a new thread for a new subject rather than continuing a long one. - Keep personas short. See [Create a persona](/help/ai-studio/create-a-persona). - Detach repositories you no longer need. See [Attach a repository to a thread](/help/ai-studio/attach-a-repository). - Choose a model with a larger budget. Limits differ by model, so the same thread can be near the limit on one and comfortable on another. ## A different message about a limit A message headed **Max token limit reached** with the text **You have reached the token limit included in your current plan** is about your plan, not the length of the thread. It appears when the model you chose is not covered by what pays for your requests. Choose another model, or see [What your requests cost](/help/ai-studio/cost-and-usage). ## Related - [Choose a model](/help/ai-studio/choose-a-model) — limits are set per model. - [What your requests cost](/help/ai-studio/cost-and-usage) — what you are charged and what can stop a request. - [A reply stopped before it finished](/help/ai-studio/response-cut-off) — a reply that ends early is a different problem. --- --- title: What your requests cost type: reference section: ai-studio summary: The Plans page in the AI Studio sidebar shows what pays for your requests, which limits can stop them, and a history of what you have used. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/(pages)/my-plans/** - evolve-front-end/app/[lng]/studio/components/Chat/MessageCostLine.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ChatMessage.tsx - evolve-front-end/app/i18n/locales/en/my-plans.json - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/token-limits, ai-studio/choose-a-model, ai-studio/model-unavailable] --- Select **Plans** in the AI Studio sidebar. The page **My plans** answers what is paying for your requests this period and which limits can stop you. ## What is paying The top of the page names the source your requests are drawn from and says so in a sentence, for example that your requests are covered by your organisation's plan, by your personal plan, or paid from a wallet. Where nothing applies, it says so and marks you **Can't run requests**. ## What can stop you The table **What can stop you** lists every limit that applies this period, with **Gate**, **Limit**, **Your spend** and **Remaining** on each row. Rows are grouped into where the money comes from and limits that apply on top of it. Two markers matter: - **Stopping you now** — this limit is why a request is being refused. - **Stops you first** — this is the limit you will reach soonest. A row can also read **Exhausted**, or give the date it resets. ## What you have used **Usage history** lists past requests with **Date**, **Model**, **Tokens**, **Cost** and **Paid by**. The tokens cell splits into what went in and what came back. A cost of **Pending** means the request has not settled yet; the figure appears once it has. The list covers this billing period and shows your most recent 500 requests. ## Cost of a single reply In a thread, a line under a reply gives its cost, its input and output tokens, and the model. It appears once billing for that reply has been recorded, and only for the author of the thread. Some replies carry a note instead: - **You were not charged for this response.** - **Billing is being confirmed.** - **Billing for this response needs review.** ## When a request is refused on cost - **Spending limit reached** with **This request was declined because the available AI budget for your account is used up.** - **You have no remaining usage balance. Please contact Evolve Support to top up your account.** - **This request is not included in your account's current plan. Please contact your administrator to review your subscription.** The page names who can lift each one. A personal monthly cap is raised by an administrator in your organisation, or waits for its reset date; an empty organisation wallet has to be topped up. ## Related - [Token limits in a thread](/help/ai-studio/token-limits) — the separate per-thread length limit. - [Choose a model](/help/ai-studio/choose-a-model) — models differ in price as well as ability. - [No models are available for your account](/help/ai-studio/model-unavailable) — when nothing can be run at all. --- --- title: GitHub link cards in a thread type: reference section: ai-studio summary: A GitHub repository, issue or pull request link in a message renders as a card with its state and counts. Other GitHub links stay plain text. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/github-link-cards.tsx - evolve-front-end/app/[lng]/studio/utils/github-link-cards.ts - evolve-front-end/app/api/studio/links/resolve/route.ts - evolve-front-end/components/team-chat/cards/providers/github-card.tsx - evolve-front-end/components/team-chat/cards/providers/github-connected-card.tsx - evolve-front-end/app/i18n/locales/en/team-chat.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/attach-a-repository, ai-studio/start-a-conversation] --- A GitHub link to a repository, an issue or a pull request renders under the message as a card showing its title, state and headline numbers. Every other GitHub address, and every non-GitHub address, stays a plain link. Cards are resolved for you alone, through your own GitHub connection. Two people reading the same message can see different cards, and someone without a connection sees none of the detail. ## What a card shows The source line reads **GitHub**, then the kind: **Repository**, **Issue** or **Pull request**, then the state: **Open**, **Closed**, **Merged** or **Draft**. Below the title come the owner and repository name and the number, then the author, when it was last updated, and for a pull request the branch it comes from and the branch it targets. Counts appear as chips: stars, forks, comments, commits, files changed, lines added and lines removed. The whole card is a link. Selecting it opens the item on GitHub in a new tab. ## Which links do not get a card Workflow run, commit, file and release addresses on GitHub are left as plain links in AI Studio. So is every address outside GitHub. Up to five links in one message get cards. Two spellings of the same item produce one card. A reply that is still streaming gets its cards once it finishes. ## Cards that ask for something | Card | What it means | What to do | | --- | --- | --- | | **Connect GitHub to preview this** | You have no GitHub account connected. | Select **Connect account** and connect one in your profile. | | **GitHub App installation needed** | The connection exists but is not installed where the item lives. | Select **Reconnect**. | | **Access restricted** | Your connection cannot read this item. The card deliberately shows no owner, repository or title. | Select **Request access**, or ask the repository's owner. | | **Preview unavailable** | The lookup failed. | Select **Retry**. | A failed lookup is not remembered, so reopening the thread tries again. ## Related - [Attach a repository to a thread](/help/ai-studio/attach-a-repository) — give the model a repository to read, rather than a link. - [Start a conversation in AI Studio](/help/ai-studio/start-a-conversation) — where links are pasted. --- --- title: A reply stopped before it finished type: troubleshooting section: ai-studio summary: A reply that ends early carries a note saying who ended it. The note tells you whether to send again, lower the reasoning level, or change model. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/AssistantTerminalNotice.tsx - evolve-front-end/app/[lng]/studio/components/Chat/lower-effort-retry.ts - evolve-front-end/app/[lng]/studio/components/Stream/studio-stream-reducer.ts - evolve-front-end/app/[lng]/studio/components/Chat/RawSseSections.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/token-limits, ai-studio/choose-a-model, ai-studio/cost-and-usage] --- A reply that ends early carries a note under it. For the author of the thread the note names what ended the reply; anyone else reading the thread sees only the generic wording. Read the note first: it decides what to do next. ## The AI provider ended this response early. The text above may be incomplete. The model stopped on its own, most often because the answer ran past the length the provider allows in one response. 1. Send a follow-up asking it to continue from where it stopped. 2. Ask for a shorter answer, or break the question into parts. 3. Where the reply used a high reasoning level, select **Retry with lower reasoning** below the note. It appears when a lower level is available on that model. ## The AI provider ended the response before returning any text. The model produced nothing at all. Send the message again. If it repeats, change model: see [Choose a model](/help/ai-studio/choose-a-model). ## AI Studio could not complete this response. The failure was on the Evolve side, not the model's. Send the message again. If it repeats, note the reference shown under the message and contact Support with it. ## A tool could not complete this response. A tool the model called did not return. Where you have added an MCP server to the thread, check it is reachable and that the tool you expect is allowed: see [Connect an MCP server](/help/ai-studio/connect-an-mcp-server). Then send the message again. ## You stopped this response. You selected the stop button. The partial text is kept. Send the message again to start over. ## The response ended unexpectedly. Either the cause was not recorded, or you are reading a thread you did not write; a reader who is not the author sees this in place of the detail. Open your own thread to see the full note, or send the message again. ## Was I charged for it? The author of the thread sees a billing line under the note: whether the incomplete reply was charged, is still being confirmed, or needs review. See [What your requests cost](/help/ai-studio/cost-and-usage). ## Related - [Token limits in a thread](/help/ai-studio/token-limits) — the separate limit that stops a thread accepting new messages. - [Choose a model](/help/ai-studio/choose-a-model) — a message that fails on two different models needs to be shorter, or a different model. - [What your requests cost](/help/ai-studio/cost-and-usage) — whether an incomplete reply was charged. - If nothing above matches, copy the reference shown under the note and contact Support with it. --- --- title: No models are available for your account type: troubleshooting section: ai-studio summary: When AI Studio offers no model, or refuses the one you chose, the cause is your Account's model policy, your plan, or the model's own limits. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/app/[lng]/studio/components/ModelSelectorV2.tsx - evolve-front-end/app/[lng]/studio/context/StreamContext.tsx - evolve-front-end/app/[lng]/studio/components/Stream/Conversation.tsx - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/choose-a-model, ai-studio/cost-and-usage, ai-studio/response-cut-off] --- **No models are available for your account** under the message box means your Account allows you no model at all. Nothing can be sent until that changes. Ask your Account administrator to grant you model access. Reload the page first: the message also appears while the model list is empty after a failed load. ## Select model, and the picker is empty Same cause. The model list arrived empty. Reload the page, and if it persists, ask your Account administrator which models your role is allowed. ## The model I want is not in the picker Models are listed per Account. A model missing from every group is not allowed to you, whatever anyone else can see. Ask your Account administrator. Models also come and go as providers retire them. A model you used last month may no longer exist. ## Max token limit reached Where this appears with **You have reached the token limit included in your current plan**, the model you chose has no price recorded against what pays for your requests. Choose a different model, or see [What your requests cost](/help/ai-studio/cost-and-usage). This message is not about the length of the thread. For that, see [Token limits in a thread](/help/ai-studio/token-limits). ## This request is not included in your account's current plan. Your plan does not cover this request. The message asks you to contact your administrator to review the subscription. ## You have no remaining usage balance. The balance that pays for your requests is used up. The message asks you to contact Evolve Support to top up the account. **Plans** in the sidebar shows which limit is stopping you. ## Image mode is temporarily unavailable. Please try again later. No image model is available to your Account. Turn **Image** off to carry on with text replies. See [Generate an image or a video](/help/ai-studio/generate-images-and-videos). ## Related - [Choose a model](/help/ai-studio/choose-a-model) — how the picker is grouped and how your default is kept. - [A reply stopped before it finished](/help/ai-studio/response-cut-off) — when the model does accept the message but the reply ends part way. - [What your requests cost](/help/ai-studio/cost-and-usage) — which limit is refusing the request. - Models are granted per Account, so the list changes when you switch Account. Check which one you are in. --- --- title: A file was not uploaded type: troubleshooting section: ai-studio summary: AI Studio refuses a file when it is too large, when the model cannot read that type, or when the upload itself failed. Each case names itself. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/studio/components/Chat/ChatInput.tsx - evolve-front-end/app/[lng]/studio/components/Chat/ImportFiles.tsx - evolve-front-end/app/[lng]/studio/components/Chat/audio-transcription-file.ts - evolve-front-end/app/[lng]/studio/utils/model-file-support.ts - evolve-front-end/app/i18n/locales/en/powerflow.json verified: at: 2026-09-04 env: code by: content-lane-ai-studio ttl_days: 45 related: [ai-studio/attach-files-to-a-message, ai-studio/choose-a-model, ai-studio/transcribe-an-audio-file] --- Read the message. AI Studio names which file it refused and why, and the fix differs by cause. ## Following could not be uploaded: The file is over the size limit for its kind. The message gives the file's size and the limit it passed. | Kind | Largest accepted | | --- | --- | | Image | 20 MB | | Video | 1000 MB | | Document | 100 MB | Export the file smaller, split it, or put it in Drive and share the link in your message instead. ## Unsupported file type(s): The model you are on does not read that kind of file. The rest of the message names what it does read, or says file uploads are not supported for this model at all. 1. Change to a model that reads the type you need. See [Choose a model](/help/ai-studio/choose-a-model). 2. Attach the file again. The picker offers different types on different models. ## This model doesn't support images Same cause, stated for a picture. Change model, then attach again. The video form of the message reads **This model doesn't support videos**. ## Some files failed to upload The upload itself failed rather than being refused. Remove the chip and attach the file again. Where the message names a permission problem, you do not have access to that file in Drive; ask its owner. ## Please wait until all files are uploaded. Nothing was refused. One or more attachments are still uploading. Wait for every chip to settle, then send. ## Your attachments could not be sent. Please re-attach them and try again. The attachments were lost between uploading and sending. Remove the chips, attach the files again, and send. ## Remove attachments before sending an image generation request. **Image** is on, and that mode takes no attachments. Turn **Image** off to send with files, or remove the files to generate a picture. See [Generate an image or a video](/help/ai-studio/generate-images-and-videos). ## Audio files must be 25 MiB or smaller. You are in **Transcribe audio**, which has its own smaller limit and its own list of formats. See [Transcribe an audio file](/help/ai-studio/transcribe-an-audio-file). ## Related - [Attach files to a message](/help/ai-studio/attach-files-to-a-message) — the four ways to attach and the size limits. - [Choose a model](/help/ai-studio/choose-a-model) — file types are decided by the model you are on. - If every file is refused whatever its type, reload the page so the model's file support loads again, then attach. - If the file uploaded but the model seems to ignore it, check the chip is still above the message box when you send. --- --- title: Sign in to Evolve type: how-to section: system summary: Enter your email address and password at /signin, then complete the six-digit code step if two-factor authentication is on. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/signin/page.tsx - evolve-front-end/app/[lng]/signin/sub-components/modal.tsx - evolve-front-end/app/i18n/locales/en/login.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/reset-a-forgotten-password, system/sign-in-with-a-passkey, system/two-factor-authentication] --- Go to the sign-in page, type your email address and password, and select **Sign in**. The page is headed **Sign in to Evolve**. It has two fields and no other credential entry: there is no single sign-on button, no social provider, and no option to stay signed in. ## Sign in with your email address and password 1. Open `/en/signin`. 2. In **Email address**, type the address your Account was created with. 3. In **Password**, type your password. 4. Select **Sign in**. 5. If two-factor authentication is on for your Account, a **Multi-factor Authentication** dialog opens. Type the six-digit code from your authenticator app and select **Verify**. You land on the page you were trying to reach, or on your AI Studio thread if you came to the sign-in page directly. ## If you were invited An invitation link carries a token, and the sign-in page shows the banner **Sign in to accept your invitation.** After you sign in, a dialog asks **Accept invitation?**. Select **Accept invitation** to add the Account now, or **Not now** to decide later from the same link. ## If it did not work - **We couldn’t sign you in.** means the email address or the password did not match. Retype both, then use [Reset a forgotten password](/help/system/reset-a-forgotten-password) if it fails again. - **Some existing accounts need to reset their password once before signing in to the updated platform.** appears under that error. Select **Reset password** and set a new one. - **Too many sign-in attempts. Try again later or reset your password.** means the attempt limit was reached. Wait, then try again or reset the password. - **Your account isn't ready for Evolve access. Ask your organisation admin for an invite or contact support.** means no Account membership exists yet for that address. See [Help and support](/help/system/help-and-support). --- --- title: Sign out type: how-to section: system summary: Open the avatar menu at the top right and select Sign out; Evolve clears the session in this browser and returns you to the sign-in page. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/components/UserAvatar.tsx - evolve-front-end/app/[lng]/hooks/logout.ts - evolve-front-end/app/i18n/locales/en/user-avatar.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/active-sessions, system/sign-in] --- Select your avatar at the top right, then select **Sign out** at the bottom of the menu. Signing out clears the access and refresh tokens and the stored application state for this browser, then sends you to `/en/signin`. Your theme, language, sidebar and view preferences are kept so the interface looks the same when you sign in again. ## Sign out 1. Select your avatar in the top right corner. 2. Select **Sign out**. ## Sign out of one other device **Sign out** only ends the session in the browser you are using. To end a session somewhere else, use the **Active Sessions** table described in [Review active sessions](/help/system/active-sessions). ## If it did not work - If the page still shows your name, reload it. The sign-out redirect is a full page load and a blocked navigation can leave the old view on screen. - If you were signed out without selecting anything, you saw the **You've been signed out** page. That is the session expiring, not an error. - If a shared computer still shows your Account, open **Active Sessions** from another device and select **Revoke** on that row. --- --- title: Reset a forgotten password type: how-to section: system summary: Request a code from the sign-in page, then enter the six-digit code from the email together with your new password. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/forgot-password/page.tsx - evolve-front-end/components/auth/forgot-password/forgot-password-flow.tsx - evolve-front-end/app/i18n/locales/en/forgot-password.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/change-your-password, system/sign-in] --- Select **Forgot password?** on the sign-in page, enter your email address, then use the six-digit code from the email to set a new password. Evolve does not send a reset link. ## Reset the password 1. On the sign-in page select **Forgot password?**, or open `/en/forgot-password`. 2. Under **Reset password**, type your address in **Email address** and select **Send email**. 3. The page moves to **Check your email**. Open the message and copy the six-digit code. 4. Type the code in **Verification code**. 5. Type the new password in **Password** and again in **Confirm password**. A checklist above the button marks each requirement as it is met. 6. Select **Reset password**. 7. On the **Success** panel select **Back to sign in** and sign in with the new password. ## The password requirements - **Use 14 characters and more** - **Mix uppercase and lowercase letters** - **1 number (0-9)** - **1 special character (-@#\S%^&*_-+=,.?/)** - The password must contain no spaces, and the two entries must match. The confirmation message is deliberately the same whether or not an Account exists for the address: **If an account exists for this email, we'll send password reset instructions.** ## If it did not work - **The verification code is invalid or has expired. Request a new code and try again.** means the code is stale or mistyped. Select **Resend now** and use the newest message. - **Reset password** stays unavailable until the code is exactly six characters, every requirement in the checklist is met, and both passwords match. - An old reset link of the form `/en/forgot-password/` now shows the panel `Start password reset again` and sends you back to the code flow. Request a new code. - No email after a few minutes: check the spam folder, then select **Resend now**. --- --- title: Change your password type: how-to section: system summary: Open Sign In & Security and use the password panel there; Evolve emails a six-digit code, and you set the new password with that code. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/account-page/security/page.tsx - evolve-front-end/components/auth/forgot-password/forgot-password-flow.tsx - evolve-front-end/app/i18n/locales/en/security-page.json - evolve-front-end/app/i18n/locales/en/forgot-password.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/reset-a-forgotten-password, system/two-factor-authentication, system/active-sessions] --- Open **Sign In & Security** and use the panel in the **Password** row. It emails you a six-digit code, and you enter that code together with the new password. There is no form that takes your current password. ## Change the password 1. Select your avatar, then **Settings**. 2. In the sidebar select **Sign In & Security**. 3. Under the heading **Sign In**, find the **Password** row. Your address is already filled in under **Email address**. 4. Select **Send email**. 5. Open the message and copy the six-digit code. 6. Type it in **Verification code**, then type the new password in **Password** and **Confirm password**. The requirements are the same as a reset: 14 characters or more, upper and lower case, one number, one special character, no spaces. 7. Select **Reset password**. The same panel is at `/en/account-page/security`. ## What the page also shows The **Sign In** section lists your **Email** above the password panel. Below it are **Multi Factor Authentication**, **Passkeys** and **Active Sessions**. ## If it did not work - If **Send email** does nothing, check the **Email** row above it. When it reads **Unavailable** the page could not load your details; reload and try again. - The code expires. If you see **The verification code is invalid or has expired. Request a new code and try again.**, select **Resend now**. - Changing the password does not end your other sessions. Revoke them from [Active Sessions](/help/system/active-sessions) if you want them gone. --- --- title: Sign in with a passkey type: how-to section: system summary: Add a passkey from Sign In & Security, then select Use a passkey on the sign-in page instead of typing a password. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/account-page/security/forms/Passkeys.tsx - evolve-front-end/app/[lng]/signin/page.tsx - evolve-front-end/app/i18n/locales/en/authentication.json - evolve-front-end/app/i18n/locales/en/login.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/sign-in, system/two-factor-authentication, system/change-your-password] --- Add a passkey once from **Sign In & Security**, then sign in with **Use a passkey** and your device's fingerprint, face or security key. ## Add a passkey 1. Select your avatar, then **Settings**, then **Sign In & Security**. 2. Find the **Passkeys** section. When no passkey exists it reads **Set up a passkey to sign in with biometrics or a security key.** 3. Select **Add passkey**. 4. Follow your browser's prompt. The button reads **Adding passkey...** while it waits. Each registered passkey is listed with the date it was added, for example **Added 4 September 2026 via platform.** Select **Remove** on a row to delete that passkey. ## Sign in with it 1. Open `/en/signin`. 2. Select **Use a passkey**. The button reads **Waiting for passkey...** while your browser prompts you. 3. Approve the prompt on your device. You do not need to type your email address first. ## If it did not work - **Passkeys are unavailable for this account.** means passkeys are not offered for your Account. Use your password. - **Passkey sign-in is unavailable. Try your password instead.** on the sign-in page means the browser refused or cancelled the prompt. Sign in with your password and try adding the passkey again. - **Unable to add a passkey.** means registration failed. Check that the browser and device support passkeys, then retry. - The **Passkeys** section is hidden entirely when your Account does not support passkeys and none are registered. --- --- title: Turn two-factor authentication on or off type: how-to section: system summary: Under Multi Factor Authentication on the Sign In & Security page, select Set up to pair an authenticator app, or Disable to turn it off. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/account-page/security/forms/Authenication.tsx - evolve-front-end/app/[lng]/account-page/security/sub-components/modal.tsx - evolve-front-end/app/i18n/locales/en/authentication.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/sign-in, system/sign-in-with-a-passkey, system/change-your-password] --- Open **Sign In & Security**, find **Multi Factor Authentication**, and select **Set up** to pair an authenticator app or **Disable** to turn it off. An authenticator app is the only second factor Evolve offers. There is no SMS option and there are no recovery codes, so keep access to the app you pair. ## Turn it on 1. Select your avatar, then **Settings**, then **Sign In & Security**. 2. Under **Multi Factor Authentication**, the **Authenticator App** row reads **Set up your account to receive auth code via a mobile application.** 3. Select **Set up**. The dialog **Enable two-factor Authenticator** opens. 4. Scan the QR code with your authenticator app. If the app cannot read it, use the key printed under **If your app does not recognize the QR code, type the following key:**. 5. Type the six-digit code from the app in **Type the 6-digit code here**. 6. Select **Continue**. The row then reads **Authenticator app is enabled for this account.** From the next sign-in, Evolve asks for a code in the **Multi-factor Authentication** dialog after your password. ## Turn it off 1. Go back to **Multi Factor Authentication** on the same page. 2. Select **Disable**. There is no confirmation step. The row returns to **Set up**. ## When you cannot change it The row shows a badge instead of a button in three cases: - **Required** — your Account requires an authenticator app, and the status line reads **Authenticator app setup is required before you can continue.** - **Enabled** with the line **Authenticator app is enabled and required for this account.** — it is on and you may not turn it off. - **Unavailable** with the line **Authenticator app is unavailable for this account.** — the method is not offered for your Account. ## If it did not work - **Invalid code** in the dialog means the code was wrong or had already rotated. Wait for the app to show a new code and retype it. - **Continue** stays unavailable until the code is exactly six digits. - **Unable to start two-factor setup.** means the setup request failed. Reload the page and select **Set up** again. - **Unable to disable two-factor authentication.** means the change was rejected. Check whether the row now reads **Authenticator app is enabled and required for this account.**, which means your Account does not allow it to be turned off. --- --- title: Review active sessions and sign out a device type: how-to section: system summary: The Active Sessions table on Sign In & Security lists every signed-in session; select Revoke to end one, or Log out to end the one you are using. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/account-page/security/forms/devices.tsx - evolve-front-end/app/[lng]/account-page/security/page.tsx - evolve-front-end/app/api/auth/account-security/sessions/route.ts - evolve-front-end/app/i18n/locales/en/devices.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/sign-out, system/change-your-password, system/two-factor-authentication] --- Open **Sign In & Security** and scroll to **Active Sessions**. Each row is one signed-in session. Select **Revoke** to end another one, or **Log out** on the row marked **This device**. ## Check your sessions 1. Select your avatar, then **Settings**, then **Sign In & Security**. 2. Scroll to **Active Sessions**. The table has five columns: | Column | What it shows | | --- | --- | | **Created** | When the session started. The row for the browser you are using also carries a **This device** badge. | | **IP Address** | The address the session signed in from. | | **Approx. location** | A place derived from that address. | | **User Email** | The address the session is signed in as. | | **Actions** | **Revoke** on other sessions, **Log out** on **This device**. | A column reads **Unavailable** when the value is not recorded. The list belongs to your sign-in rather than to one Account. Switching Account does not change what appears here. ## End a session 1. Find the row you do not recognise. 2. Select **Revoke**. The row disappears and the page confirms **Session revoked.** The session you are using has **Log out** instead, which signs you out here and returns you to the sign-in page. ## If it did not work - **Unable to load active sessions.** means the list could not be fetched. Reload the page. - **Unable to revoke session.** means the request was rejected. Reload and try the row again. - **No active sessions were returned for this account.** with your own row still visible is expected when the register holds no entry for the current browser. - The **This device** row can show **Unavailable** for both the address and the location, with the note **This device is signed in, but the session register has no entry for it, so its IP address and approximate location are unavailable.** That row is built from your verified token alone; nothing is missing. --- --- title: Edit your profile type: how-to section: system summary: Open My profile from the avatar menu and edit your photo, display name and About in place; each field has its own Edit control and Save. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/profile/principal-profile-view.tsx - evolve-front-end/app/[lng]/profile/profile-photo-control.tsx - evolve-front-end/app/[lng]/profile/profile-display-name-field.tsx - evolve-front-end/app/[lng]/profile/profile-text-field.tsx - evolve-front-end/app/i18n/locales/en/profile.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/appearance-and-preferences, system/what-an-account-is, system/roles] --- Select your avatar, then **My profile**. Your photo, your name and your **About** text each have an edit control on the page itself, and each change is saved on its own. `/en/profile` is the page other people see about you. It carries a **You** chip when you are looking at your own, and there is one profile frame for people, desks and services. ## Change your photo 1. On **My profile**, select **Change photo** under the picture. 2. Choose a JPEG, PNG or WebP image of 10 MB or less. The dialog states **Maximum file size: 10 MB.** and the image is cropped to a square. 3. Select **Use this photo**. The page confirms **Profile photo updated.** To go back to your initials, select **Remove photo**. ## Change your name 1. Select **Edit name** next to your name. 2. Type the new name in **Display name**. 3. Select **Save**. Leaving the field empty is rejected with **Enter a name.** ## Change your About text 1. Select **Edit about** in the **About** section. 2. Type up to 2,000 characters. The counter under the box reads, for example, **120 of 2000 characters**. 3. Select **Save**, or **Cancel** to discard the draft. Before you write anything, the section shows **No description yet.** with the prompt **A few lines about your work and what people can ask you.** ## What else the page shows - Your handle, prefixed with `@`, when you have one. - **Account:** followed by the Account you are currently in. - Your email address, as a link. - **Pronouns** and **Links**, when they are set. - An **Organization** section for the fields your organisation holds, marked **Managed in People**. You do not edit these here. - An **Activity** column. It is present but empty: **Nothing to show yet. Posts and completed work appear here when you are allowed to see them where they were made.** A desk profile adds an **Overview** and **Details** tab. **Details** is titled **Owner details** and appears only to the desk's owner or manager, to an account administrator, or to someone holding an access grant; the page states which of the three applies. ## If it did not work - **The change could not be saved.** means the save was rejected. Select **Edit** again and retry; the field keeps its stored value until a save succeeds. - **Profile photos must be JPEG, PNG, or WebP images.** or **Profile photos must be 10 MB or smaller.** means the file was refused before upload. Convert or shrink it. - **This profile is only visible to members of the same account.** on someone else's profile means they are outside your Account. - **This profile link is not valid.** means the address after `?principal=` is not a valid identifier. Reach profiles by selecting a person, not by editing the URL. --- --- title: Change appearance, text size and language type: how-to section: system summary: Theme, motion, text size and language are set from the avatar menu; the Preferences page holds the dark mode switch. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/components/UserAvatar.tsx - evolve-front-end/app/[lng]/account-page/preferences/page.tsx - evolve-front-end/app/[lng]/account-page/preferences/components/Accessibility.tsx - evolve-front-end/app/i18n/locales/en/user-avatar.json - evolve-front-end/app/i18n/locales/en/preferences.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/edit-your-profile, system/notifications, system/launchpad] --- Open the avatar menu at the top right. **Appearance** sets the theme, **Accessibility** sets motion and text size, and **Language** sets the interface language. ## Switch between light and dark 1. Select your avatar. 2. Select **Appearance**. The item already shows the current setting, for example **Appearance: Dark**. 3. Select **Dark theme** or **Light theme**. The same switch is on the **Preferences** page, labelled **Dark mode**, at `/en/account-page/preferences`. ## Reduce motion or change text size 1. Select your avatar, then **Accessibility**. 2. Under **Motion**, choose **Use device setting** or **Reduce motion**. 3. Under **Text size**, choose a size. **Use device setting** follows the reduced-motion preference your operating system reports. ## Change the language 1. Select your avatar, then **Language**. The item shows the current language. 2. Type in **Search languages...** or pick from the list. Help pages are written in English whatever language the interface is set to. ## If it did not work - Theme, language and text size are stored per browser. A different browser or a private window starts from the defaults again. - Signing out keeps your theme, language and sidebar preferences; it clears everything else for that browser. - **No languages found** means nothing matches what you typed in the search box. Clear it and scroll the list. --- --- title: Notifications type: reference section: system summary: Notifications reach you through the bell in the navbar and, if you allow them, as browser alerts; the inbox is not switched on in every environment. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/notifications/page.tsx - evolve-front-end/app/[lng]/notifications/preferences/page.tsx - evolve-front-end/components/notifications/notifications-queue-page.tsx - evolve-front-end/components/notifications/notification-preferences-page.tsx - evolve-front-end/components/notifications/browser-notifications-menu-entry.tsx - evolve-front-end/lib/notifications/feature-flag.ts - evolve-front-end/app/i18n/locales/en/notifications.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/appearance-and-preferences, system/launchpad, system/help-and-support] --- Notifications collect what needs your attention across your apps. They reach you in two ways: the bell in the navbar, and browser alerts you switch on from the avatar menu. The notifications inbox at `/en/notifications` is switched on per environment and is not on everywhere. Where it is off, the address returns **This page could not be found** and the bell does not appear. Everything below describes the surface where it is on. ## Turn browser alerts on or off 1. Select your avatar. 2. Find the notifications row. It reads **Notifications: Off** with the line **Get alerted for direct messages and mentions.** 3. Select it and allow notifications in the browser prompt. The row then reads **Notifications: On**. While it is being set up it reads **Notifications: Turning on…**. If your browser has already refused, the row reads **Notifications: Blocked** with **Blocked by your browser. Open site settings from the address bar and allow notifications.** Selecting it retries after you change the browser setting; Evolve cannot override that choice. ## The bell The bell carries a count of unread notifications, capped at **99+**. Selecting it opens the most recent notifications, with **Mark all read** when any are unread, **You're all caught up.** when none are, and **View all notifications** at the bottom. ## The inbox `/en/notifications` is headed **Notifications** and lists your notifications newest first, with **Load more** at the end. - **Filter by app** narrows the list to one app. The list starts on **All apps**, and the options are the apps that have actually sent you something. - **Unread only** hides everything you have read. - **Mark all read** marks everything in the current view. It asks first: **Mark all as read?** with **This marks every notification in the current view as read.** - Hovering a row reveals **Mark as read** or **Mark as unread** for that row alone. - Selecting a row marks it read and opens what it refers to. Empty states: **You have no notifications yet.** with **When something needs your attention across your apps, it will appear here.**, or, with a filter on, **No notifications match** and **Clear filters**. ## Choose which apps notify you Select the gear labelled **Notification preferences**, or open `/en/notifications/preferences`. The page is headed **Notification preferences** with **Choose which apps send you in-app notifications.** Each app has one control with two options, **Instant** and **Off**. The five apps listed are AI Studio, Drive, Spaces, Relationships and GEMI. Changes save as you make them; there is no save button. **Reset to defaults** returns every app to **Instant** after confirming **Reset preferences?**. The page states **Critical alerts are always delivered.** Turning an app off does not suppress those. ## Related - [Change appearance, text size and language](/help/system/appearance-and-preferences) - [Launchpad](/help/system/launchpad) - [Help and support](/help/system/help-and-support) --- --- title: What an Account is type: explanation section: system summary: An Account owns your apps, Spaces and data; it sits inside an Organization, and you hold one role in each Account you belong to. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/account-page/personal-info/components/Organizations.tsx - evolve-front-end/app/[lng]/account-settings/layout.tsx - evolve-front-end/app/i18n/locales/en/organizations.json - evolve-front-end/app/i18n/locales/en/organization-settings.json - ops/plans/app-management-control-plane/46-organization-settings-tenant-admin-experience.md verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/switch-accounts, system/account-administrator, system/roles] aliases: [system/what-a-tenant-is] --- An Account is the unit that owns your apps, your Spaces and your data. Every app you open, every Space you post in and every file you upload belongs to exactly one Account. Three levels describe where you are: - **Organization** — a group of Accounts. It is not a surface you work in. - **Account** — the tenancy. Apps are made available and installed per Account, and administration happens here. - **Space** — a place inside an Account where people work together. ## Your membership You can be a member of more than one Account. Each membership pairs an Account with one role, and you act under one membership at a time. The pair you are currently using appears in two places: - Your avatar menu, above the menu items, showing the Account and the role beneath it. - **My profile**, as the line **Account:** followed by the Account name. Your full list is on the **Settings** page, under **Personal Info**, in the table **Organizations & roles**. It has three columns, **Organization**, **Role** and **Action**, and the membership you are using is marked **Selected**. ## Why the same person sees different things in two Accounts Access is decided per membership, not per person. An app can be installed for you in one Account and absent in another; a role can carry a capability in one Account and not the other. Changing Account therefore changes which apps appear, which Spaces you can open, and what an app shows you inside itself. See [An app is missing](/help/system/an-app-is-missing). ## Naming The product says **Account**. Some interface strings still read "organization" — the switcher is labelled **Switch organization** and the membership table **Organizations & roles** — and they act on Accounts. ## Related - [Switch between Accounts](/help/system/switch-accounts) - [The Account administrator role](/help/system/account-administrator) - [Roles and what they grant](/help/system/roles) --- --- title: Switch between Accounts type: how-to section: system summary: Select your avatar, then Switch organization, and pick the Account and role you want; the page reloads with that membership in effect. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/components/UserAvatar.tsx - evolve-front-end/app/[lng]/components/account-scope-switcher.tsx - evolve-front-end/app/[lng]/account-page/personal-info/components/Organizations.tsx - evolve-front-end/app/i18n/locales/en/user-avatar.json - evolve-front-end/app/i18n/locales/en/organizations.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/what-an-account-is, system/an-app-is-missing, system/roles] --- Select your avatar, then **Switch organization**, then the Account you want. The item is labelled "organization" but it switches Accounts. ## Switch from the avatar menu 1. Select your avatar at the top right. The block at the top shows the Account you are in and your role in it. 2. Select **Switch organization**. 3. Select the Account you want. Where you hold more than one role in the same Account, each role is listed separately. The menu closes and confirms **Account switched.** The page reloads under the new membership. **Switch organization** appears only when there is somewhere to go: you belong to more than one Account, or you hold more than one role in the Account you are in. ## Switch from your Settings page 1. Select your avatar, then **Settings**. 2. On **Personal Info**, scroll to **Organizations & roles**. 3. Select **Switch** on the row you want. The row you are already using shows **Selected** instead. ## What changes when you switch The set of apps on Launchpad, the Spaces you can open, what each app shows, and whether you administer the Account. Nothing about your profile changes: your photo, name and About are yours across every Account. ## If it did not work - **An error occurred while switching account. Please try again.** means the switch was rejected part-way. Reload the page and check the Account shown in the avatar menu before retrying. - **No accounts available.** in the switcher means the membership list came back empty. Reload the page; if it stays empty, see [Help and support](/help/system/help-and-support). - **Switch** is unavailable on a row that carries no membership identifier. That row cannot be selected. - After a successful switch an app you were using may 404 or send you to the App Store, because it is not installed in the Account you moved to. --- --- title: The Account administrator role type: explanation section: system summary: "An Account administrator manages one Account from Account settings: its name and sign-in methods, its members and roles, its spending limits and its billing." applies_to: roles: [account_admin] clients: [web] sources: - evolve-front-end/app/[lng]/account-settings/layout.tsx - evolve-front-end/app/[lng]/account-settings/general/page.tsx - evolve-front-end/app/[lng]/account-settings/users/page.tsx - evolve-front-end/app/i18n/locales/en/organization-settings.json - ops/plans/app-management-control-plane/46-organization-settings-tenant-admin-experience.md verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/roles, system/what-an-account-is, system/an-app-is-missing] aliases: [system/tenant-administrator] --- An Account administrator administers one Account. The role adds **Account settings** to the avatar menu and nothing else about your own profile or sign-in changes. The label is **Account administrator**. ## Where the role is used Select your avatar, then **Account settings**, or open `/en/account-settings/general`. The rail states **You administer this account** and has five sections: | Section | What it covers | | --- | --- | | **General** | **What this account is, what it is spending, and how people sign in.** The **Account name**, the **Short name**, the **Status**, **Sign-in methods**, **Spending**, **Members** and **Roles in use**. | | **Users** | The member list with **Email**, **Role**, **Limit** and **Actions**, plus **Invite member** and the pending invitations. | | **Usage** | What the Account has consumed. | | **Billing** | The Account's billing. | | **Connected accounts** | The external providers connected for this Account. | ## What an administrator can change From **Users**: **Invite member**, **Change role**, **Set limit**, **Add one-off increase**, **Use the account default**, **Suspend** and **Reactivate**, and **Send again** or **Cancel invitation** on a pending invitation. **Set limit** and **Add one-off increase** apply to one member. The Account's own default, stated at the top of the same section as a default limit per member per period, is changed with the **Edit** beside it. When none is set the line reads **No default limit is set**. The Account name is not one of them. The page states **Account names are changed by Evolve support.** ## What the role does not do - It does not make apps appear. Availability and installation are decided per Account and per role, and a role check is only one of three gates. See [An app is missing](/help/system/an-app-is-missing). - It does not reach into another Account. The rail shows **You do not administer this account.** under the heading **You are viewing** that Account when you switch to one you do not administer. - It does not apply to the platform's own system Account, where the page reads **This is the Evolve system account.** and **Account settings do not apply here.** ## Related - [Roles and what they grant](/help/system/roles) - [What an Account is](/help/system/what-an-account-is) - [Switch between Accounts](/help/system/switch-accounts) --- --- title: Roles and what they grant type: reference section: system summary: Your role is the second half of your Account membership. This is every role the interface names, and what a role does and does not decide. applies_to: clients: [web] sources: - evolve-front-end/lib/utils/user-roles.ts - evolve-front-end/lib/auth/platform-role-checks.ts - evolve-front-end/app/[lng]/account-page/personal-info/components/Organizations.tsx - evolve-front-end/app/i18n/locales/en/organizations.json - evolve-front-end/lib/auth/app-access/index.ts generated: evolve-front-end/scripts/help-generate.mjs verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/account-administrator, system/what-an-account-is, system/an-app-is-missing] --- [//]: # (help-generate begin human:intro) Your role is half of your Account membership: an Account plus one role. It appears under the Account name in your avatar menu and in the **Role** column of the **Organizations & roles** table on your **Personal Info** page. A role is not what decides whether you can open an app. Apps are admitted by capability, and pages ask a single resolver for a decision rather than reading your role. [//]: # (help-generate end human:intro) ## The roles The **Role** column can render 12 roles. Generated from `evolve-front-end/lib/utils/user-roles.ts`, `evolve-front-end/app/[lng]/account-page/personal-info/components/Organizations.tsx` and `evolve-front-end/app/i18n/locales/en/organizations.json` by `evolve-front-end/scripts/help-generate.mjs`. | Label you see | Role name | Footer diagnostics | | --- | --- | --- | | **Administrator** | `SYS_ADMIN` | Yes | | **Student** | `STUDENT` | No | | **Faculty** | `FACULTY` | No | | **Admin Staff** | `ADMIN_STAFF` | Yes | | **Staff** | `STAFF` | Yes | | **Developer** | `DEVELOPER` | Yes | | **User** | `USER` | No | | **Company** | `COMPANY` | No | | **Participant** | `PARTICIPANT` | No | | **Company Student** | `COMPANY_STUDENT` | No | | **Account administrator** | `TENANT_ADMIN` | No | | **Account administrator** | `ACCOUNT_ADMIN` | No | The label is what you read; the role name is what your sign-in token carries. One label is carried by more than one role name: **Account administrator** (`TENANT_ADMIN`, `ACCOUNT_ADMIN`). Role name defined in code without a label of its own (1): `SUPER_ADMIN`. It is not shown in the table above. [//]: # (help-generate begin human:role-names) A label shared by two role names is a rename in progress: the platform accepts both until the former is retired. `STAFF` succeeds `ADMIN_STAFF` the same way, under two labels. Footer diagnostics is the only role-name difference carried in the table above. [//]: # (help-generate end human:role-names) [//]: # (help-generate begin human:role-surfaces) ## What else a role changes Beyond the footer diagnostics, only a handful of surfaces read the role name: - **Administrator** and **Account administrator** administer their Account, add **Account settings** to the avatar menu, and make the **Admin apps** section visible on Launchpad. See [The Account administrator role](/help/system/account-administrator). - **Developer** adds the rescue route and the AI Studio operator surfaces. - **Administrator**, **Admin Staff** and **Staff** add the translation status page. Every other role has no gate of its own in the web frontend. What you can reach under such a role comes from the capabilities and app installations attached to your membership, not from the role's name. [//]: # (help-generate end human:role-surfaces) [//]: # (help-generate begin human:same-role) ## Why two people with the same role see different apps Because the role is only one input. An app appears when all of the following hold for your membership: 1. The app is made available to your Account. 2. The app is installed for you under the role you selected. 3. Policy permits your role in that Account to access it. 4. The page you are opening admits you. Installation is per person, so a colleague with the same role can have an app you do not. See [An app is missing](/help/system/an-app-is-missing). [//]: # (help-generate end human:same-role) [//]: # (help-generate begin human:changing) ## Changing a role You cannot change your own role. An Account administrator changes a member's role from **Account settings**, section **Users**, using **Change role**. If you hold more than one role in the same Account, both memberships are listed and you move between them with **Switch organization**; see [Switch between Accounts](/help/system/switch-accounts). [//]: # (help-generate end human:changing) [//]: # (help-generate begin human:related) ## Related - [The Account administrator role](/help/system/account-administrator) - [What an Account is](/help/system/what-an-account-is) - [An app is missing](/help/system/an-app-is-missing) [//]: # (help-generate end human:related) --- --- title: Launchpad type: reference section: system summary: "Launchpad is the Evolve home page: your core apps, the rest of the apps installed for this membership, and a route into the App Store." applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/(navbar-pages)/page.tsx - evolve-front-end/app/[lng]/components/dashboard/AvailableApps.tsx - evolve-front-end/app/[lng]/components/dashboard/launchpad-v2-view.tsx - evolve-front-end/app/[lng]/components/dashboard/launchpad-v2-app-tile.tsx - evolve-front-end/lib/app-catalog/core-apps.ts - evolve-front-end/app/i18n/locales/en/latest-apps.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/install-apps, system/an-app-is-missing, system/switch-accounts] aliases: [system/dashboard] --- Launchpad is `/en` — the page you land on after signing in. It lists the apps installed for the Account and role you are currently using, and nothing else. The navbar link is labelled **Launchpad**. ## What is on the page **Core apps** is the first heading. It holds up to three fixed apps, and only those installed for you: **AI Studio**, **Drive** and **Spaces**. **More apps** follows, with the rest of your installed apps as a grid of tiles. The grid itself has no heading of its own. **Admin apps** appears inside that section, above a divider, when you hold an administrator role and at least one of your installed apps is an administration app. Under the grid a line counts what you have, for example **You've installed 7 of 24 available apps**, next to a **Manage apps** link that opens the App Store. ## Searching A search box appears above the grid once you have two or more apps outside the core three. It is labelled **Search in apps** and matches on the app's name and description. When nothing matches, the grid shows **No applications match your search** and **Try another application name.** ## Pinning apps to the navbar 1. Select **Customize** to the right of the **Core apps** heading. 2. Pin badges appear on every tile. Select one to pin or unpin that app. 3. Use **Show pinned apps in main navigation** to control whether pinned apps also appear in the navbar. 4. Select **Done** to keep the changes, or **Cancel** to discard them. Pinned apps move to the front of the grid. ## Tiles you cannot open A tile that is dimmed and does not respond is installed but not currently openable — the app's own route is not available to you. A screen reader announces it as, for example, **Spaces is not available**. See [An app is missing](/help/system/an-app-is-missing). ## When you have no apps yet The page shows **Get started with apps**, the count line, and **Manage apps**. Below that, apps you can install are listed as rows; a row with no description of its own reads **Available in App Store**, and each row has an **Install** button. ## What Launchpad does not show Launchpad is scoped to one membership. It carries no greeting, no Account switcher and no quick-action shortcuts. To change Account, use the avatar menu; see [Switch between Accounts](/help/system/switch-accounts). ## Related - [Find and install apps from the App Store](/help/system/install-apps) - [An app is missing](/help/system/an-app-is-missing) - [Switch between Accounts](/help/system/switch-accounts) --- --- title: Find and install apps from the App Store type: how-to section: system summary: Open the App Store from the navbar, find the app, and select Install; installed apps then appear on Launchpad for the Account and role you are using. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/(navbar-pages)/appstore-page/page.tsx - evolve-front-end/app/[lng]/(navbar-pages)/appstore-page/components/appstore-content.tsx - evolve-front-end/app/[lng]/(navbar-pages)/appstore-page/components/App.tsx - evolve-front-end/app/i18n/locales/en/appstore-component.json - evolve-front-end/app/i18n/locales/en/navbar.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/launchpad, system/an-app-is-missing, system/what-an-account-is] --- Open **App Store** from the navbar, find the app, and select **Install**. The app then appears on Launchpad for the Account and role you are using. Installing is per membership. An app installed while you are in one Account is not installed for you in another, and installing does not give anyone else access. ## Install an app 1. Select **App Store** in the navbar, or open `/en/appstore-page`. 2. Find the app in the grid. 3. On its card, select **Install**. The card's action becomes **Open**, and **Uninstall** appears next to it. ## Remove an app On the card, select **Uninstall**. The app leaves Launchpad. Nothing you created inside it is deleted. ## What a card shows The app's name, a one-line description, and one action: **Install** when it is available and not installed, **Open** when it is installed, and **Uninstall** where removal is allowed. A card can also be present but not openable in the Account you are in. ## If it did not work - **No apps found** with the line **The current account context has no available apps.** means nothing is available to this Account and role. Check the Account in your avatar menu, then see [An app is missing](/help/system/an-app-is-missing). - A banner such as **Spaces is not installed for this account. Install it below, then open it again.** means you arrived here because a launch was blocked. Install the named app from the grid below the banner. - A banner reading **requires a plan before it can be opened** means the Account has no plan covering that app. An [Account administrator](/help/system/account-administrator) resolves it. --- --- title: An app is missing type: troubleshooting section: system summary: An app is absent because it is not available to your Account, not installed for your role, blocked by policy, or not released to production yet. applies_to: clients: [web] sources: - evolve-front-end/middleware.ts - evolve-front-end/app/routeAuthorizationRegistry.ts - evolve-front-end/lib/auth/app-visibility.ts - evolve-front-end/app/i18n/locales/en/appstore-component.json - evolve-front-end/app/i18n/locales/en/403-page.json - ops/docs/architecture/entitlement-and-app-access.md verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/install-apps, system/switch-accounts, system/account-administrator, system/roles] --- Check the Account and role in your avatar menu first. Most missing apps are missing because you are in a different Account from the one that has the app, or under a role that does not carry it. Three independent checks decide whether an app opens, and all three must pass: 1. Is the app available to this Account, and installed for you under the role you selected? 2. Does policy permit this role in this Account to access the app? 3. Does the specific page admit you? Because the checks are independent, an app can be installed and still not open, and it can be permitted and still be absent from Launchpad because it is not installed. ## The app is not in Launchpad or the App Store at all The app is not made available to your Account, or it has not been released to production yet. New surfaces ship to production switched off for everyone except platform administrators, so an app you have read about may exist in the code and not on your Launchpad. An [Account administrator](/help/system/account-administrator) can ask for the Account to be given the app. ## The app is in the App Store but not in Launchpad It is available but not installed for you. Select **Install** on its card; see [Find and install apps](/help/system/install-apps). ## "Spaces is not installed for this account. Install it below, then open it again." The banner names the app you tried to open; Spaces stands in for it here. You followed a link into an app that is not installed for the membership you are using. Evolve sent you to the App Store with this banner. Install the named app from the grid, then open the link again. ## "Spaces requires a plan before it can be opened." The banner names the app you tried to open. The Account has no plan covering it. Ask an Account administrator. A plan never hides an app or removes it from Launchpad; it only blocks the launch. ## "This page could not be found" A launch that policy denies, an app that is not available to your Account, and an app that has been retired all produce the same not-found page, deliberately. Switch to the Account that has the app; if you are already in it, ask an Account administrator to check the Account's availability and your role. ## "You do not have permission to access this page" The page itself refused you rather than the app. Your role does not carry the capability the page requires. A different role in the same Account may. Check whether **Switch organization** in the avatar menu offers you another role in this Account. ## The app was there yesterday and is gone today - You switched Account or role. Check the top of the avatar menu. - Your role in the Account changed. An administrator can change a member's role from **Account settings**, section **Users**, with **Change role**. - The app was uninstalled for your membership. Reinstall it from the App Store. ## Still missing - Reload once. When the platform cannot reach the catalogue the route is allowed to render, so a transient failure can produce an inconsistent view. - Compare with someone in the same Account and the same role. If they can open it and you cannot, the difference is installation, which is per person. - Collect the Account name, your role and the exact message, then see [Help and support](/help/system/help-and-support). ## Related - [Find and install apps from the App Store](/help/system/install-apps) - [Switch between Accounts](/help/system/switch-accounts) - [Roles and what they grant](/help/system/roles) --- --- title: What the Releases page shows type: reference section: system summary: Releases lists production deployments newest first, grouped by day, with the changes under each one filtered to what your Account is entitled to. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/(navbar-pages)/releases/page.tsx - evolve-front-end/lib/releases/release-feed.ts - evolve-front-end/lib/releases/release-visibility.ts - evolve-front-end/lib/releases/release-registry.data.json - evolve-front-end/app/i18n/locales/en/releases.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/platform-status, system/an-app-is-missing, system/help-and-support] aliases: [system/whats-new] --- **Releases** at `/en/releases` is the platform changelog: **What changed on the platform and when it became available to you.** Every signed-in person can open it, from the **Releases** link in the footer or directly. ## How the page is built Each entry is one production deployment, read from the platform release registry. Entries are grouped under the day they went out, newest day first, and each day carries a count such as **3 releases**. A deployment shows the services it promoted and, where one exists, a generated headline. When no notes were recorded the entry reads **Release notes pending.** Under an entry, **What changed (4)** expands the individual changes in that deployment. ## Why your list differs from someone else's The deployment rows are facts and appear for everyone. The changes underneath are filtered: you see a change only when your Account is entitled to the feature it belongs to. The event the page reports for you is the point at which a feature became available to you, not the point at which it was deployed. ## Filtering by month When the registry spans more than one month, a **Browse by month** row appears above the feed. **Latest** shows the newest entries; selecting a month shows that month only. The month is carried in the address as `?month=2026-09`. ## Labels you will see | Label | Meaning | | --- | --- | | **Hotfix** | The deployment was a hotfix. | | **Platform v1.2.3** | The platform version an older entry was recorded against. | | **Backfilled** | An entry reconstructed from history rather than minted at deploy time. | | **Major proposed** | A major version has been proposed for this entry. | | **Internal service** | The service is internal and has no user-facing surface. | | **Superseded by v1.2.4** | A later release replaced this one. | | **Not yet user-visible** | A change that is deployed but switched off for users. Only administrator accounts see these. | **Pull requests** and **Internal details**, which list the internal tags behind each service, appear only for administrator and QA accounts. ## When it is empty **No releases to show yet** with **Release notes appear here once features are enabled for your account.** means nothing in the registry is currently visible to your Account. ## Related - [Check platform status](/help/system/platform-status) - [An app is missing](/help/system/an-app-is-missing) - [Help and support](/help/system/help-and-support) --- --- title: Check whether Evolve is down type: how-to section: system summary: Select Status in the footer to open the platform status page, which reports availability independently of Evolve itself. applies_to: clients: [web] sources: - evolve-front-end/components/common/FooterLinks.tsx - evolve-front-end/app/[lng]/settings/page.tsx - evolve-front-end/app/i18n/locales/en/footer.json - evolve-front-end/app/i18n/locales/en/settings.json verified: at: 2026-09-04 env: code by: content-lane-system ttl_days: 45 related: [system/releases, system/help-and-support, system/an-app-is-missing] --- Select **Status** in the footer. It opens the platform status page, `uptime.unic.ac.cy`, in a new tab. The status page is hosted separately from Evolve, so it stays reachable when Evolve is not. ## Open it - From any page: select **Status** in the footer. - From the **Settings** page: select **Status** under **About**. ## Before you report a problem 1. Open **Status** and check whether the service you are using is reported as down. 2. If it is, wait for the status page to report recovery. There is nothing to fix on your side. 3. If it is not, the problem is more likely to be your Account, your role or your session. Check [An app is missing](/help/system/an-app-is-missing) for an absent app, and [Review active sessions](/help/system/active-sessions) if you keep being signed out. 4. If neither explains it, report it. See [Help and support](/help/system/help-and-support). ## If it did not work - If the footer is not visible, scroll to the end of the page; in a full-height app the footer sits below the panels. - If the status page itself does not load, the problem is your network rather than Evolve. - A recent deployment can also explain a change in behaviour. Check [What the Releases page shows](/help/system/releases). --- --- title: Get help and report a problem type: how-to section: system summary: Open Help from the footer or your account menu; send a report with Give feedback or Send feedback, or email evolve@unic.ac.cy. applies_to: clients: [web] sources: - evolve-front-end/app/[lng]/components/Footer.tsx - evolve-front-end/app/[lng]/components/UserAvatar.tsx - evolve-front-end/app/[lng]/support/page.tsx - evolve-front-end/lib/support-links.ts - evolve-front-end/app/[lng]/providers.tsx - evolve-front-end/app/i18n/locales/en/footer.json - evolve-front-end/app/i18n/locales/en/user-avatar.json verified: at: 2026-09-05 env: code by: help-docs-lane ttl_days: 45 aliases: [system/contact-us, system/contact-support] --- Select **Help** in the page footer or in your account menu to open the help pages. To report a problem, select **Give feedback** in the footer or **Send feedback** in your account menu, describe what happened, and send it. For anything that needs a written follow-up, email evolve@unic.ac.cy. ## Where Help and feedback live 1. Page footer: **Help** opens the help pages. **Give feedback** opens the report form. 2. Account menu (select your avatar at the top right): **Help** opens the help pages. **Send feedback** opens the same report form. 3. Support page at `/support`: **Email support** (evolve@unic.ac.cy) and the report form under **Report a problem**. The report form is not available inside Spaces, GEMI, Relationships, Ontology, and some administration pages. Open it from another page, or use email. ## What a report includes 1. What you write in the form. 2. The email address of your signed-in account, so support can reply to you. 3. Your session context, so support can find the right Account: your principal id, Account id and slug, role, and session id. Do not paste passwords, access tokens, or other people's personal data into a report. ## Report a problem well 1. Say what you expected and what happened instead. 2. Copy any error text exactly as shown. 3. Name the Space, folder, file, or agent involved. 4. Say when it happened, with the date and time. ## If it did not work - **Help** is missing from the footer: the footer is hidden on some full-screen pages; open your account menu instead. - The report form does not open: you may be on a page where it is turned off (see above); use email. - You need to reach a person: email evolve@unic.ac.cy.