# Сесије

Сесија је git грана и sandbox у којем агент ради.

Canonical page: https://beeuni.ai/docs/sr/work/sessions

Сесија је једна целина агентског рада. Beeuni креира git грану и обезбеђује
sandbox за њу. ИД сесије, назив гране и ИД sandbox-а су иста вредност.

<a id="status"></a>

## Статус

Сесија у пракси достиже једно од 4 стања.

| Статус | Значење |
|---|---|
| `provisioning` | Beeuni креира грану и захтева sandbox. |
| `running` | Sandbox је активан и доступан. |
| `stopped` | Сесија је паузирана, ручно или аутоматским заустављањем због неактивности. |
| `failed` | Обезбеђивање ресурса није успело. |

База података дефинише још 3 вредности (`queued`, `branching`, `completed`).
Beeuni их тренутно не уписује за сесију.

<a id="stop-resume-and-idle-auto-stop"></a>

## Заустављање, настављање и аутоматско заустављање због неактивности

Сесију можете сами да зауставите. Настављањем се враћа исти sandbox са истим
системом датотека и идентитетом окружења. Ресетују се само активни процеси и
меморија. стандардни harness разговор остаје повезан са сесијом.

Beeuni такође зауставља неактивну сесију уместо вас:

- После 15 минута неактивности, за обичну сесију или покретање окидача.
- После 2 минута неактивности, за радну сесију коју је покренула друга сесија.

Активни обрт агента блокира заустављање. Одржавање се покреће сваких 5 минута.
Зато се обично аутоматско заустављање дешава приближно 15 до 20 минута након
завршетка обрта у терминалу.

Обрт који чека на особу не обавља рад: агент је поставио питање или тражи
дозволу за покретање алатке. Такав обрт задржава рачунар највише 2 сата
након што Beeuni први пут уочи чекање. При покретању окидача или заказаном
покретању, нико не прима тај захтев, а ограничење је 30 минута. Beeuni затим
завршава обрт и зауставља рачунар. Пошаљите поруку да бисте наставили. Позив
моделу или отворена страница сесије рачунају се као активност и уобичајено
продужавају рад рачунара.

Страница сесије коју користите одржава сесију активном. Она се рачуна као
коришћена док је картица видљива и док сте у последњих 10 минута кликнули,
куцали, померали садржај или је додирнули, и то само када можете да покренете
сесије у пројекту. Отворена картица без уноса престаје да се рачуна после
10 минута, па се сесија зауставља приближно 15 до 20 минута касније. Отворена
картица прегледача са приступом само за читање никада је не одржава активном.
Само коришћење странице одржава сесију активном највише 2 сата након њеног
последњег обрта агента; нова порука покреће обрт и поново поставља то
ограничење.

<a id="what-stop-and-delete-keep"></a>

## Шта се задржава при заустављању и брисању

> **Брисање је трајно**
>
> Брисањем сесије sandbox се трајно уништава. Beeuni задржава запис сесије и
> git грану, па и даље можете да опоравите послати рад. Све што није послато
> је изгубљено.

Заустављање и настављање задржавају идентитет sandbox-а и систем датотека.
Брисање уништава sandbox. Git је једини трајни запис: рад који агент потврди
и пошаље остаје сачуван; све остало не.

<a id="labels"></a>

## Ознаке

Ознака категоризује сесију: `bug`, `customer: eu`, `worker`. Отворите мени
`⋯` сесије и изаберите **Edit labels**. Филтер **Labels** на списку сесија
приказује само сесије које садрже сваку изабрану ознаку. Ознаке су произвољне,
имају 1–64 знака, а по сесији их може бити највише 20.

Агенти и скрипте такође постављају ознаке: `beeuni sessions new --label worker`,
`beeuni sessions update --label needs-review` (унутар сесије, без ИД-а, означава ту сесију) или `labels` у API-ју
и SDK-ју. Сесија такође садржи произвољни објекат `metadata` за ваше кључеве —
погледајте SDK sessions.

<a id="runtime"></a>

## Окружење

Сесија покреће један harness, стандардни harness или експериментални harness. Погледајте
[Harnesses](/docs/sr/work/harnesses). Beeuni чува изабраног агента и модел када сесија започне.
Покренута сесија задржава свој harness док се не рестартује или настави.

<a id="session-access"></a>

## Приступ сесији

Сесија је приватна за особу која ју је креирала. Власник отвара **Session
access** и бира једну од 3 опције.

| Опција | Ко може да отвори сесију |
|---|---|
| Only you | Само власник. Ово је подразумевана опција. |
| Specific people | Власник, као и чланови и групе које власник изабере. |
| Whole project | Сваки члан пројекта. |

Сви који имају приступ могу да читају разговор и наставе га.

**Дељена сесија ради на дељеним кључевима.** Када се сесија дели, користи
само кључеве провајдера дељене са целим пројектом, никада сопствене кључеве
једне особе или ChatGPT везу. Ако је њен модел радио на вашим сопственим
кључевима, дељење га пребацује на кључеве пројекта за тог провајдера. Ако
пројекат не дели кључ који покреће тај модел, дељење се одбија и сесија остаје
приватна. Погледајте [Provider keys and member access](/docs/sr/project/models#provider-keys-and-member-access).

**Само власник може ово да промени.** Менаџер пројекта који није креирао
сесију може да је отвори када се подели са њим, као и да је заустави,
рестартује или обрише. Не може да промени ко још може да је отвори. Дељење
сесије са менаџером не значи предају њеног списка приступа.

Једна врста сесија нема људског власника: оне које креира окидач и које раде
под идентитетом агента окидача. Њима управљају менаџери пројекта. Политику за
све њих подесите на самом окидачу, у одељку **Session access** на окидачу —
чување тамо такође ажурира сесије које је окидач већ креирао.

<a id="admins-can-open-every-session"></a>

### Администратори могу да отворе сваку сесију

Власник налога може да омогући власницима налога и администраторима да отворе
**сваку** сесију на налогу, укључујући сесије које чланови држе приватним.
Укључите то у **Account → Settings → Security → Admins can open every session**.
Подразумевано је искључено.

- **Само власник налога може ово да промени.** Администратор види прекидач,
  али не може да га укључи, па ниједан администратор не може самом себи да
  додели приступ раду свих.
- **Администратори ове сесије проналазе на страници Sessions пројекта.**
  Бочна трака и даље приказује само сесије које сте покренули или које су
  подељене са вама.
- **Приступ је потпун.** Администратор отвара, чита и наставља сесију, исто
  као код сесије подељене са целим пројектом.
- **Чланови то виде.** Док је опција укључена, дијалог Session access наводи
  да власници и администратори могу да отворе сваку сесију.
- **Све се евидентира.** Свако укључивање или искључивање бележи се као
  `iam.session_oversight.enable` или `iam.session_oversight.disable`, а свака сесија коју администратор отвори преко те
  опције као `project.admin_oversight_session_read` (највише једном по администратору и сесији у једном сату).
- Токени агента и sandbox-а никада не добијају овај приступ, чак ни када их
  је покренуо администратор.

<a id="find-a-session-by-owner-or-access"></a>

### Проналажење сесије по власнику или приступу

Страница **Sessions** пројекта приказује власника и приступ сваке сесије у
њеном реду: аватар и име власника (**You** за ваше сесије), затим икону која
показује ко може да је отвори: катанац за **Only the owner**, особе за
**Specific people**, глобус за **Whole project**.

Отворите **Filter** на страници Sessions да бисте сузили списак:

- **Owner** — једна ставка по особи, са бројем сесија.
- **Access** — Only the owner, Specific people или Whole project.
- **Grouping → Owner** — један одељак по особи, најпре ваш.

Филтери се комбинују са **Status**, **Source** и претрагом. **Reset** их све
уклања.

> **Сесија задржава свог власника**
>
> Уклањање особе са налога не премешта њене сесије неком другом. Њена политика
> приступа остаје замрзнута у постојећем стању. Менаџер пројекта и даље може да
> заустави или обрише те сесије — брисање је начин да се опозове сесија која више
> нема власника.

<a id="sharing-a-preview"></a>

## Дељење прегледа

Можете да поделите преглед сесије уживо јавним линком, у режиму само за
гледање или интерактивном режиму. Креирање тог линка је одлука власника
сесије, из истог разлога: линк није аутентификован, па свако ко поседује URL
може да чита сесију без пријављивања. Менаџер пројекта може да наведе и опозове
линкове сесије без њеног поседовања — опозив само уклања приступ.

За потпуну енумерацију статуса, убризгане променљиве окружења и крајње тачке
демона погледајте [Runtime](/docs/sr/work/runtime). За начин на који сесија бира агента,
погледајте [Agents](/docs/sr/project/agents). За сесије које покреће распоред или webhook,
погледајте [Triggers](/docs/sr/connect/triggers). Да бисте рад сесије пренели на подразумевану
gрану, погледајте [Change requests](/docs/sr/work/change-requests).
