---
title: "Заставице функција"
description: "Uključite Beeuni površinu za jedan projekat i pogledajte šta svaka zastavica omogućava."
---

Ознака функције укључује једну Beeuni површину за један пројекат. Свака површина
може да се објави иза ознаке — експериментална, бета или потпуно стабилна. „Експериментално“ је
ознака стабилности ознаке, а не назив система.

Ознаке важе по пројекту. Укључивање ознаке у једном пројекту ништа не мења у
другом пројекту нити за друге налоге.

<CardGroup>
  <Card icon="app-window" title="Апликације" href="/docs/sr/feature-flags/apps">Објављујте статичке сајтове, пакете, Dockerfile датотеке и OCI слике на стабилне URL адресе.</Card>
  <Card icon="database" title="Бекендови" href="/docs/sr/feature-flags/backends">Додајте пројекту базу података, серверске функције, упите у реалном времену, датотеке и распореде.</Card>
</CardGroup>

<a id="turn-a-flag-on"></a>

## Укључивање ознаке

1. Отворите **Settings → Feature flags**. На картици су наведене све ознаке које платформа
   подржава.
2. Прочитајте ред: назив ознаке, њена ознака стабилности, кратак опис и извор — `Default on`, `Default off` или
   `Overridden for this project`.
3. Употребите прекидач. Промена се одмах примењује на тренутни пројекат.

Потребна вам је дозвола `project.settings.write` за пројекат. Рута враћа
`403` за све остале позиваоце.

<a id="from-the-cli"></a>

### Из CLI-ја

Исте прекидаче скрипте и агенти могу да користе преко `beeuni projects features`:

```bash
beeuni projects features                # every flag: key, state, origin
beeuni projects features enable reminders
beeuni projects features disable reminders
beeuni projects features reset reminders  # drop the override; follow the platform default
beeuni projects features --json          # the full catalog as JSON
```

Додајте `--project <id>` да бисте радили на другом пројекту, а не на повезаном/подразумеваном. Ознака коју платформа означи као недоступну остаје искључена без обзира на подешавање пројекта; CLI то приказује као `n/a` / `unavailable`.

:::info[Стање ознаке није у вашем репозиторијуму]
Стање ознаке по пројекту чува се у бази података, у реду пројекта. Никада се
не чита из `beeuni.yaml`. Укључена ознака се не преноси клонирањем или рачвањем репозиторијума.
:::

<a id="stability-badges"></a>

## Ознаке стабилности

Ознака описује уговор, а не прекидач. Ознака `stable` и даље захтева
изричито укључивање: `apps` је стабилна и подразумевано искључена.

| Ознака | Значење |
|---|---|
| Експериментално | Површина и њен уговор и даље могу да се мењају. |
| Бета | Површина ради, а њен облик се стабилизује. |
| Стабилно | Уговор важи. Ознака и даље захтева изричито укључивање. |

<a id="how-a-flag-is-enforced"></a>

## Примена ознаке

Свака ознака има један режим примене.

| Режим | Радња сервера када је ознака искључена |
|---|---|
| `routes` | HTTP површина одбија захтев са `403`. |
| `behavioral` | Радња се не извршава — конектор се не појављује, променљива окружења се не убацује, агент се не региструје. |
| `ui-only` | Сервер намерно не примењује проверу. Ознака сакрива само клијентску површину. |

Одговор `routes` при одбијању свуда је исти:

```json
{
  "error": "Apps is not enabled for this project. Contact Beeuni to enable it.",
  "code": "feature_disabled",
  "feature": "apps"
}
```

Низ `error` наводи листу ознака, а не конкретну картицу. Листа је на картици
**Experimental** у одељку Settings.

Проверите `code`, никада текст поруке. SDK извози
`isFeatureDisabledError(error)` и `featureDisabledKey(error)` управо за то.

<a id="every-flag"></a>

## Све ознаке

Редослед у регистру — исти као у одељку **Settings → Feature flags**.

Beeuni укључује Apps и Backends по пројекту. Контактирајте Beeuni за приступ. После укључивања Settings приказује **Managed by Beeuni**.

