Skip to content
Merged
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
9 changes: 5 additions & 4 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -345,16 +345,17 @@ See [`docs/release/runtime-surface-matrix.md`](docs/release/runtime-surface-matr

## Current status

The current release baseline is **v0.4.0**.
The current release baseline is **[v0.4.1](https://github.com/yehyakin/codex-sol-control/releases/tag/v0.4.1)**.

| Verification surface | Recorded evidence |
| --- | --- |
| Local repository | Skill Creator **PASS**; the v0.4.0 candidate records **113/113 tests PASS** |
| Hosted CI | [POSIX PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/30956811267): Ubuntu/macOS × Python 3.11/3.13; [Windows PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/30956811107): Windows Server 2022 / `windows-latest` × Windows PowerShell 5.1 / PowerShell 7 |
| Local repository | Skill Creator **PASS**; the v0.4.1 candidate records **113/113 tests PASS** |
| Hosted CI | [POSIX PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/31254093412): Ubuntu/macOS × Python 3.11/3.13; [Windows PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/31254093408): Windows Server 2022 / `windows-latest` × Windows PowerShell 5.1 / PowerShell 7 |
| Physical Windows install | User-reported installation success; the Windows version, install log, and runtime identity payload were not captured, so this does not establish Native Nested |
| Desktop Sol handshake | v0.4.1 verifies the authoritative Host/tool role mapping + `fork_turns="none"` launch record + child permission/no-side-effect receipt; the same Sol completed final review with `PASS`; Desktop nested worker dispatch remains unproven |
| Runtime surface | Native Nested verified on Codex CLI `0.146.0-alpha.9.2`: `gpt-5.6-sol/high/read-only` → `gpt-5.6-luna/max/read-only` → Sol `PASS`; Compatibility remains the fallback; physical Windows 11 remains unproven |

The rename, lifecycle, and identity-handshake implementation is [`848b210`](https://github.com/yehyakin/codex-sol-control/commit/848b210691fcfd91ec8b5374ba7b35c19c48e18e). See the [full implementation report](SOL_CONTROL_IMPLEMENTATION_REPORT.md) for the current evidence.
v0.4.1 fixes the Desktop handshake deadlock that occurred when a child agent could not observe its model or reasoning effort: exact identity now comes from the authoritative Host/tool role mapping and parent launch record, while the child reports only permissions, operational constraints, and zero side effects. The fix is [`05793db`](https://github.com/yehyakin/codex-sol-control/commit/05793dbbcace73230eeef51ff13eb3e4ca82b74e); see the [full implementation report](SOL_CONTROL_IMPLEMENTATION_REPORT.md) for the v0.4.0 architecture and migration background.

These statements describe the recorded evidence boundary; they do not infer support for unverified runtime surfaces.

Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -345,16 +345,17 @@ pwsh -NoProfile -File scripts/uninstall.ps1 -RestoreLatest

## 当前状态

当前发布基线为 **v0.4.0**。
当前发布基线为 **[v0.4.1](https://github.com/yehyakin/codex-sol-control/releases/tag/v0.4.1)**。

| 验证面 | 已记录证据 |
| --- | --- |
| 本地仓库 | Skill Creator **PASS**;v0.4.0 候选版本 **113/113 tests PASS** |
| 托管 CI | [POSIX PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/30956811267):Ubuntu/macOS × Python 3.11/3.13;[Windows PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/30956811107):Windows Server 2022 / `windows-latest` × Windows PowerShell 5.1 / PowerShell 7 |
| 本地仓库 | Skill Creator **PASS**;v0.4.1 候选版本 **113/113 tests PASS** |
| 托管 CI | [POSIX PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/31254093412):Ubuntu/macOS × Python 3.11/3.13;[Windows PASS](https://github.com/yehyakin/codex-sol-control/actions/runs/31254093408):Windows Server 2022 / `windows-latest` × Windows PowerShell 5.1 / PowerShell 7 |
| Windows 实机安装 | 用户报告安装成功;未收集 Windows 版本、安装日志或运行时身份载荷,因此不扩展为 Native Nested 证明 |
| Desktop Sol 握手 | v0.4.1 已验证 Host/tool 权威角色映射 + `fork_turns="none"` 启动记录 + child 权限/零副作用回执;同一个 Sol 完成最终审核并返回 `PASS`;Desktop 嵌套 worker 调度仍未证明 |
| 运行表面 | Native Nested 已在 Codex CLI `0.146.0-alpha.9.2` 验证:`gpt-5.6-sol/high/read-only` → `gpt-5.6-luna/max/read-only` → Sol `PASS`;Compatibility 保留为回退;物理 Windows 11 尚未证明 |

更名、生命周期与身份握手实现提交为 [`848b210`](https://github.com/yehyakin/codex-sol-control/commit/848b210691fcfd91ec8b5374ba7b35c19c48e18e);当前详见[完整实施报告](SOL_CONTROL_IMPLEMENTATION_REPORT.md)。
v0.4.1 修复了 Desktop 子 Agent 无法观察模型和 reasoning effort 时的握手死锁:精确身份由 Host/tool 权威角色映射与父线程启动记录证明,child 只回报权限边界、运行约束和零副作用。修复提交为 [`05793db`](https://github.com/yehyakin/codex-sol-control/commit/05793dbbcace73230eeef51ff13eb3e4ca82b74e);v0.4.0 的架构与迁移背景见[完整实施报告](SOL_CONTROL_IMPLEMENTATION_REPORT.md)。

这些状态描述的是已记录证据范围,不推断未验证运行表面。

Expand Down
24 changes: 15 additions & 9 deletions docs/release/runtime-surface-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ Release-time documentation for Sol Control. This matrix is not a
per-task checklist and does not turn configuration text into runtime proof.
Statuses are limited to `VERIFIED`, `FAILED`, and `UNVERIFIED`.

Date: 2026-08-05
Date: 2026-08-08

| Surface | Signal | Status | Evidence location | Date |
| --- | --- | --- | --- | --- |
| Desktop | Agent selection | UNVERIFIED | No runtime identity payload captured in this release | 2026-08-03 |
| Desktop | exact model | UNVERIFIED | Configuration names are not runtime proof | 2026-08-03 |
| Desktop | reasoning | UNVERIFIED | No runtime reasoning-effort payload captured | 2026-08-03 |
| Desktop | nested dispatch | UNVERIFIED | Nested launch capability was not independently proved | 2026-08-03 |
| Desktop | result retrieval | UNVERIFIED | No checkable runtime artifact or path was captured for the observed handoff | 2026-08-03 |
| Desktop | candidate binding | UNVERIFIED | Contract rule exists; no runtime candidate snapshot was captured | 2026-08-03 |
| Desktop | Agent selection | VERIFIED | Host launch record selected `sol-controller` with `fork_turns="none"`; child session metadata recorded the same role | 2026-08-08 |
| Desktop | exact model | VERIFIED | Authoritative Host/tool mapping fixed `sol-controller` to `gpt-5.6-sol` | 2026-08-08 |
| Desktop | reasoning | VERIFIED | Authoritative Host/tool mapping fixed Sol reasoning effort to `high` | 2026-08-08 |
| Desktop | nested dispatch | UNVERIFIED | This acceptance run launched and reviewed with Sol but did not launch a Desktop worker | 2026-08-08 |
| Desktop | result retrieval | VERIFIED | The same Sol returned handshake `PASS` and final review `PASS` | 2026-08-08 |
| Desktop | candidate binding | VERIFIED | Sol reviewed the six-path final diff bound to SHA-256 `bb6c52df3293585112160790df6109a726309ce4f62fe1ee5ba269403ac2abe9` | 2026-08-08 |
| CLI | Agent selection | UNVERIFIED | No CLI runtime identity payload captured in this release | 2026-08-03 |
| CLI | exact model | UNVERIFIED | Configuration names are not runtime proof | 2026-08-03 |
| CLI | reasoning | UNVERIFIED | No CLI reasoning-effort payload captured | 2026-08-03 |
Expand All @@ -27,8 +27,14 @@ Date: 2026-08-05
| codex exec | result retrieval | VERIFIED | Luna structured `PASS`; Sol final `PASS` | 2026-08-05 |
| codex exec | candidate binding | UNVERIFIED | Read-only arithmetic acceptance had no changed-file candidate | 2026-08-05 |

The v0.4.1 Desktop proof deliberately does not ask the child to self-report
model or reasoning metadata that its runtime surface cannot observe. Exact
selection comes from the authoritative Host/tool role mapping plus the parent
launch record; the child handshake proves permissions, operational constraints,
and zero side effects. Desktop worker nesting remains `UNVERIFIED`.

The renamed `$sol-control` fresh-session and Native Nested checks were captured
after the v0.4 global installation. The persistent `codex exec` runtime records
prove the Sol-to-Luna path, exact child models and efforts, inherited read-only
boundary, structured Luna result, and Sol review. Candidate binding remains
`UNVERIFIED` because this acceptance case intentionally changed no file.
boundary, structured Luna result, and Sol review. Its candidate binding remains
`UNVERIFIED` because that acceptance case intentionally changed no file.
10 changes: 9 additions & 1 deletion tests/test_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ def test_v041_explicit_user_steering_stops_old_plan_and_replans(self) -> None:
r"(?is)(?:requires|must).{0,100}re-?plan.{0,180}(?:new|updated).{0,100}(?:request|goal)",
)

def test_v040_runtime_surface_matrix_is_release_time_only(self) -> None:
def test_v041_runtime_surface_matrix_is_release_time_only(self) -> None:
path = ROOT / "docs" / "release" / "runtime-surface-matrix.md"
self.assertTrue(path.is_file(), path)
text = path.read_text(encoding="utf-8")
Expand All @@ -381,6 +381,14 @@ def test_v040_runtime_surface_matrix_is_release_time_only(self) -> None:
for status in ("VERIFIED", "FAILED", "UNVERIFIED"):
self.assertIn(status, text, status)
self.assertRegex(text, r"(?i)release[- ]time|release documentation|per-task")
self.assertIn("| Desktop | Agent selection | VERIFIED |", text)
self.assertIn("| Desktop | exact model | VERIFIED |", text)
self.assertIn("| Desktop | reasoning | VERIFIED |", text)
self.assertIn("| Desktop | nested dispatch | UNVERIFIED |", text)
self.assertRegex(
text,
r"(?is)does not ask the child to self-report.{0,180}Host/tool role mapping.{0,180}launch record",
)

def test_runtime_notes_preserve_host_safety_checkpoints_and_environment_hygiene(self) -> None:
text = self.contract_text()
Expand Down
6 changes: 3 additions & 3 deletions tests/test_readme.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Contract tests for the v0.4.0 bilingual documentation surface."""
"""Contract tests for the v0.4.x bilingual documentation surface."""

from __future__ import annotations

Expand Down Expand Up @@ -799,7 +799,7 @@ def test_bilingual_core_signals_have_parity(self) -> None:
"saving = 1 - route_cost",
"config.toml",
"RestoreLatest",
"v0.4.0",
"v0.4.1",
"tests PASS",
"Compatibility",
"Native Nested",
Expand Down Expand Up @@ -888,7 +888,7 @@ def test_bilingual_core_signals_have_parity(self) -> None:
)
release_block = rendered[release_heading.start() : release_end]
for signal in (
"v0.4.0",
"v0.4.1",
"tests PASS",
"(SOL_CONTROL_IMPLEMENTATION_REPORT.md)",
):
Expand Down
7 changes: 6 additions & 1 deletion tests/test_rename_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,12 @@ def test_public_readmes_publish_the_new_identity_and_version(self) -> None:
for relative in ("README.md", "README.en.md"):
text = read(ROOT / relative)
self.assertIn(CANONICAL_REPOSITORY, text, relative)
self.assertIn("v0.4.0", text, relative)
self.assertRegex(
text,
r"(?i)current release baseline.*v0\.4\.1|当前发布基线.*v0\.4\.1",
relative,
)
self.assertIn("05793db", text, relative)
self.assertIn("$sol-control", text, relative)
self.assertNotIn("https://github.com/yehyakin/codex-sol-luna", text, relative)

Expand Down
Loading