SIGN IN SIGN UP

chore(m177): open the runner control-plane parity stream

CHORE(open) for M177_001. Spec to `active/`, `Status: IN_PROGRESS`, branch and
baseline recorded, worktree at `../agentsfleet-m177-runner-plane`.

Baseline on 165d96201, both lanes exit 0:

    make test-unit-all          cargo 560 passed / 57 ignored
                                + 512 TypeScript coverage-gate tests (55 files)
    make test-integration-rustd 57 passed

The 57 ignored in the unit lane ARE the 57 the integration lane runs — the
`#[ignore]` gate `make/test-integration-rustd.mk` documents, compiled by the
fast lane and executed only where the datastores are.

The spec also arrives carrying residue from before its own override, and that
is amended here rather than built to. Rows R1/R2 and test rows 7.2/7.3
described a `DAEMON=rust|zig` daemon-under-test selector and a dual-run row
differ; §7 and Invariant 5 of the same document record that M175 §6 deleted the
Zig integration lanes, so no live Zig daemon exists to select or to diff
against. A rubric row nothing can satisfy is worse than a missing one — it
reads red at the ship gate on a criterion that has no runnable form. Per
`AGENTS.orly.md` §Specification Standards ("Spec contradicts a rule → amend
spec"):

  - R1's command becomes `make test-integration-rustd`, which exists.
  - R2 becomes row-SHAPE parity against shapes recorded from the ported SQL,
    which is what §7 and Invariant 5 already say the enforcement is.
  - 7.2 `test_runner_suite_vs_zig_daemon` and 7.3 `test_dual_run_row_differ`
    are deleted as unrunnable.
  - Dimensions 2.1/3.1 and the Files-Changed rows for `make/test-integration.mk`,
    `src/build/**` and `tests/**` are reworded to the single-daemon shape.

No capability is dropped. §7.1 — a stock Zig runner completing a lease end to
end against `agentsfleetd-rs`, the milestone's demoable claim — needs the
RUNNER, not the second daemon, and survives untouched.

Discovery also records the SQL-organisation survey the work rests on.
`~/Projects/oss/exonum` carries zero SQL (RocksDB via `components/merkledb`) and
`~/Projects/oss/habitat` zero SQL and zero diesel (`builder-api` split out
upstream), so neither offers a precedent. `~/Projects/oss/core_api-develop` keeps
SQL inline in `models/<entity>.rs` with no `sql.rs` anywhere — but its statements
are one-line stored-procedure calls whose logic lives in Postgres functions, and
that shape is unavailable here: SCHEMA GUARD is "no" and Invariant 5 mandates the
writable-CTEs port verbatim, so `claimAndSettle`'s ~90-line statement stays a
Rust constant. `afd_fleet` therefore takes a domain-split `sql/` module tree,
chosen because Invariant 5's only enforcement is REVIEW's side-by-side read
against `fleet/sql.zig` and that read needs the statements collected.

No code in this commit, per the CHORE(open) rule.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
K
Kishore Kumar committed
87ee0c886dc98c57022c39b177e1c9bfa08fcbc1
Parent: 165d962