| Кључ | Назив | Стабилност | Подразумевано |
|---|---|---|---|
| `marketplace` | Marketplace | Бета | Укључено |
| `connectors_api_discover` | Connectors API Discover | Експериментално | Искључено |
| `agentmail_email` | AgentMail Email | Експериментално | Искључено |
| `llm_gateway` | LLM Gateway | Експериментално | Укључено  |
| `meta_agent` | Meta Agent | Експериментално | Искључено |
| `apps` | Apps | Стабилно | Искључено |
| `monitors` | Monitors | Експериментално | Искључено |
| `reminders` | Reminders | Бета | Искључено |
| `warm_sessions` | Warm Sessions | Бета | Укључено |
| `secrets_egress` | Network-Enforced Secrets | Експериментално | Укључено |
| `pi_harness` | Pi Harness  | Експериментално | Искључено |

<a id="what-each-flag-gates"></a>

### Шта контролише свака ознака

- **`marketplace`** — прегледајте и инсталирајте вештине из заједничких и добављачких
  регистара.
- **`connectors_api_discover`** — прегледајте директне API, MCP, GraphQL, CLI и
  Postman површине поред управљаних OAuth апликација. Погледајте
  [Connectors](/docs/sr/connect/connectors).
- **`agentmail_email`** — доделите AgentMail везе са сандучићима да би долазна е-пошта
  покретала и настављала сесије.
- **`llm_gateway`** — усмерите пројекат кроз Beeuni LLM пролаз којим се управља.
  Погледајте [Models](/docs/sr/project/models).
- **`meta_agent`** — додајте координаторског агента којим управља платформа, који покреће
  и управља специјализованим сесијама.
- **`apps`** — објављујте статичке сајтове, пакете, Dockerfile датотеке и OCI слике на
  стабилне серверлес URL адресе. Погледајте [Apps](/docs/sr/feature-flags/apps).
- **`monitors`** — покрећите непрекидне надзорнике из репозиторијума који шаљу догађаје окидача
  у сесије. Погледајте [Triggers](/docs/sr/connect/triggers).
- **`reminders`** — заказане провере које поново шаљу упит једној сесији, једном или
  понављано. Када је искључено, руте подсетника враћају `feature_disabled`, а постојећи
  подсетници се не активирају. Погледајте [Reminders](/docs/sr/connect/reminders).
- **`warm_sessions`** — одржавајте један sandbox покренутим док је пројекат отворен, како би
  нова сесија почела без хладног покретања.
- **`secrets_egress`** — омогућите примену мрежних правила за тајну: sandbox
  чува референцу, а Beeuni убацује стварну вредност само у захтеве упућене
  одобреним хостовима. Погледајте [Secrets](/docs/sr/project/secrets).
- **`pi_harness`** — покрећите сесије овог пројекта на pi агентском окружењу
  унутар уобичајеног sandbox-а сесије (`BEEUNI_HARNESS=pi`). Када је укључено, свака нова или
  поново покренута сесија покреће pi, без обзира на манифест. Када је искључено, одлучује манифест — `runtime: pi` и даље покреће pi, а све друго покреће подразумевани агентски рантајм. pi
  позива моделе само преко LLM пролаза: када је `llm_gateway` искључено, свака
  сесија покреће подразумевани агентски рантајм, без обзира на ову ознаку или манифест. Распоред репозиторијума,
  агенти и вештине исти су у оба случаја; покренута сесија задржава своје
  окружење док се поново не покрене или настави. Подагенти раде на pi-ју: агент
  делегира помоћу алатке `task` на `general`, `explore` (само за читање) или било ког
  агента пројекта са `mode: subagent` у његовом `.md`, а транскрипт
  приказује кораке сваког подагента на одговарајућем месту. pi сесије учитавају и pi.dev пакете:
  погледајте [`harnesses:`](/docs/sr/project/manifest#harnesses). pi не подржава све
  функције сесија које подржава подразумевани агентски рантајм: погледајте табелу у одељку
  [Harnesses](/docs/sr/work/harnesses#what-each-harness-supports).

<a id="graduated-flags"></a>

### Унапредјене ознаке

Унапредјена функција је укључена за сваки пројекат и нема прекидач.

- **Агенти као главни субјекти** су стандардно понашање без прекидача. Сесија агента
  делује као сам агент — са Beeuni дозволама унутар ограничења његове
  улоге, ко год да је покрене. Погледајте [Agent permissions](/docs/sr/project/permissions).
- **Review Center** је унапређен и више није део система ознака. Страница Review, ред Review
  на бочној траци и ред у палети команди приказују се за сваки пројекат; и даље важе дозволе `project.review.read` и `project.review.act`.
  `review_center` више није кључ ознаке: `PATCH /v1/projects/:id/features`
  враћа `400` `Unknown feature flag`, а `beeuni projects features enable
  review_center` prints that error and exits `1`. Сачувано подешавање од пре унапређења нема ефекта.
- **Computers** је унапређен и више није део система ознака. Сваки члан може да повеже
  свој рачунар из бочне траке пројекта; једина капија је подешавање платформе
  `TUNNEL_ENABLED`. `agent_tunnel` више није кључ ознаке:
  `PATCH /v1/projects/:id/features` враћа `400` `Unknown feature flag`.
  Погледајте [Computers](/docs/sr/connect/computers).
- **Microsoft Teams** је унапређен и више није део система ознака. Сваки пројекат може
  да повеже Teams из одељка **Connectors → Channels**; администратор закупца и даље једном даје сагласност,
  или пројекат користи сопственог бота. `teams` више није кључ ознаке:
  `PATCH /v1/projects/:id/features` враћа `400` `Unknown feature flag`. Сачувано подешавање од пре
  унапређења нема ефекта. Погледајте
  [Microsoft Teams](/docs/sr/connect/teams).

<a id="side-effects-of-a-toggle"></a>

## Нуспојаве прекидача

Неке ознаке усклађују стање платформе након потврде уписа.

| Ознака | Ефекат након укључивања или искључивања |
|---|---|
| `agentmail_email` | Beeuni поново покреће материјализацију конектора канала, па се конектор појављује или нестаје у складу са ознаком. |
| `llm_gateway` | Beeuni прослеђује нови режим провајдера активним sandbox-овима. |

Ефекти су послови усклађивања, а не део успешног рада прекидача. Одговор API-ја
не чека њихово извршење. Сваки ефекат се покушава поновити једном, а механизми за
усклађивање који стоје иза њега су идемпотентни и поново се покрећу у периодичним циклусима.

<a id="read-and-set-a-flag-from-code"></a>

## Читање и постављање ознаке из кода

Прочитајте ефективно стање за пројекат преко детаља пројекта или React куке:

```tsx
import { useFeatureFlag } from '@beeuni/sdk/react';

function AppsNavItem({ projectId }: { projectId: string }) {
  const apps = useFeatureFlag(projectId, 'apps');
  if (!apps.enabled) return null;
  return <Link href={`/projects/${projectId}/apps`}>Apps</Link>;
}
```

`enabled` је `true` само када је сервер вратио тачно `true`. Недостајући ID пројекта,
упит у току и грешка сви дају резултат `false`. При неуспеху онемогућите функцију.

Поставите подешавање пројекта помоћу клијента:

```ts
const p = beeuni.project(projectId);

await p.updateFeatureFlag('apps', true);   // turn it on for this project
await p.updateFeatureFlag('apps', null);   // clear the override, inherit the default
```

`updateFeatureFlag` позива `PATCH /v1/projects/:id/features`. `feature` је једна
од вредности `FEATURE_FLAG_KEYS`, извози се из `@beeuni/sdk` и има тип
`FeatureFlagKey`. Погледајте референцу SDK-а.

Онемогућену функцију обрађујте помоћу кода, а не текста поруке:

```ts
import { featureDisabledKey, isFeatureDisabledError } from '@beeuni/sdk';

try {
  await beeuni.project(projectId).apps.list();
} catch (error) {
  if (isFeatureDisabledError(error)) {
    console.log(`${featureDisabledKey(error)} is off for this project`);
  }
}
```
