Repository navigation
Handoff: CS-RG managed-execution suspension (#75) and the DevGuard boundary revalidation (2026-09-27) #76
Copy link
Copy link
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
What this issue is
The CodeSpace-side entry point for continuing the work of the 2026-09-27 session without access to that session. It is a living tracker: when the state changes, add a comment (date, what changed, evidence link) and tick the boxes below. The primary tracker for the cross-repository work is novelKR/DevGuard#14. This issue covers what a CodeSpace agent must know, must not do, and still has to check. The dated snapshot is the CodeSpace note .github/notes/pr75-cs-rg-suspension-handoff.md (file at 6a4461e), added by #77.
- Nothing here approves an architecture, starts a work unit or authorizes a merge.
- The planned CS-RG managed-execution design in CodeSpace's documentation is suspended as an implementation directive (docs: mark the planned CS-RG managed-execution design as suspended #75); no replacement is approved.
State when written (re-queried 2026-09-27 15:05 UTC; PR heads rechecked 15:50 UTC)
| Item | Value | Evidence |
|---|---|---|
CodeSpace main |
794867ef52f530be6bc0d91aa10416d5195367b7 (merge of #73) |
CI run 36308518615 and documentation run 36308519199 success |
| Codex pin | 6b9826e3aa83b1a5947db50f4332cb9c65f1b340 (rust-v0.154.0), unchanged |
git ls-tree origin/main third_party/codex |
| #75 | hold notices; head 1bee230595698b0974df43561bccfce67d7e8cb9; not merged; CLEAN |
5 success, 6 not selected by the CI plan (runs 36317763003, 36317763516) |
| #77 | CodeSpace session-close note; head 6a4461e5445bf51103dacfa8cb08f585732b76b3; not merged |
read on the PR |
| Last scheduled full run | 36275459398 on b6e7ed2 (before the ETXTBSY fix), failure |
no scheduled run on 794867e yet |
| Kept branches | codex/ci-fixture-docs-only and codex/ci-fixture-pty-only (closed #71 and #72); codex/diag-etxtbsy-fixture (diagnostic run 36302744023 only, never to be merged); every other remote task branch |
deleting any needs the owner's approval |
Start here
- Re-query:
git fetch origin,gh pr view 75 --repo novelKR/CodeSpace --json state,headRefOid,baseRefOid,mergeStateStatus,statusCheckRollup,git ls-tree origin/main third_party/codex, andgh run list --repo novelKR/CodeSpace --event schedule --limit 3. Post any difference from this issue as a comment. - Read in this order: Handoff: CS-RG hold, boundary revalidation and pending owner approvals (2026-09-27) DevGuard#14; the DevGuard session-close handoff in docs(handoff): record the close of the 2026-09-27 session DevGuard#15 (
docs/handoff/2026-09-27-session-close.md, file at760af00); this repository's note.github/notes/pr75-cs-rg-suspension-handoff.md(file at6a4461e); then the DevGuard analysis for the reasoning. - Find the owner's latest instruction on Handoff: CS-RG hold, boundary revalidation and pending owner approvals (2026-09-27) DevGuard#14, this issue or the PRs. A merge approval names the PR and its full head SHA. Approvals arrive as the owner's direct instruction to the agent doing the work. PRs, issues and comments here are written through the same
novelKRaccount the agents use, so a GitHub comment alone does not prove an approval. Record each approval you act on, with its time and wording. - After any change, comment here and on Handoff: CS-RG hold, boundary revalidation and pending owner approvals (2026-09-27) DevGuard#14.
What a CodeSpace agent must not do for CS-RG
These follow from the owner's constraints (N1 in the DevGuard handoff). DevGuard is the opt-in that adapts.
- No CodeSpace-owned PTY stack, Unix transport or process backend, and no governed PTY built on Codex
ProcessDriver. The PTY path stays delegated to Codex (codex-utils-pty). - No rewrite or move of the Tokio pipe path for DevGuard or for symmetry, and no wrapping of CodeSpace spawns in DevGuard's
spawn_guard. - No change to the
offpath, and no mandatory DevGuard service, credential or dependency. - No Codex pin change, no DevGuard client dependency and no MCP contract change without the owner's approval.
- No implementation from the suspended sections of
docs/codex-reuse.md,docs/devguard-integration.md,docs/execution-substrate.md,docs/architecture.mdanddocs/upstream-update.md(and their Korean counterparts).
CodeSpace facts from the review (source, at 794867e)
- The pipe, patch-helper and Linux sandbox probe spawns neither take DevGuard's
spawn_guardnor close unintended descriptors in the child; Codex PTY children do close them. This is how DevGuard's client session-socket window (D6) becomes reachable from CodeSpace processes. - Both backends reap at once: the pipe path polls
try_waitevery 20 ms, and Codex PTY reaps insidespawn_blocking(child.wait()). No existing event fires before the reap. - Codex exposes no PTY child PID at the pin or on its
main. Close-on-exec descriptor attachment (ChildFds::Attached, Support close-on-exec attachments without changing PTY semantics openai/codex#47797) exists only on Codexmainand prereleases, not in stable rust-v0.157.1. - The Rust floor is 1.88 here and 1.95 in DevGuard, so any DevGuard client dependency would have to stay optional to keep the
offbuild on 1.88. - CodeSpace-only issues outside CS-RG. Each needs its own proposal and approval and is never justified by CS-RG:
- OX-01: the MCP tool text promises to end an owned subtree, while the pipe path sets no process group (
crates/server/src/mcp.rs). - OX-02: a PTY handle dropped at completed-slot eviction, up to 15 minutes after exit, signals a stored numeric process group (Codex
process.rsDrop, with CodeSpace's 15-minuteDEFAULT_COMPLETED_TTL), which can reach a reused group. - OX-03: a UDS worker setup failure before the handshake leaves the worker process and its directory (
crates/server/src/runtime.rs).
- OX-01: the MCP tool text promises to end an owned subtree, while the pipe path sets no process group (
Checklist
- docs: mark the planned CS-RG managed-execution design as suspended #75 merged on the owner's exact-head approval; post-merge CI and documentation publication read once and preserved.
- docs: record the CS-RG suspension handoff note #77 merged on the owner's exact-head approval; post-merge CI read once and preserved.
- First scheduled full run on
794867eread once. Iflinux_sandbox::tests::prepare_unread_large_stdin_times_outor another fixture exec failure recurs, classify it (the change, a known flaky recurrence, or the environment) from the job history and the other legs before proposing any fix; apply nothing without confirmation. - Owner decisions on the DevGuard architecture track (Handoff: CS-RG hold, boundary revalidation and pending owner approvals (2026-09-27) DevGuard#14). CodeSpace CS-RG work starts only after them.
- Separate proposals for OX-01 to OX-03, only if the owner asks for them.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Activity
docs: address the independent review of the CS-RG suspension handoff …
novelKR commentedon Sep 27, 2026
2026-09-27 15:55 UTC. Tracker opened at session close (first log entry).
6a4461e5445bf51103dacfa8cb08f585732b76b3: 17 checks passed, 1 skipped (docs-pages, which runs onmainonly), CLEAN. Merging needs the owner's exact-head approval.1bee230595698b0974df43561bccfce67d7e8cb9is unchanged.794867ehad been read yet. That is the next CodeSpace check (daily43 19 * * *UTC).novelKR commentedon Sep 27, 2026
2026-09-28 owner direction (new session).
offpath.novelKR commentedon Sep 27, 2026
2026-09-28 merge-plan execution.
1bee230595698b0974df43561bccfce67d7e8cb9; merge commit8a5a924679e0fcec35b74d2fcf59ec64bbb256a4.6a4461e5445bf51103dacfa8cb08f585732b76b3; merge commit326bdcb181f62f61bcb3c4e9c3de7535d50b0232.mainis326bdcb181f62f61bcb3c4e9c3de7535d50b0232. Documentation publication has succeeded; the full post-merge Rust CI run 36336337315 is currently in progress.novelKR commentedon Sep 28, 2026
2026-09-28 01:40 UTC. W0 intake delta for CS-DG-UPSTREAM-ADAPTER-WORK-SPEC-1 v1.0 (new session).
The latest state is the owner direction and the merge-plan execution above; they are not restated here. The issue body is a dated snapshot from 2026-09-27 15:05–15:50Z. The cross-repository delta, with evidence digests, is on novelKR/DevGuard#14.
Baseline (re-queried at 01:20Z)
mainis326bdcb181f62f61bcb3c4e9c3de7535d50b0232.6b9826e3aa83b1a5947db50f4332cb9c65f1b340(rust-v0.154.0), unchanged.Post-merge verification
docs: mark the planned CS-RG managed-execution design as suspended #75 merged as
8a5a924; docs: record the CS-RG suspension handoff note #77 merged as326bdcb. For each, the parents are the previousmainand the approved head, and the files match the PR's own diff (11 files and 1 file). The gitlink is6b9826eat both merges.Post-merge runs, all succeeded:
8a5a924326bdcbThese runs and the PR-head CI of docs: mark the planned CS-RG managed-execution design as suspended #75 and docs: record the CS-RG suspension handoff note #77 were downloaded once and preserved in the DevGuard checkout's git-ignored evidence directory with manifests. Nothing was polled or rerun.
Local alignment
mainwas fast-forwarded from794867eto326bdcb; the gitlink is unchanged.git worktree remove(no--force) andgit branch -d: the docs: mark the planned CS-RG managed-execution design as suspended #75 and docs: record the CS-RG suspension handoff note #77 task worktrees and their merged local branches. Both were clean and at their approved heads.codex/ci-fixture-docs-only,codex/ci-fixture-pty-onlyandcodex/diag-etxtbsy-fixturebranches, and therefs/codex/*refs.Scheduled run
794867e" no longer applies:mainmoved to326bdcbbefore any scheduled run on794867e.326bdcbwas read: run 36355653598, created 22:32Z, succeeded with 16 jobs.linux_sandbox::tests::prepare_unread_large_stdin_times_outpassed, and the Integration log contains no ETXTBSY, "text file busy" or "os error 26".Next: a CodeSpace
.github/notes/pointer PR will link the DevGuard packet. It changes no policy page, pin, dependency oroffbehaviour, and a.github/**change runs full CI by policy. No CS-RG CodeSpace work, pin change or dependency is authorized by this pass.novelKR commentedon Sep 28, 2026
2026-09-28 04:24 UTC. W1–W2 result and W3 owner gate for CS-DG-UPSTREAM-ADAPTER-WORK-SPEC-1 v1.0 (CodeSpace side).
This follows the W0 intake delta. The cross-repository result, with evidence digests and all nine owner decisions, is on novelKR/DevGuard#14. This comment adds only the CodeSpace-side delta.
Records
.github/notes/devguard-upstream-adapter-packet.md.c8912abf50ee090bdc6eaa6054a0ab524210f276, base326bdcb.a67facbbebb192d83126c5afa1a9ef2d713c2e2e.main326bdcband the Codex gitlink6b9826e(rust-v0.154.0);offpath.Findings that concern CodeSpace
72b8d8b) and Codexmain,spawn_pty_processtakesChildFds<'_>. A pin move past stable rust-v0.157.1 would need a coordinated edit ofcrates/pty/src/lib.rs:66-77, for exampleChildFds::Inherited(&[]). No pin change is proposed.Commanddoes not usePOSIX_SPAWN_CLOEXEC_DEFAULT.check-no-model-deps.shchecks directcodex-*keys only.upstream_dependencies.pyrejects the namedFORBIDDENandRUNNER_FORBIDDENcrates only. So a transitivecodex-utils-ptyarriving through a DevGuard client would not be flagged today. The packet drafts a check for the PR in which such a crate first appears; nothing is applied.Decisions that touch CodeSpace (numbering as on #14)
docs/codex-reuse.md:78anddocs/upstream-update.md:90-131, with their Korean pages.No CS-RG CodeSpace work, pin change or dependency is authorized.
Stop boundary: there is no merge, no experiment, no normative PR, no pin, dependency, service or credential change, and no upstream submission until the owner decides.
novelKR commentedon Sep 28, 2026
2026-09-28 06:40 UTC. W3 owner decisions received; evidence housekeeping done (CodeSpace side).
This follows the W1–W2 result. The full delta, with evidence digests, is on novelKR/DevGuard#14.
c8912abf50ee090bdc6eaa6054a0ab524210f276: CI 36377211087 succeeded, 16/16 jobs; documentation 36377211672 succeeded. Both are preserved locally.c8912ab, after docs(handoff): record the upstream-adapter W0-W2 packet DevGuard#16 is merged ata67facband once the note is confirmed to still name that merged head. A changed head in either PR means stop for renewed approval.main326bdcb, the gitlink6b9826eand theoffpath.novelKR commentedon Sep 28, 2026
2026-09-28 07:23 UTC. #78 merged and verified.
c8912abf50ee090bdc6eaa6054a0ab524210f276asab0341b5cf5eda8c82730487d4475f1ac922daf5.a67facb, the note named that head, andmainhad not moved.326bdcb,c8912ab); the tree equals the PR's tested merge; the gitlink is6b9826e, unchanged.main: CI 36388007427 succeeded (16/16), and documentation 36388008255 succeeded, including deploy.mainat 06:50Z produced a second successful pair (36388426590, 36388427669).maindid not move and this agent pushed nothing; the cause is undetermined.mainfast-forwarded; the pointer worktree and its local branch removed; remote branches kept.novelKR commentedon Sep 28, 2026
2026-09-28 10:19 UTC. W3 result (CodeSpace side): experiments done; stopped at the next owner gate.
This follows the #78 merge record. The full result, with evidence digests and all seven decisions, is on novelKR/DevGuard#14. The record itself is novelKR/DevGuard#17 at head
70c814c93a96f383e3241b6817fe6d42aea9ea48, not merged.New in CodeSpace
mainab0341b, the gitlink6b9826e, every page, script and CI policy, and theoffpath. No CodeSpace process was run or modified by the experiments.Findings that concern CodeSpace (scratch harnesses outside the repository, macOS, one host; behavioural evidence, not proof)
Commandinherited transient sockets and pipes that another thread was creating: in two samples of 400 per cell, up to about 12 % under continuous creation.CommandandDescriptorPolicy::Explicit(POSIX_SPAWN_CLOEXEC_DEFAULT) held none in any cell.ChildFds::Attachedat72b8d8bdelivered DevGuard's launch attachments to the intended child only, and a launch through it needed no DevGuard spawn.ChildFdsadapter edit noted before; no pin change is proposed.Decisions that touch CodeSpace (numbering as on #14)
Stop boundary: there is no pin change, dependency, integration, CodeSpace code change, normative PR or upstream submission until the owner decides.
novelKR commentedon Sep 28, 2026
2026-09-28 11:41 UTC. Session close (CodeSpace side).
This is a session-close delta, following the W3 result. The full session-close state, the open decisions and the CI classification of DevGuard #17 are in the DevGuard #14 session-close comment. They are not repeated here.
ab0341b) and verified.mainisab0341b5cf5eda8c82730487d4475f1ac922daf5;6b9826e3aa83b1a5947db50f4332cb9c65f1b340(rust-v0.154.0).off-path change.70c814c93a96f383e3241b6817fe6d42aea9ea48. It is non-normative and unmerged.novelKR commentedon Sep 30, 2026
2026-09-30 09:17 UTC. W3 record merged on the DevGuard side.
This is a delta since the session-close comment. The full delta, including the remaining owner decisions, is in the latest DevGuard #14 comment. Next agent: start there.
70c814c93a96f383e3241b6817fe6d42aea9ea48, as merge commit4898259a8a5b7c2ed0b3a46a3567cb419b0a73d5.main:docs/handoff/2026-09-28-w3-decision-packet.md.mainisab0341b5cf5eda8c82730487d4475f1ac922daf5; the Codex gitlink is6b9826e3aa83b1a5947db50f4332cb9c65f1b340(rust-v0.154.0).off-path change.rust-v0.159.0andrust-v0.159.1, published 2026-09-29, carry the samecodex-rs/utils/ptytree as the prerelease72b8d8bthat W3 used.rust-v0.159.0andrust-v0.159.2both defineDescriptorPolicy::Explicit(POSIX_SPAWN_CLOEXEC_DEFAULTon macOS) andChildFds::Attached. Investigate descriptor inheritance between concurrent spawns on macOS #79 had recordedExplicitonly at the prerelease and Codexmain.novelKR commentedon Sep 30, 2026
2026-09-30 15:33 UTC. The counterpart PR for DevGuard design revision 2 is prepared, not merged.
8a414e8fcb50f262fce1f9f566cb52d79d5077da. Documentation only. CI: success (CI 36727905220, Documentation site 36727906694).codex-reuse: the D3 bullet keeps its dated wording and is annotated as superseded on 2026-09-28.upstream-update: a dated addition records that a DevGuard binding linked into a CodeSpace executable consumes Codex through this repository's gitlink. The single-identity check arrives with the first DevGuard crate in a CodeSpace graph.9d223bbd3529d6996fb8ebabeedae5458d31f498(docs: record design revision 2 for adapter-bounded external dependencies DevGuard#20).4149ec1, linked W04: workspace registry and path policy #20's former head. After W04: workspace registry and path policy #20 gained a one-entry CI policy classification that the owner authorized,8a414e8moved the links. The earlier green runs are superseded and kept as evidence.mainisab0341b5cf5eda8c82730487d4475f1ac922daf5, and the Codex gitlink is6b9826e3aa83b1a5947db50f4332cb9c65f1b340(rust-v0.154.0).novelKR commentedon Sep 30, 2026
2026-09-30 19:04 UTC. #79's single bounded
rust-v0.154.0baseline run is done: results, DevGuard evidence manifest10beb5fd9319e66ac78a827617e8bfcec9bc8d6b385709458482c90207ef7cb7. No CodeSpace change is proposed, and step 3 needs its own decision.novelKR commentedon Oct 1, 2026
2026-10-01 07:05 UTC. #80 is merged at
8a414e8(merge1bf99cf,mainCI green; gitlink still6b9826e). The #79 fix is in review as #81 (8afb701, CI green, verified against the 0.154 baseline); it is an independent defect fix, not CS-RG progress. Merges, evidence and the proposed first CS-RG unit: DevGuard #14.novelKR commentedon Oct 2, 2026
2026-10-02 06:54 UTC. #81 is at a new exact head,
2629f1875a6ac16c32c23309e948af357f20003e. Its descriptor walk is now bounded by the descriptor table instead ofRLIMIT_NOFILE, it fails closed, and macOS CI now runs its tests. It is verified against the 0.154 baseline, and its CI is green, including that macOS leg. It awaits exact-head merge approval. It is an independent defect fix, not CS-RG progress. Details: #79.novelKR commentedon Oct 2, 2026
2026-10-02 14:03 UTC.
dcf8c51, and its post-mergemainCI passed.595f7d2asf0a3322, and its PR CI and post-mergemainCI passed.devguardCargo feature and--devguard status.workspace_info. It admits and launches nothing, andgoverns_executionis alwaysfalse.novelKR commentedon Oct 7, 2026
2026-10-07 UTC.
4be00f6as3206865, and its post-mergemainCI passed.3b1ed59as02cf905.2239085asebed574. Its post-merge CI passed, and so has every scheduled run since.requiredworkspaces refuse new executions.in-progress(docs: record CS-RG as in progress with the owner-directed units DevGuard#22) and holds the owner's instructions (docs(handoff): record the owner's CS-RG instructions and a 2026-10-03 handoff DevGuard#23).6b9826eand DevGuardf1f9084.Generated by Claude Code
novelKR commentedon Oct 7, 2026
2026-10-07 10:30 UTC.
26f561eas579c075, and its post-mergemainCI passed.signaled, with the signal.4af3febasd543ea5, and its post-mergemainCI passed.requiredworkspace's execution is admitted by DevGuard into a one-shot prepared execution. Until U4, the attempt is cancelled and the call returnsMANAGED_LAUNCH_UNAVAILABLE. Nothing is spawned.resources.requestis 250 m CPU, 256 MiB and 32 tasks.active(docs: record CSRG-U3 as the active unit DevGuard#25, merged). docs: record CSRG-U3 as merged DevGuard#26 records it asmerged-verifiedand waits for the owner's merge.6b9826eand DevGuardf1f9084.Generated by Claude Code
novelKR commentedon Oct 8, 2026
2026-10-08 14:00 UTC.
6e7e065. devguard: pin DevGuard at 6e7e065 for its credential read fix #89 moved CodeSpace's DevGuard pin fromf1f9084to6e7e065. It merged at6fe91e7ase0610c4, and its post-mergemainCI passed.credential_unavailablefor a usable credential.merged-verified(docs: record CSRG-U3 as merged DevGuard#26) and U4 asactive(docs: record CSRG-U4 as the active unit DevGuard#28). Both are merged.BeginLaunch, the launch helper and carriers, on macOS, from the 2026-10-02 order. Nothing merges without the owner's exact-head approval. The pins are Codex6b9826eand DevGuard6e7e065.Generated by Claude Code
novelKR commentedon Oct 9, 2026
2026-10-09 14:45 UTC.
c1c7859as3e5e3e8, and its post-mergemainCI passed.--devguard registerand--devguard-launch-helper, an execution in arequiredworkspace is launched once under DevGuard:BeginLaunch, a one-time permit, DevGuard'sdevguard-launchstarted by CodeSpace's own pipe or PTY spawner, then the command.exec_commandreturnsdispatch_status: confirmedorunknown, or a refusal, and never runs the command outside DevGuard.--runtime-bin, pipe and PTY.6b9826eand DevGuard6e7e065. The runner wire protocol stays 7.merged-verified. Its CI passed, and it waits for the owner's merge.Generated by Claude Code
novelKR commentedon Oct 11, 2026
2026-10-11 15:30 UTC. Updated 15:39 UTC: novelKR/DevGuard#30 is merged.
f91380aas470069c, and its post-mergemainCI passed.--runtime-bin, so its first start after the worker is built or installed on macOS no longer fails withworker socket not ready. A worker that exits first still fails the start at once.6b9826e, DevGuard6e7e065) and the runner wire protocol 7 are unchanged.merged-verified(docs: record CSRG-U4 as merged DevGuard#29, merged). docs: record CSRG-U5 as the active unit DevGuard#30 records U5 asactive; it is merged.Generated by Claude Code
novelKR commentedon Oct 11, 2026
2026-10-11 17:50 UTC, edited 18:05 and 23:35 UTC and 2026-10-12 05:10, 05:40, 07:30 and 10:16 UTC.
7b65c76as0c21a7f, and its post-mergemainCI passed.rust-v0.154.0pin, not a fork. codex, scripts, docs: carry the PTY pre-reap observer as a recorded patch on the pinned release #93 merged ata75d030as3d051fa, and its post-mergemainCI passed. It carries the patch, its apply-and-check step, and the policy for such fixes with a case study. The feature request for the patch's capability was filed on 2026-10-12 as openai/codex#53298, and docs: record the filed Codex feature request in the patch record #96 records it in the patch record: merged at7727d24as7024f74, and its post-mergemainCI passed all 17 jobs.634a19fas181a020, and its post-mergemainCI passed all 17 jobs. Governed PTY executions now get a pipe root's window before the reap: DevGuard observes the scope while the exited root still holds its PID, bounded at 2 s, and termination or the timeout in that window leaves the root to its reaper. Ungoverned PTY executions spawn as before. No pin changed.6481e77asd4ea680: the descriptor tests' failure messages no longer print a child's environment. Test code only.merged-verified, merged at6bc7654ascd0681c; its post-merge CI passed. docs: record governed PTY observation before the reap DevGuard#32, which updates the CS-RG plan's note on PTY observation, merged at0c43653as152a2cf; its post-merge CI passed.Generated by Claude Code
novelKR commentedon Oct 12, 2026
2026-10-12 14:45 UTC, edited 14:50, 15:08, 15:31 and 17:20 UTC.
0.1.0-6e7e065-94d85365, built from6e7e065, this repository's DevGuard pin, so the installed launch helper carries the fix for Credential reader rejects an already-buffered secret when its thread stalls for 250 ms DevGuard#24. It replaced0.1.0-5daee5d-b3fa569eby upgrade, and status and doctor pass. It is not SLO-qualified until it is measured, about five hours with the Mac set aside, and promoted.codespacecontrol-service consumer (generationcodespace-g1, one instance, 150 mCPU, 512 MiB and 40 tasks reserved), added on the owner's approval before the measurement. After one restart, a gateway from7024f74built with--features devguardregistered with the service and left nothing charged.scripts/qualify-devguard.py, the protocol it implements (docs/cs-rg-qualification.md, English and Korean) and the decision record that keeps participationoffas the compatibility path. It is validated on the Mac before its merge request.6b9826eplus the recorded patch, DevGuard6e7e065. The next Codex pin move (0.159.x) is a separate PR.active. It merged at8fca59casea98d7f, and its post-merge CI passed.Generated by Claude Code