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 -13
View File
@@ -1,12 +1,6 @@
import {
Activity,
CircleHelp,
Clock,
LogOut,
SlidersHorizontal,
type LucideIcon,
} from "lucide-react";
import { LogOut, SlidersHorizontal, type LucideIcon } from "lucide-react";
import { SettingsDefaultPath } from "@/src/dict/settings-pages-dict";
import { RailPages } from "@/src/dict/rail-pages-dict";
export type RailUserMenuItem = {
title: string;
@@ -20,16 +14,19 @@ export type RailUserMenuItem = {
* Rendered last, after a rule.
*/
destructive?: boolean;
/**
* Shown to super admins only.
*/
super_admin_only?: boolean;
};
/**
* Exactly the five popover items. Nothing else lives in the rail: these
* destinations are only reachable from here.
* The popover items: the rail pages (routines, activity, help), settings,
* sign out. Nothing else lives in the rail: these destinations are only
* reachable from here.
*/
export const RailUserMenuItems: RailUserMenuItem[] = [
{ title: "Activity", Icon: Activity },
{ title: "Routines", Icon: Clock },
...RailPages,
{ title: "Settings", url: SettingsDefaultPath, Icon: SlidersHorizontal },
{ title: "Help", Icon: CircleHelp },
{ title: "Sign out", url: "/auth/logout", Icon: LogOut, destructive: true },
];