Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
Audit `ce3862e33`: #5054, #5140, #5144, #5156, #5173, #5175 and #5169
are merged. Do not count event retirement, archive recovery, managed process
supervision, reviewed local cutover or native drain as new pending PRs.
#4931 remains an open SQLite optimization, not a completed D2 qualification.
The SQLite read-proof optimization [#4931](https://github.com/loopx-project/loopx/pull/4931)
has since merged at `9482a9496`; D2 qualification remains incomplete.

Next: qualify whole-Goal execution/consumer integration and matched local
profiles in parallel; then unify new-Goal/install/settings and supported upgrade
Expand Down Expand Up @@ -3246,7 +3247,8 @@ new implementation work; changing languages or moving a helper is not an exit.
**Earlier 2026-09-24 implementation context.** Display refresh advances
projection recovery/client closure without claiming every consumer qualified. SQLite #4910 added the larger measurement axes; #4224 records
failed 1 MiB receipt/scan budgets and still-missing recovery/soak evidence.
#4931 is the in-review read-proof optimization, not proof that D2 passed.
At that checkpoint #4931 was still in review. Its subsequent merge supplies
read-proof optimization, not proof that D2 passed.
Snapshot pagination #4922 has merged and still must be qualified at its accepted
head. None of these PR statuses grants cutover or changes the selected profile.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@

按 `ce3862e33` 核对,#5054、#5140、#5144、#5156、#5173、#5175、#5169
均已合并。事件退役、archive 恢复、managed 进程监督、reviewed 本地切换和 native
drain 不再计作新待办 PR。#4931 仍是开放的 SQLite 优化,不是已完成 D2 验收。
drain 不再计作新待办 PR。此后 SQLite 读取证明优化
[#4931](https://github.com/loopx-project/loopx/pull/4931) 已在 `9482a9496` 合并;D2 资格化仍未完成。

接下来并行验证整 Goal 执行/消费者集成和本地 profile,再统一新 Goal/安装/设置
及受支持升级入口,切走最后调用方时同步删除对应旧 writer。保留必要 Host IO、
Expand Down Expand Up @@ -2512,8 +2513,8 @@ SQLite 证明与 provider-neutral 归档恢复共用持有私有状态的 TS 重

**2026-09-24 基线核对。** 保留 claim 的 #4870、reviewed cutover #4888、shadow drain
规划 #4920 已合并,快照分页 #4922、SQLite runtime 准入 #4960 与刷新显示恢复 #4961 也已
合并,后续应验收组合 head,而不是继续沿用旧的 PR hold;SQLite 读取证明优化 #4931 仍在
评审。#4224 实测 1 MiB receipt/scan 超预算,恢复和自然时间资格仍有缺项,不能将优化 PR
合并,后续应验收组合 head,而不是继续沿用旧的 PR hold;SQLite 读取证明优化 #4931 当时仍在
评审,此后已合并。#4224 实测 1 MiB receipt/scan 超预算,恢复和自然时间资格仍有缺项,不能将优化 PR
当成 D2 通过。摘要规则收口推进投影恢复边界,但没有把其他调用方或默认切换标记完成;
剩余工作按当前核对表归类,不再按 helper 迁移数量机械扣减。

Expand Down
8 changes: 4 additions & 4 deletions docs/development/contributor-tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,11 @@ issue.

| ID | Anchor | Gap and exit | Validation | Status |
| --- | --- | --- | --- | --- |
| GH-A01 | S12 · [#4941](https://github.com/loopx-project/loopx/issues/4941) | Windows users on a `cp936`-style locale hit structured state files read or written with the locale codec; #4338, #4942 and #4997 fixed the reported sites and main now has no bare `read_text()` / `write_text()` under `loopx/`. The gap is that nothing stops the class from returning. Exit: a repository guard test fails on any text-mode file I/O under `loopx/` without an explicit encoding, the reporter confirms on a `cp936` host, and #4941 closes. | New guard test next to `tests/test_connector_registry_encoding.py` and `tests/test_runtime_subprocess_utf8.py`; `python3 -m pytest -q` on both | Available |
| GH-A01 | S12 · [#4941](https://github.com/loopx-project/loopx/issues/4941) | Product fixes and the package-wide UTF-8 text-I/O guard are merged, including [#5160](https://github.com/loopx-project/loopx/pull/5160). The remaining gap is native reporter verification and issue closeout. Exit: confirm the repaired read/write paths on a `cp936` host and close #4941; reuse the landed guard instead of implementing another one. | `uv run --extra test python -m pytest -q tests/test_loopx_text_io_utf8.py tests/capabilities/test_connector_registry_encoding.py tests/test_runtime_subprocess_utf8.py`; reporter's native-host readback | Blocked: reporter verification and issue closeout |
| GH-A02 | S4/S10 · [#3927](https://github.com/loopx-project/loopx/issues/3927) | A Codex App automation that silently stops delivering scheduled prompts is indistinguishable from a healthy quiet goal; the owner learns days later. Exit: `loopx doctor` or the heartbeat readback reports a missed-delivery window as a typed diagnosis with the last observed tick. | `python3 -m pytest -q tests/test_doctor_installation_scope.py` plus a missed-window fixture; `loopx doctor --deep` readback | Needs design |
| GH-A03 | S3 · [#4336](https://github.com/loopx-project/loopx/issues/4336) | A 0.4.3 install saw `installed` in a progress summary matched as `stalled` and got `autonomous_replan_required` on a healthy goal. Typed progress observations replaced that prose matcher after #3161, but no public regression pins the contract, so a compatibility path could bring it back silently. Exit: a `quota should-run` regression with `installed` / `uninstalled` / `installation completed` summaries emits no no-progress trigger, a typed no-progress observation still does, and the issue records the upgrade guidance. | New focused pytest plus `python3 examples/control_plane/autonomous-replan-no-change-smoke.py` if present; `loopx check --scan-path loopx/quota` | Available |
| GH-A03 | S3 · [#4336](https://github.com/loopx-project/loopx/issues/4336) | Typed progress observations replaced the legacy `installed`/`stalled` prose matcher. Existing regression PRs [#4397](https://github.com/loopx-project/loopx/pull/4397) and [#5162](https://github.com/loopx-project/loopx/pull/5162) need exact-head review reconciliation. Exit: land one canonical regression proving progress prose cannot trigger replan while a typed no-progress observation still can, and record supported upgrade guidance on the issue. | The existing PR's focused positive/negative pytest and `python3 examples/control_plane/autonomous-replan-no-change-smoke.py`; current quota entrypoint readback | Claimed |
| GH-A04 | S5 · [#4381](https://github.com/loopx-project/loopx/issues/4381) | Users have to open the dashboard to learn why a task is blocked and what unblocks it; the projection already knows. Exit: the existing blocker projection is delivered through the goal channel / status readback with the recovery action, without a second notifier. | `python3 examples/issue-fix-outcome-projection-smoke.py`, focused status readback smoke | Needs design |
| GH-A05 | S12 · [#4800](https://github.com/loopx-project/loopx/issues/4800) | Default local state lives under `.codex`, which confuses non-Codex hosts and upgrades. Exit: an agreed default path and an explicit, reversible migration command; no silent move. | Design note first; then `python3 examples/loopx-update-smoke.py` and an install smoke on a clean profile | Needs design |
| GH-A05 | S12 · [#4800](https://github.com/loopx-project/loopx/issues/4800) | The explicit `.loopx` migration implementation [#4915](https://github.com/loopx-project/loopx/pull/4915) is approved and awaits maintainer merge. Exit: land the reviewed default/legacy/conflict, migration and rollback contract, then complete issue closeout; ordinary reads must not move existing state. | The existing PR's migration/SSH/registry tests, native Windows junction checks and clean-profile install/update smokes | Claimed |

Closed defects that show the lane's shape: #4155 and #4997 (Windows), #4012
(macOS 26.5 app), #3796 / #3867 / #4195 (DSH plugin install), #4051
Expand Down Expand Up @@ -134,7 +134,7 @@ the section; "extend the fixture" is not an obligation.
| ID | Anchor | Gap and exit | Validation | Status |
| --- | --- | --- | --- | --- |
| GH-C89b | [goal-direction-baseline-v0](../architecture/rfcs/goal-direction-baseline-v0.md) · §7 synthetic case F2 | The RFC landed in #4172 at milestone M0 (design note plus fixture plan F1–F8, no code). Nothing yet proves the M0 claim that a revision change exposes `re_evaluation_required` while inputs, Vision, Todos, leases and Goal route stay byte-identical. Exit: synthetic case F2 is implemented as a public-safe fixture with the RFC's key allowlist, and the RFC's milestone table advances past M0 or records why not. | New focused smoke or pytest implementing F2; public-boundary scan; `loopx check --scan-path docs/architecture/rfcs` | Available |
| GH-R5A | R5 / [shared-goal-authority-state-provider-v0](../architecture/rfcs/shared-goal-authority-state-provider-v0.md) · D2 durability / [#4224](https://github.com/loopx-project/loopx/issues/4224) [#3245](https://github.com/loopx-project/loopx/issues/3245) | The SQLite local authority candidate has capacity profiles but no crash/replay boundary qualified against the D2 acceptance in the RFC. Exit: one crash-during-commit and one replay-after-partial-write case pass on the real backend with the RFC's stated outcome, or the RFC records why D2 changes. | `npm run test:control-plane`; the isolated SQLite integration suite | Available |
| GH-R5A | R5 / [shared-goal-authority-state-provider-v0](../architecture/rfcs/shared-goal-authority-state-provider-v0.md) · D2 durability / [#4224](https://github.com/loopx-project/loopx/issues/4224) [#3245](https://github.com/loopx-project/loopx/issues/3245) | Existing contributor-owned capacity and process-recovery work includes merged #4328 and read-proof optimization [#4931](https://github.com/loopx-project/loopx/pull/4931). D2 still lacks complete reference-profile reruns, large-history recovery/consumer-lag, restore/upgrade/runtime coverage and elapsed-soak evidence. Exit: reconcile the RFC §7.2 passed/failed/missing ledger against the merged source while retaining the original failed budgets and separate promotion holds. | Declared reference-runtime capacity profiles and real SQLite process/recovery suites; independently recorded platform and >=10-day elapsed-soak evidence | Claimed |
| GH-C102 | [shared-goal-authority-state-provider-v0](../architecture/rfcs/shared-goal-authority-state-provider-v0.md) · one named invariant | Extend the shared production-scale coordination fixture only for an accepted RFC invariant or a reproduced public regression that the current envelope does not cover, naming the invariant section in the PR. Update the checked-in envelope, shared generator and an independent negative or mutation assertion; run the same dimension through every affected provider arm. Do not add a dimension because the fixture accepts one. Exit: the named invariant has a passing positive case and a failing mutation case on every affected arm. | `npm run test:control-plane`; for PostgreSQL, `LOOPX_TEST_POSTGRES_URL="$DISPOSABLE_POSTGRES_URL" npm run test:postgresql-authority-store`; `loopx check --scan-path tests/fixtures/control_plane --scan-path tests/control_plane_ts` | Available (named invariant required) |
| GH-B01 | S11 / [long-horizon benchmark research program](../architecture/rfcs/long-horizon-harness-benchmark-research-program-v0.md) · treatment integrity / [#3243](https://github.com/loopx-project/loopx/issues/3243) | Adapter-fidelity and treatment-integrity gaps are asserted but not reproducible from public fixtures. Exit: one reproducible gap with the existing focused fixtures, reported without live scoring. | Deterministic fixtures in `tests/capabilities/test_benchmark_toolkit.py`; no live runs | Needs design |

Expand Down
Loading