Skip to content

Sessions, prompts and handovers that outlive the conversation

A session ends and the work does not: what the next worker needs is a typed record checked against git, not a transcript somebody hopes to find.

status
feature status: stable
domain
Context
on the homepage
featured

What it does

A handover is an append-only record whose identity fields — branch, head, working tree, changed files — are computed from git and refused when a body tries to author them, and whose required sections are refused when empty. The next session resolves the right one for its worktree and branch, never a repository-wide newest note, and reads how far git has moved since as a label rather than a guess. Checkpoints are small by policy so they can be quoted whole into the next briefing.

A session is the episode itself: it opens when the provider says so, may span several tasks, and closes into a record that references what the episode produced and copies none of it. The provider's own lifecycle hooks draw that boundary, capture the person's raw prompts into the checkout-local half of the layer, and hand the opening episode a briefing built from what the last one left. Prompt assets in the repository are reusable framings, rendered against the task's state.

What it does not do

It stores no transcript and summarises none; the schemas have no field for one. It does not hook the worker's runtime beyond the events the provider publishes, and it does not decide what is worth remembering: the worker writes the required sections.

Why it exists

Operational moments from the Why catalogue that name one of this feature's mechanisms. Nothing here was assigned: a moment appears because it names a rule, a command, a capability or a claim this feature also names.

Every moment it answers (20)

How it works

The capability modules of the executable this feature names, each with the capabilities it composes. The interfaces each one reaches are listed under Interfaces below: they are projections of one declaration, not separate registrations.

Continuity continuity behaviorally verified

What this checkout's lifecycle is holding: the open episode, the record the next worker would resume from with the label that says how far to trust it, the newest progress note, and what is blocking acceptance. Read from the local half of the layer, which this process serves to the worker in front of it and never publishes.

Session lifecycle lifecycle behaviorally verified

The episode lifecycle as an operator sees it: every open episode of this checkout's store rather than only the one the pointer follows, the episodes that can no longer close themselves, the commit this process is answering about against the commit the repository is on, what each provider's adapter declares it can do, and the tracked records a clone receives. Read from the local half of the layer and from the index; written by nothing here.

The session domain session_domain behaviorally verified

The typed session domain: the lifecycle state machine an episode moves through, declared once in the executable and projected here rather than redrawn per surface, and the identities this checkout records — the repository, the checkout, the episode and the provider's own session — each with the canonical value and each store's own spelling of it, because the stores spell six things as three words and nothing said so.

Recovery of the record stores recover behaviorally verified

The stray files a killed publish, an interrupted rename or an unfinished site build leave in the record stores, classified by reading the clock and the content, and swept exactly once. This is the capability that backs `majordomus recover` (ADR 0040): the command no longer decides what a stray is, it asks.

The session brief brief behaviorally verified

What surrounds one working session, in one line and in a few: its episode and task, the peers of every board, the mesh, the integration queue and the derive queue, each section asked of its owner once and saying whether it could be read. The answer a session reports on itself from without being asked, and the one a provider mod shows as its status line (ADR 0136). Writes nothing.

Episodes episodes behaviorally verified

The execution episodes this shared server holds: one per client that asked for one, opened when the client attaches, kept alive by its own traffic, detached rather than closed when the connection goes, and closed on a deliberate detach, on shutdown, or by the reaper when nothing came back. The episode boundary for a client with no provider hooks of its own (ADR 0103).

The objects it is made of

Kinds of the layer. Each is a schema, a source class and a file on disk; the number beside it is what this repository holds today, counted at build time.

  • session91
  • prompt5

Where it sits

domain
Context — Every worker starts from what the repository already knows: the context that applies to its path, the handover the last session left, and the decisions already made.
areas of work
contextcoordination

Interfaces

Each capability behind it, on every interface it is projected onto. A link goes to this site's reference for that interface; an HTTP route and an MCP tool are answered by a running majordomus serve, not by this site.

The capabilities behind this feature, by interface
capabilitycommand lineHTTPMCP tool
continuity.device majordomus continuity device POST /api/v1/continuity/device majordomus_continuity_device
continuity.plan majordomus continuity plan GET /api/v1/continuity/plan majordomus_continuity_plan
continuity.publish majordomus continuity publish POST /api/v1/continuity/publish majordomus_continuity_publish
continuity.records majordomus continuity records GET /api/v1/continuity/records majordomus_continuity_records
continuity.resume majordomus continuity resume POST /api/v1/continuity/resume majordomus_continuity_resume
continuity.state —none GET /api/v1/continuity majordomus_continuity
continuity.status majordomus continuity status GET /api/v1/continuity/status majordomus_continuity_status
continuity.sync majordomus continuity sync POST /api/v1/continuity/sync majordomus_continuity_sync
lifecycle.closed —none GET /api/v1/lifecycle/closed majordomus_lifecycle_closed
lifecycle.episodes —none GET /api/v1/lifecycle/episodes majordomus_lifecycle_episodes
lifecycle.providers —none GET /api/v1/lifecycle/providers majordomus_lifecycle_providers
lifecycle.recovery —none GET /api/v1/lifecycle/recovery majordomus_lifecycle_recovery
lifecycle.runtime —none GET /api/v1/lifecycle/runtime majordomus_lifecycle_runtime
session_domain.identity —none GET /api/v1/session/identity majordomus_session_identity
session_domain.machine —none GET /api/v1/session/machine majordomus_session_machine
recover.orphans —none POST /api/v1/recover/orphans majordomus_recover_orphans
brief.session majordomus brief GET /api/v1/brief majordomus_brief
episodes.attach —none POST /api/v1/episodes/attach majordomus_session_attach
episodes.detach —none POST /api/v1/episodes/detach majordomus_session_detach
episodes.list —none GET /api/v1/episodes majordomus_episodes
in the Cockpit, of a running server
/cockpit/continuity Continuity

Evidence

What is guaranteed

Each claim this feature names, with the status its row declares, the verdict the recorded runs support, and the test that settles it.

Executable use cases

The rules that hold it

The decisions behind it

Using it

The commands that run it

  • majordomus context work · read-only

    What the next worker needs to know now, in authority order and within a budget.

  • majordomus checkpoint work

    Record compact progress inside the active task, so the next worker does not start over.

  • majordomus handover conclude

    Write an append-only continuation record, and resolve the most relevant prior one.

  • majordomus session begin

    Open, inspect and close one execution episode.

  • majordomus capture work

    Record the person's raw prompts from a provider hook as a record with its renderings, draw the episode boundary from the provider's own lifecycle hooks, install those hooks, reconcile and prune the archive, and report what each provider actually does here.

  • majordomus prompt work · read-only

    List, show and render the repository's own prompt assets, substituting known tokens only.

  • majordomus recover setup

    Close episodes nobody ended, fold duplicate records, classify the stores' stray files.

From the executable's command line

The synopsis of each, as the executable's own help prints it.

Where this page comes from

the file
.ai/repo/features/continuity.md
the same answer
majordomus product show continuity

Searches the titles and descriptions of every page this site publishes.