Skip to content

cotal up leaves no persisted mesh record — a dead stack erases the mesh's existence #864

Description

@davidfarah2003

Two coupled behaviors, measured 2026-08-26 on macOS with 0.30.0→0.30.1:

1. An up-started mesh is only discoverable while its processes live. cotal meshes rows for meshes registered with meshes add persist in ~/.cotal/meshes/ and carry the registered tag. A mesh started by cotal up shows a row with no tag, derived from runtime state. When the stack's processes die, the row vanishes: the operator gets ✗ no mesh named "X" is running - see cotal meshes, and cotal meshes shows nothing — no record the mesh ever existed, no root path, no restart affordance. To someone who did not start the stack themselves this reads as data loss ("my mesh is not even registered, wtf" — verbatim operator reaction).

2. cotal up runs the whole stack as children of the invoking process, with no daemonize option. Broker, delivery daemon and manager all die with the invoking process tree. When the invoker is an agent session — increasingly the normal case, an agent setting a mesh up on a person's behalf — a session restart silently kills the broker, the manager, and every seat mid-work.

Together they compound: the session dies → the mesh dies with it → and the CLI then denies the mesh was ever there, so the person has nothing to restart from except memory of a directory path.

Proposal:

  • Persist the mesh record at provision time (same store as meshes add, marked self-hosted with its root), so a dead stack yields mesh "X" is recorded at <root> but not running — run cotal up there to restart instead of an existence denial.
  • Give cotal up a --daemon mode (setsid/reparent + pid files), or make detaching the default with the current behavior behind --foreground. An agent-invoked up should produce a stack that outlives the agent.

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

    area:cliPrimary affected area: cli.bugSomething isn't workingseverity:criticalConfirmed critical-impact defect or security issue.triage:confirmedReported defect reproduces, or requested non-bug gap is independently verified.triage:owned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions