# OM-Declared Topbar Actions + Tenant Request Affordance + Requests→Platform Re-bucket

## Why this note exists

This release adds an OM-governed topbar region and a shared in-app request affordance, and moves the submitted-requests System under `platform`:

- `@elevasis/core` gains a `navigation.topbar` schema region (`TopbarActionNodeSchema`, `TopbarSectionSchema`) plus the `message-plus` icon token. The topbar is now declared by the Organization Model and toggled via `/org-os manage`, mirroring how the sidebar already works.
- `@elevasis/ui` gains the topbar substrate (`TopbarActionModule`, `ResolvedTopbarAction`, `TOPBAR_ACTION_MANIFESTS`, `<TopbarActions />`, topbar projection) and the request feature (`useSubmitRequest` hook, `RequestModal`, `RequestButton`, `RequestActionIcon`).
- The submitted-requests System moves from `monitoring` to a `platform` governance System. A headless `platform` System is introduced and `monitoring.submitted-requests` is re-parented to `platform.submitted-requests`. The route path stays `/monitoring/requests`; only System ownership and the surface's `targets.systems` change.

## Applies to

- Template-derived apps that render `AppTopbar` and want OM-governed topbar actions.
- Apps that want an end-user "Request a feature / report an issue" affordance (topbar icon, dashboard card, requests-page button) backed by the existing `reported_requests` API.
- Apps whose Organization Model declares `monitoring.submitted-requests`.

## Required actions

1. Pull the latest template sync changes, then `/git-sync` to surface this note.
2. Install dependencies so `@elevasis/core` and `@elevasis/ui` resolve to the released versions that export the `navigation.topbar` schema and the topbar/request surfaces.
3. Confirm your OrganizationModel declares `navigation.topbar` (the schema defaults to `{}`, so omitting it is valid). To adopt the request topbar action, add a `navigation.topbar.request` node and register `requestTopbarActionManifest` in your `TOPBAR_ACTION_MANIFESTS` array in `ui/src/routes/__root.tsx`, then render `<TopbarActions />` in `AppTopbar`.
4. If your OM still parents submitted-requests under `monitoring`, introduce a headless `platform` System and re-parent `monitoring.submitted-requests` to `platform.submitted-requests` in `core/config/organization-model/systems.ts`, and retarget the `monitoring-requests` surface in `navigation.ts`. This is an `/om` content change (direct edits discouraged) — the route path stays `/monitoring/requests`.

## Verification

- `pnpm -C ui check-types && pnpm -C ui build`.
- `pnpm -C ui test` — topbar projection, `<TopbarActions />`, and request component tests green.
- Toggle the `request` topbar action `enabled: false` in your OM and confirm the icon disappears from the topbar.
- Submit from the UI and confirm a row appears in the requests list with `source = user`.

## Not handled by /git-sync

`/git-sync` transports commits only. It does not re-bucket your Organization Model (the `platform` System introduction and `monitoring.submitted-requests` → `platform.submitted-requests` re-parent are `/om` content edits authored per project), register topbar manifests in your `__root.tsx`, or add the requests-page nav surface where your project does not already define one.
