Skip to content

feat(bots): replace loops with top-level bots and durable automation - #92

Open
FreddyJD wants to merge 3 commits into
mainfrom
feat/top-level-bots
Open

FreddyJD wants to merge 3 commits into
mainfrom
feat/top-level-bots

Conversation

@FreddyJD

@FreddyJD FreddyJD commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Replace project-scoped loops with persistent, top-level bots using the existing chat UI and full agent harness. Builds on the persistent identity and handoff ideas explored in #91 without adopting channel membership or automatic prose-scanning handoffs.

  • Add New bot below New project, followed by a row of Facehash avatars and an add button after creation.
  • Add username-first creation, conversational onboarding, standing instructions, bot settings, and attributed bot replies in both canvas transcript layouts.
  • Support leading @bot mentions, explicit bot-to-bot delegation, cross-project session CRUD and prompting, and queued continuations.
  • Support interval, timezone-aware five-field cron, and explicit timestamp schedules with optional run limits.
  • Move queue delivery into the main process, with durable claims, serialized turns, delayed messages, visible failures/retries, stop handling, crash recovery, and bounded handoff chains.
  • Migrate existing loops in place, preserving chats, history, settings, workspaces, queues, and schedules; remove the old loop scheduler, tools, IPC, and UI.

Architecture And Behavior

  • Desktop queues, phone prompts, schedules, and bot requests share one main-process dispatcher.
  • Local direct turns retain ownership until renderer transcript persistence completes.
  • New bots receive private working folders and coordinate project work through sessions.
  • Roxy must remain running for schedules to execute; this is not an OS or cloud scheduler.
  • Interrupted work is retained for explicit retry rather than automatically replaying uncertain tool side effects.
  • See BOTS.md for migration details, queue semantics, tool behavior, and limits.

Verification

  • Production build and Node/renderer typechecks
  • Prettier check on changed files and git diff --check
  • Localization catalog checks and smoke:i18n
  • smoke:shared: 1,079 checks
  • smoke:app: 695 checks, with isolated PORT/ROXY_PORT and an extended test timeout
  • smoke:bots: migration, scheduling, CRUD, queue ownership, interruption/retry, delegation, real harness with controlled model transport, and actual preload/IPC checks
  • Bot UI smoke: creation, intro, Facehash identity, mentions, queue retry, instructions, schedule CRUD, and deletion
  • Bot UI contract smoke: snapshot/live mirroring and transcript persistence/release ordering
  • Canvas interaction suite: 107 checks, including narrow layouts and keyboard navigation
  • Diff/canvas model suite: 40 checks
  • Multi-repository suite: 42 checks
  • Store regression guard

Remaining Acceptance

  • Live-provider acceptance testing with a real account is still needed; automated model tests use a controlled transport.
  • New localized strings temporarily fall back to English; all catalog shapes are synchronized.

FreddyJD and others added 2 commits September 8, 2026 09:05
…tion

Add Facehash bot navigation, persistent roles, schedules, cross-session delegation, and main-process queue ownership. Migrate existing loops in place and cover bot runtime, IPC, and UI behavior.

Co-authored-by: Roxy <299891354+roxy-commits@users.noreply.github.com>
Preserve PR #93 canvas rendering, streaming cadence, and motion settings alongside bot APIs and attribution. Resolve shared imports and combine bot, terminal, and animation harness coverage.

Co-authored-by: Roxy <299891354+roxy-commits@users.noreply.github.com>
@FreddyJD

FreddyJD commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator Author

Merged latest main (d19bc78, PR #93) into this branch in cc919ff and resolved all merge conflicts. The main-branch canvas renderer, terminal layout, motion controller, and stream publisher are retained unchanged. Both bot and motion/terminal regression coverage remain enabled.

Verification after merging:

  • Production build and typechecks passed.
  • Shared suite: 1,085 checks; runtime suite: 700 checks.
  • Canvas model suite: 48 checks; motion suite: 36 checks.
  • Bot runtime, bot UI, persistence/release contract, i18n, and store checks passed.
  • Full canvas interaction suite completed all 124 checks on one run. Repeated runs also showed intermittent pointer-targeting assertion failures (diff expansion and link cursor); no production workaround or skipped assertion was introduced.
  • Formatting and conflict-marker checks passed.

Dock bot settings on the left with pinned footer actions, add avatar context menus and whitespace filtering, tighten sidebar spacing, and retain canvas measurements across revisits. Add Force run through the shared queue with IPC and UI regression coverage.

Co-authored-by: Roxy <299891354+roxy-commits@users.noreply.github.com>
@FreddyJD FreddyJD mentioned this pull request Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant