From 3306e7a314feee6ed8469f74e92bba6708186830 Mon Sep 17 00:00:00 2001 From: mika <211269698+mikamikasuki@users.noreply.github.com> Date: Sun, 4 Oct 2026 05:19:39 -0700 Subject: [PATCH] docs(contributor): retire completed GH-C47 task Signed-off-by: mika <211269698+mikamikasuki@users.noreply.github.com> --- docs/development/contributor-tasks-history.md | 1 + docs/development/contributor-tasks.md | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/contributor-tasks-history.md b/docs/development/contributor-tasks-history.md index 2572b8c00e..49025afcab 100644 --- a/docs/development/contributor-tasks-history.md +++ b/docs/development/contributor-tasks-history.md @@ -22,6 +22,7 @@ names a possible shape; the anchor names the gap. | GH-C96 | design / migration | Claimed: the compatibility review is published as [TypeScript migration compatibility notes](../architecture/typescript-migration-compatibility-notes.md), verifying typed state rules (zero `as unknown as` casts and a one-entry named seam inventory for the internal clone assertion on `main`), domain neutrality (providers stay explicit adapters), behavior-change disclosure (no undisclosed change found), the public/private boundary, and a stage ledger of sixteen merged Stage 2B cutovers against the RFC's three time layers, without starting new migration work. | `python3 examples/docs-governance-smoke.py` and `loopx check --scan-path docs/architecture/rfcs/typescript-control-plane-migration-v0.md --scan-path docs/development/contributor-tasks.md` | | GH-C89 | governance | Landed: [#4172](https://github.com/huangruiteng/loopx/pull/4172) (merged 2026-09-11) responds to the AGE-style attractor proposal (#2831) with a provider-neutral, Agent-scoped direction baseline. It defines the Goal-owned read boundary, exact-revision drift signal, advisory-only Vision re-evaluation, and synthetic fixture plan without making repository docs a write authority. | Public design note with a synthetic drift fixture plan plus `loopx check --scan-path docs/architecture/rfcs --scan-path docs/development/contributor-tasks.md` | | GH-C89b | RFC fixture | Landed via [#5549](https://github.com/loopx-project/loopx/pull/5549) (merged 2026-10-04): the pre-M1 F2 revision-drift fixture and mutation checks are executable, public-safe, and recorded in the RFC; issue [#5547](https://github.com/loopx-project/loopx/issues/5547) is closed. F1 and F3–F8 remain open under M1. | `python3 examples/goal-direction-baseline-f2-smoke.py` and `loopx check --scan-path docs/architecture/rfcs` | +| GH-C47 | task leases | Landed via [#4173](https://github.com/loopx-project/loopx/pull/4173) (merged 2026-09-11) under maintainer direction in [#4006](https://github.com/loopx-project/loopx/issues/4006): the provider-neutral runtime smoke covers transfer generations, overlapping write-scope rejection, stale-owner/version failures, and zero mutation after rejected operations. | `python3 examples/control_plane/task-lease-runtime-smoke.py`, focused Python and TypeScript task-lease suites, and public-boundary validation | | GH-C02 | tests | Landed: #4436 (merged 2026-09-15) extends the owning `todo-archive-completed` smoke with the archive invariant no CLI-level coverage exercised: a durable standing decision survives the archive as active standing authority, and `todo archive-completed --role user` leaves the Agent Todo section untouched. The earlier #3623 attempt (closed unmerged 2026-08-31) was rejected because it repeated assertions the owning smoke already carried; prefer a new durable invariant over a second same-shape smoke. | `python3 examples/control_plane/todo-archive-completed-smoke.py`, `python3 examples/control_plane/todo-lifecycle-cli-smoke.py`, and `python3 -m py_compile loopx/*.py` | | GH-C70 | runtime | Landed: #3664 (merged 2026-09-04) narrows host-loop parity to one producer-generated bounded-wait scheduler-hint contract between the external scheduler worker and Pi: both real consumers must produce the same provider-neutral stop/wait plan, including the final quota/replan recheck triggered by the third unchanged poll. | `python3 -m pytest -q tests/test_host_loop_runtime_parity.py tests/test_external_scheduler_worker.py tests/test_pi_goal_mode.py`, `node --test tests/pi_goal_loop_runtime.test.mjs`, `python3 examples/external-scheduler-worker-smoke.py`, and `loopx check --scan-path docs/integrations/runtime-connector-catalog.md --scan-path docs/development/contributor-tasks.md` | | GH-C07 | state | Landed: #4048 (merged 2026-09-07) added `tests/test_todo_write_serialization.py`, a deterministic concurrent add/update regression that drives the real `add_goal_todo` and `update_goal_todo` writers against one state file through the shared legacy writer fence, so a second mutation can no longer be lost. The global registry keeps its own serialization coverage in `tests/test_global_registry_write_serialization.py`, and the remaining `atomic_write_state_text` call sites either hold the sibling lock or document that contract on the caller. | `pytest -q tests/test_todo_write_serialization.py tests/test_global_registry_write_serialization.py` | diff --git a/docs/development/contributor-tasks.md b/docs/development/contributor-tasks.md index 500e27a67c..5e46b3ebf5 100644 --- a/docs/development/contributor-tasks.md +++ b/docs/development/contributor-tasks.md @@ -121,7 +121,6 @@ ordering is R1 commitments and recovery, then G1 small-team qualification. | ID | Anchor | Gap and exit | Validation | Status | | --- | --- | --- | --- | --- | | GH-R2A | R2 · "one steward drives 2–3 bound managed workers" / [#4574](https://github.com/loopx-project/loopx/issues/4574) [#4339](https://github.com/loopx-project/loopx/issues/4339) | Team-plan confirmation writes commitments but the R1 confirmed-team commitment/readback gap is not closed, so R2 real peer dependency handoff cannot be qualified. Exit: independent readback distinguishes all-gap / partial / stale / rejected / committed; then one real two-worker dependency cycle. | Maintainer-agreed slice first; R1 counterexample fixtures, then packaged frontend and CLI readback | Needs design | -| GH-C47 | S3/S4 · task-lease facade parity | Task leases back Turn fencing and typed acquire/release; the Pi facade (#3559) is the only external host that advertises them. Exit: one more real host integration (for example TraeX) advertises the capability, preserves soft-claim routing, exposes acquire/renew/transfer/release outcomes and proves overlapping write scopes fail, without making `quota should-run` enforce undeclared lease authority. | `python3 examples/control_plane/task-lease-runtime-smoke.py`, `python3 -m pytest -q tests/control_plane/test_task_lease.py tests/test_loopx_turn_driver.py`, host-focused fake fixture | Available | | GH-C88 | S12 · "reduce review effort for useful changes" / [#2881](https://github.com/loopx-project/loopx/issues/2881) | Default CLI summaries exceed the hot-path payload budget on one command family, so agents spend tokens on readback. Exit: shorter default summaries with a typed `--json` escape hatch on that family; budgets and differential allowances intact. | `python3 examples/control_plane/cli-output-budget-regression-smoke.py`, focused command smoke, `loopx check --scan-path docs/status-data-contract.md` | Needs design | | GH-C35 | S4 · runtime connector boundary | Design the next provider-neutral external-host adapter on top of LoopX Turn and TurnEnvelope, using the shipped external worker, Pi, and TraeX routes as conformance examples rather than special cases. Map compact session events into requests, planned effects, committed receipts, independent validation, recovery, and attention items while keeping raw transcripts, credentials, billing, permissions, and product frontstage outside LoopX. Exit: a public design note with an adapter-neutral fake-host smoke plan. | `loopx check --scan-path docs/integrations/runtime-connector-catalog.md --scan-path docs/development/contributor-tasks.md` | Needs design |