Add bot schedules (routines), open Activity, add Help and a Desktop computer view

Bots create, list, update and delete schedules (cron_jobs, Bun.cron in UTC);
a per-minute cron queues due runs as tasks. Routines, Activity (super admins)
and Help get their own rail aside. Help covers familiar problems, starting
with signing in to Google through Cookie-Editor over the new Desktop (noVNC)
view.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-19 10:52:32 +01:00
co-authored by Claude Opus 5.5
parent f24c0d7e82
commit c44048dbab
62 changed files with 1904 additions and 78 deletions
+10 -3
View File
@@ -1,14 +1,21 @@
import { useContext } from "react";
import Paper from "@moduletrace/twui/elements/Paper";
import Divider from "@moduletrace/twui/layout/Divider";
import { RailUserMenuItems } from "../(dict)/rail-user-menu-dict";
import RailUserMenuEntry from "./rail-user-menu-entry";
import { AppContext } from "@/src/pages/__root";
import isPassThroughUser from "@/src/utils/rbac/is-pass-through-user";
/**
* 220px popover: the only element in the shell with elevation.
* 220px popover: the only element in the shell with elevation. Super
* admin items show to super admins only.
*/
export default function RailUserMenu() {
const items = RailUserMenuItems.filter((item) => !item.destructive);
const destructive = RailUserMenuItems.filter((item) => item.destructive);
const { pageProps } = useContext(AppContext);
const is_super_admin = isPassThroughUser({ user_types: pageProps?.user_types });
const shown = RailUserMenuItems.filter((item) => is_super_admin || !item.super_admin_only);
const items = shown.filter((item) => !item.destructive);
const destructive = shown.filter((item) => item.destructive);
return (
<Paper