Skip to content

Epic: v1.7.0 single-tenant always-on Code Mower Operator #1096

Open

Description

@jeffhuber

Goal

Ship a single-tenant, continuously running Code Mower Operator that can be shared by a small team and continue supervised work while developer laptops are offline. Codex and Claude are initial qualified supervisors; Devin is an explicit full-peer target under the same evidence-based qualification contract.

Depends on completing the operational-clarity and minimum-telemetry boundary in #1066. Contract drafting may begin earlier, but active Operator mutation and release qualification must consume the released v1.6 contracts.

Dependency map

Contract first

Foundation after the contract; parallel where file ownership permits

ACP lane transport; after contract alignment, alongside foundations

ACP may progress in parallel with #1086-#1089 once the shared contract is stable and file ownership is assigned. It is an optional builder/reviewer transport; the Operator's shadow and active milestones continue to use their qualified native transports. Factory and Qwen compatibility does not promote them as orchestrators or merge-authority reviewers. When included in the v1.7 package, #1095 verifies enabled and disabled ACP postures plus retained pilot evidence. Do not change the already retained v1.6 candidate.

Runtime; serial promotion from observation to mutation

Provider qualification; parallel after runtime contracts stabilize

Serial release

Product boundary

  • Single tenant and repository allowlist; not a multi-tenant hosted control plane.
  • Private Board access through an authenticated ingress; Board remains loopback/private by default.
  • GitHub App/service credentials replace shared personal PATs in the standard deployment.
  • Metadata-only telemetry; no source, diffs, prompts, transcripts, issue bodies, private messages, raw output, credentials, or personal paths.
  • Supervised operation with human merge approval by default.
  • Provider capability and authority are versioned policy backed by evidence, not permanent provider-name exclusions.

Explicit deferrals

  • OpenAI Agents API may be evaluated later as an alternate Codex transport behind the provider adapter; it is not an architectural dependency.
  • Git AI may later enrich provenance and productivity events; it is not required for reliable operation.
  • Factory Droid and Qwen receive bounded ACP builder/informational-reviewer pilots in Epic: v1.7 ACP builder and reviewer integration #1114. Broader agent qualification and orchestrator/merge promotion follow independent evidence; other ACP agents can use the onboarding recipe after compatibility checks.
  • Quota-aware routing waits for reliable cross-provider usage and settlement data.

Delivery rules

  • One issue and one writer per PR.
  • Contract-first issues merge before dependent runtime work.
  • Parallel PRs must have explicit file/schema ownership and rebase before exact-head review.
  • Every behavior change includes focused tests and canonical documentation.
  • Every changed head receives an independent eligible review; resolve all P0/P1/P2 findings.
  • Active mutation, provider promotion, and release are serial decisions.
  • Live credentials, infrastructure, and mutation canaries remain owner-controlled.

Activity

  1. added
    epicEpic tracking issue
    contract-firstRequires product/data/merge contract agreement before dependent work merges
    v1.7Code Mower v1.7 single-tenant Operator
    on Sep 21, 2026
  2. jeffhuber commented on Sep 21, 2026

    @jeffhuber
    ContributorAuthor

    Orchestration update — contract track started

    #1085 was dispatched to Claude through Code Mower run 35569511308. Its work order is restricted to versioned authority/state/recovery/privacy schemas, canonical fixtures, tests, threat/authority notes, and canonical documentation. It must not implement an Operator loop, active mutation, container runtime, GitHub App mutations, remote Board ingress, or cloud schema changes.

    This PR is intentionally isolated from the three active v1.6 writers. The foundation issues #1086–#1089 remain undispatched until #1085 stabilizes its contract and their exact file/schema ownership can be assigned. Observe-only runtime, mutation, provider promotion, and release work remain gated in the epic's stated order.

  3. jeffhuber commented on Oct 13, 2026

    @jeffhuber
    ContributorAuthor

    Orchestration update — ACP queue activated

    The ACP queue is now owned by the Code Mower roadmap orchestrator under the four-PR sequence in this epic.

    Current dependency state:

    The retained v1.6.0 candidate at ac585cb65ab910a48866ae784e09dab193dc8ec6 remains untouched. GitHub and PyPI still publish v1.5.2, so ACP work is confined to isolated v1.7 worktrees and will not be merged into or rebuild that candidate.

    A fresh local Board snapshot was recorded with Code Mower v1.6.0. It identifies PR #1101 as rebase-needed/stale-audit and shows no active local lane process before this takeover. Public/cloud reporting remains metadata-only; no ACP payloads or private content have been emitted.

  4. jeffhuber commented on Oct 13, 2026

    @jeffhuber
    ContributorAuthor

    Orchestration update — contract ready, held behind v1.6 publication

    PR #1101 / #1085 is now rebased onto the retained v1.6 source and technically ready at exact head ed154fb1b2eb4dcb2e924271d90ea339559f1345.

    • Independent exact-head Claude audit: PASS.
    • Python 3.12, 3.13, and 3.14 package matrices: green.
    • Release-wheel, package, graph-containment, Board-qualification, and supporting checks: green.
    • code-mower/gate: green after rerunning the transient label-snapshot race.
    • GitHub merge state: clean.

    The PR remains draft and intentionally unmerged until the already-retained v1.6.0 candidate at ac585cb65ab910a48866ae784e09dab193dc8ec6 completes its live Slack canary, privacy/control checks, 24-hour soak, and exact-artifact publication. This preserves the candidate boundary; no rebuild is currently indicated.

    The read-only #1115 alignment is complete. Its file ownership, optional ACP v1 SDK boundary, bounded stdio transport, capability negotiation, permission broker, fixture matrix, and conflict boundaries are defined. No writer or ACP branch will be opened until #1101 is merged into post-v1.6 main.

    Current queue:

    1. Complete and publish v1.6.0 from the retained artifacts.
    2. Mark Freeze the v1.7 Operator contract #1101 ready and merge its exact audited head.
    3. Branch and dispatch v1.7 ACP: shared Python client and capability negotiation #1115 from that resulting main.
    4. Begin v1.7 ACP: validated results and sanitized Board telemetry #1116 after v1.7 ACP: shared Python client and capability negotiation #1115; prepare only non-conflicting v1.7 ACP: pinned registry onboarding and doctor checks #1118 parsing/docs work in parallel.
    5. Run v1.7 ACP: Factory Droid and Qwen compatibility pilots #1117 Factory/Qwen pilots only after v1.7 ACP: shared Python client and capability negotiation #1115/v1.7 ACP: validated results and sanitized Board telemetry #1116 and under explicit credential/model/repository and campaign-spend authorization.

    Public and cloud reporting remains metadata-only. No ACP prompts, source, diffs, paths, tool arguments, raw output, or credentials are emitted.

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

    contract-firstRequires product/data/merge contract agreement before dependent work mergesepicEpic tracking issuev1.7Code Mower v1.7 single-tenant Operator

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions