Skip to content

Collaboration: signed CML task lifecycle on Sprites/Waker remote agents #89

Description

@mfethe1

Collaboration proposal: CML task lifecycle + your Sprites/Waker substrate

Hi Junchao — I've been reviewing your Buzz fork work, especially buzz-backend-sprites, buzz-waker, read-only connection classes, and community-scoped agents. The quality is unusually high: explicit state machines, no destructive substrate operation in the interface, generation-scoped leases, live verification, and one-finding-per-fix review discipline.

We're building the task-level coordination layer that appears complementary to your substrate layer:

  • Signed Nostr lifecycle over existing job kinds 43001..43006
  • planner → worker → reviewer ↔ fixer (max 3) → merge → runtime proof
  • Exclusive lease holder bound to the signed role
  • Deterministic reducer independent of event ordering
  • Sibling successors become conflicted, never last-writer-wins
  • Canonical CML snapshot/export, while signed events remain authority
  • HMAC-scoped pseudonymous host IDs; no raw host/path topology in task state

A nine-event lifecycle now passes against a real relay and reduces to shipped, including continuation after relay restart. The implementation branches are:

The integration I think is worth testing:

  1. Buzz CML worker.claim creates the durable work lease.
  2. buzz-waker/Sprites converges the agent body and reports its generation.
  3. The remote agent acknowledges by signing the claim itself — substrate success alone never implies task acceptance.
  4. Waker restart/replay-floor preserves the event chain; the reducer proves no duplicate worker accepted the same predecessor.
  5. Runtime proof records the exact generation/revision as evidence without exposing substrate secrets.

Are you planning to upstream the Sprites/Waker stack? And would you be interested in a cross-fork E2E where your remote-agent substrate executes one of our signed CML tasks? I can start with an adapter/threat-model PR against whichever branch you prefer, rather than asking you to absorb a large stack.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions