Skip to content

[Decision] Coordination contract for two hosts sharing one .codearbiter/ store #269

Description

@SUaDtL

[Decision] Coordination contract for two hosts sharing one .codearbiter/ store

Codex multi-host support (ADR-0011). Code under review is on branch feat/codex-support-m0, not main. ca-codex ships BETA; these are blocking-severity for the affected code but nothing is merged to the default branch yet.

Type: decision-required (discussion, not a fix ticket)

Where:

  • core/pysrc/_hooklib.py:660-693
  • core/pysrc/_hooklib.py:626-649
  • core/pysrc/taskwrite.py:1-133
  • core/pysrc/taskwrite.py:73-120
  • core/pysrc/session-start.py:446-467
  • core/pysrc/session-start.py:546-549
  • core/pysrc/_hooklib.py:660-712

Question:

ADR-0011 advertises one .codearbiter/ store shared by concurrent Claude and Codex sessions, but the coordination is accidental, not designed. Decide the contract.

Options / considerations:

  • Locking / compare-and-swap on read-modify-write state (taskwrite board lost-updates, reliability-004) vs accept last-writer-wins.
  • Record host= attribution in gate-events.log/overrides.log — get_host().name is on the seam at every call site (observability-001).
  • Scope repo-global markers (dev-active) per session, or accept cross-session clobber + the synthetic 'DEV: exit' false audit close (reliability-007).

ADR-candidate — resolve via /ca:adr (user-attributed). Not a fix ticket.

Activity

  1. added
    decisionNeeds a user decision / ADR (not a straight fix)
    codexRelated to or noticed on the OpenAI Codex plugin.
    on Jul 9, 2026
  2. SUaDtL commented on Jul 9, 2026

    @SUaDtL
    CollaboratorAuthor

    Decision recorded: ADR-0012 — dual-host concurrency parity.

    Bar set by the maintainer: two agents sharing one repo on Codex must be no worse off than two on Claude today. Resolution splits this issue:

    • In scope for the codex sprint: host attribution (observability-001) — add get_host().name to the _hooklib gate-event / block / remind / warn writes. This is the one gap genuinely new to dual-host (two distinct host identities now share one audit trail).
    • Re-scoped out (pre-existing, host-agnostic, NOT a codex blocker): the lock-free board RMW (reliability-004) and dev-marker clobber (reliability-007) are tracked in Pre-existing: lock-free board RMW + repo-global dev-marker clobber (host-agnostic concurrency debt) #271. Two Claude sessions race identically today; the Codex work added no new failure mode.

    This issue now tracks only the attribution fix. ADR-0012 governs taskwrite.py, _hooklib.py, session-start.py.

  3. SUaDtL commented on Jul 9, 2026

    @SUaDtL
    CollaboratorAuthor

    Fixed on feat/codex-support-m0 (PR #282, merged, CI green). Not yet on main — the codex branch merges to main only after live-Codex verification; the eventual feat→main PR will carry it. Closing as done on the integration branch.

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

    codexRelated to or noticed on the OpenAI Codex plugin.decisionNeeds a user decision / ADR (not a straight fix)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions