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
+4 -1
View File
@@ -6,6 +6,9 @@ describe("isAdminSectionPath", () => {
expect(isAdminSectionPath({ pathname: "/admin/bots" })).toBe(true);
expect(isAdminSectionPath({ pathname: "/admin/bots/3" })).toBe(true);
expect(isAdminSectionPath({ pathname: "/admin/workspaces/2/bots/1" })).toBe(true);
expect(isAdminSectionPath({ pathname: "/admin/routines" })).toBe(true);
expect(isAdminSectionPath({ pathname: "/admin/logs" })).toBe(true);
expect(isAdminSectionPath({ pathname: "/admin/help" })).toBe(true);
expect(isAdminSectionPath({ pathname: "/admin/settings/change-password" })).toBe(
true,
);
@@ -14,7 +17,7 @@ describe("isAdminSectionPath", () => {
test("rejects the admin root, closed sections and lookalikes", () => {
expect(isAdminSectionPath({ pathname: "/admin" })).toBe(false);
expect(isAdminSectionPath({ pathname: "/admin/people" })).toBe(false);
expect(isAdminSectionPath({ pathname: "/admin/logs" })).toBe(false);
expect(isAdminSectionPath({ pathname: "/admin/backups" })).toBe(false);
expect(isAdminSectionPath({ pathname: "/admin/botsx" })).toBe(false);
});
});