Repository navigation
Terminal profiles: two picker resume profiles in the example fragment, landscape refresh after WSL 3.0.1 - #604
Conversation
…, and a landscape refresh after the WSL 3.0.1 update The owner asked for the terminal profiles, Codex side included, to be brought in line with current upstream. The example fragment gains WSL - Codex - resume (`exec codex resume`) and WSL - Claude - resume (`exec claude --resume`): each opens its client's own session picker, sits right after the profile it copies and differs from it only in name, command line and tab title. The default profiles still start a new session. The decision record gains "Update 2026-10-02": versions checked (Windows Terminal 1.24.11911.0, Claude Code 2.1.287, Codex 0.159.3 against 0.160.0, WSL 3.0.1), what stays unchanged with its source, the toast watch (the tag v1.26.2734.0 carries the notification flag and OSC 777; no release ships it, so no overturn condition is met), the options considered and not adopted with their overturn conditions, one host's read-back of what Windows Terminal wrote on reload, and what is not established. Tests: tests/test_windows_terminal_defaults.py holds for five profiles (placement, copy keys, commands, barred session options, COLORTERM on both Claude profiles) with negative controls on in-memory copies; 42 tests pass. Built by a Sonnet 5.5 worker from a written contract; reviewed by the coordinator, who added the host observation and spot-checked 13 line-anchored citations against upstream at the named tags. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…les-refresh-20261002
…its, three source attributions, two test gaps) The GPT-6.1 Sol read of 2af4f95 asked for changes; each point was re-read at its source before the edit. - The new-distribution recipe's F10 renames all five example profiles (it said three, which would have left the two resume profiles colliding with the workstation's in the same fragment folder). - The record no longer says both pickers create nothing until a row is chosen: in Codex's picker Esc with an empty search starts a new session (resume_picker.rs L1248-L1250). It limits the empty-history behaviour to Codex, keeps Claude Code's as not established, narrows the changelog conclusion (terminal tab title, with the three other title entries and a third resume entry named), and qualifies the shell-type equivalence to a Bash account. - Attributions: the permission request raises no desktop or BEL notification (it does signal the ambient pet); ConptyConnection.cpp L547 also treats STILL_ACTIVE as closed; the buffer file is written in TerminalPaneContent.cpp L145-L156, not at TerminalPage.cpp L2244. - Tests: the copy rule now tells a missing key from a null one, and every example profile must keep hidden false; three new negative controls (both Codex profiles hidden, a profile without the key, a null key on one side). The earlier helper returned no problem for the null key. 42 tests pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Cross-family read of changes needed before merge should-fix — adoption/platforms/linux-wsl2-new-distro.md:630. The operative installation instructions still say to rename “three profiles” and list only Shell, Codex and Claude. Following those instructions leaves both resume profiles with their original names in the same fragment folder, so their identities collide with the first distro’s profiles. Verified with should-fix — docs/decisions/2026-09-28-terminal-experience.md:608. “Both clients … create nothing until a row is chosen” is false for Codex. With an empty search query, Escape starts a new session without selecting a row. Verified in should-fix — docs/decisions/2026-09-28-terminal-experience.md:620. The conclusion that the picker “neither collides nor fails on an empty history” exceeds the evidence presented for both clients. Line 637 expressly says Claude’s empty-history behavior was neither established by documentation nor run. Line 610 also acknowledges that choosing an already-open Claude session can interleave transcripts. Verified by reading those three sentences together. The mirrored Codex code supports its own empty-list behavior ( should-fix — docs/decisions/2026-09-28-terminal-experience.md:581. The changelog conclusion is broader than the entries support. There are title-related changes, including session-title request handling at L37, title-generation model fallback at L274, and the VS Code tab-name fix at L330. Also, “Two concern the new profiles” omits L256, which fixes compacting or resuming sessions failing, losing their history, or crashing on malformed stored fields. Verified by reading should-fix — docs/decisions/2026-09-28-terminal-experience.md:621. “The startup files are the same” requires the account’s default shell to be the same Bash executable that the fragment selects. The WSL source does not guarantee that. Verified in note — docs/decisions/2026-09-28-terminal-experience.md:587. “Raises no notification of any kind” is too broad. The cited handler has no desktop-notification note — docs/decisions/2026-09-28-terminal-experience.md:618. The nonzero-exit claim omits the note — docs/decisions/2026-09-28-terminal-experience.md:616. The literal attribution “ note — tests/test_windows_terminal_defaults.py:122. Verified by importing the module with Smallest repair: compare the dictionaries after removing A separate functional defect the tests would miss is setting note — docs/decisions/2026-09-28-terminal-experience.md:616. The required citation audit follows. Paths are relative to each mirrored repository; Codex paths include Every line-anchored citation in “Considered and not adopted”:
Every line-anchored citation in “Host observation,” all in Terminal
Additional citations checked across “Confirmed unchanged,” “The toast watch,” and “Decision: two resume profiles”:
The platform page’s additional serialization citations also match: Terminal note — docs/decisions/2026-09-28-terminal-experience.md:583. Both requested identity checks match the record. No repair is indicated. For each Codex file, I ran
For WSL I ran: rtk cmp -s \
<(rtk sed -n '1553,1821p' /var/tmp/c5-terminal/mirror/WSL@2.7.14/src/windows/common/WslClient.cpp) \
<(rtk sed -n '1573,1841p' /var/tmp/c5-terminal/mirror/WSL@3.0.1/src/windows/common/WslClient.cpp)It returned exit 0, with no output. A separate raw-byte comparison using The schema comparison also returned exactly four added leaves under note — examples/claude-native/windows-terminal.fragment.example.json:25 and tests/test_windows_terminal_defaults.py:432. The current resume profiles have identical key sets to their defaults, with differences limited to Direct module import and in-memory calls verified all 55 new negative controls: each raised the named assertion for the intended placement, membership, GUID, copy, title, bell, exit, command, environment or forbidden-flag rule. The five existing profile controls also raised the expected policy assertion. The direct flag-spelling tests passed. Running the fragment and documentation classes through direct import returned: note — docs/decisions/2026-09-28-terminal-experience.md:557. The reversal is stated plainly: the owner’s direction replaces the earlier decision despite its measured-cost overturn condition not being met. The historical section was preserved exactly. Using No repair is indicated. note — docs/decisions/2026-09-28-terminal-experience.md:642, adoption/platforms/linux-wsl2.md:221, and recipes/claude-native-profile.md:43. I found no sentence in the added text or edited recipe that expressly presents source reading as observed client-session execution, or observed execution as source-only evidence. The stronger-than-source conclusions are identified above. “Host observation” stays within its stated file-readback scope: it describes saved entries, timestamps, generated GUID state and a file-based profile check, then identifies the explanatory source paths. It expressly says no tab was opened. That wording does not claim a tested picker, audible bell, focus transition or rendered menu. I could not independently confirm the workstation observations. No evidence-class wording repair is otherwise indicated. What I could not check, and why:
|
|
Repaired head
Not repaired because not checkable by the reviewer, and unchanged: the documentation-page quotes, the release metadata and the workstation observations (the read lists them under what it could not check). A re-read of this small delta is not planned: every change is a narrowing of a claim to what its cited source says, or a stricter test. |
…its F10 wording moves to pull request 593
The recipe file's hash is frozen in the convergence record that pull request 593 owns
(blueprints/convergence-practice/wsl-new-distro-image-20261001/experiment.json), so the one-sentence F10 change made
hosted validation fail here ("frozen_inputs.sources[0]: SHA-256 mismatch"). The file is back at main's copy. Pull
request 593 changes F10 to rename every profile of the example without naming a count, which holds for the example
with three profiles and with five.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Head The previous head failed hosted validation: the new-distribution recipe's hash is frozen in the convergence record that #593 owns ( My branch helper ran |
Scope
exec codex resume,exec claude --resume), and the terminal decision record gains a dated landscape refresh after the WSL 3.0.1 update. The default profiles are unchanged and still start a new session.49a4260029244e3e20d8b2dd3ada00af7983a3c9lane:foundationexamples/claude-native/windows-terminal.fragment.example.json,tests/test_windows_terminal_defaults.py,adoption/platforms/linux-wsl2.md,docs/decisions/2026-09-28-terminal-experience.md,recipes/claude-native-profile.md(one clause),manifests/evidence.json(re-registration by the hot-file protocol).SOTA sources
Every claim in the record's new section carries its own line-anchored source; the ones the change rests on:
/resumeinside a session, orclaude --resumewith no arguments, to open the interactive session picker");anthropics/claude-codeCHANGELOG.mdatv2.1.287.openai/codexatrust-v0.159.3(commit01fc69f4),codex-rs/cli/src/main.rsL2576 andcodex-rs/tui/src/resume_picker.rsL674-L687; compared withrust-v0.160.0(commita956835d).microsoft/terminalatv1.24.11911.0(latest stable) for the bell handler, titles, the profileenvironmentkey, the settings loader andcloseOnExit;v1.25.1912.0(Preview) and the tagv1.26.2734.0for the toast watch.microsoft/WSLat3.0.1,src/windows/common/WslClient.cppL1644-L1649 andsrc/linux/init/init.cppL708-L735.Evidence-class table
syntheticpython3 -B -m unittest tests.test_windows_terminal_defaults(42 tests, negative controls on in-memory copies)source_reviewstate.jsonnative_provenon one host, read from files onlyLocal commands run
Decision record
docs/decisions/2026-09-28-terminal-experience.md, section "Update 2026-10-02: landscape refresh after the WSL 3.0.1 update, and two resume profiles". It reverses the "No resume profile" row of the 2026-09-29 update on the owner's direction (no cost was measured), and names an overturn condition for each option it does not adopt.Host evidence
Not relevant: no file under
evidence/hosts/changes.Checklist
permissions: contents: read(none changed).Built by a Sonnet 5.5 worker from a written contract and reviewed on Opus. Cross-family read: GPT-6.1 Sol at max effort read
2af4f953with a local mirror of the cited upstream trees (comment 5948935862) and asked for changes; every point is repaired (comment 5948936255). The recipe's F10 wording, which the read also named, is changed in #593 because that file's hash is frozen in a record #593 owns (comment 5949290896).🤖 Generated with Claude Code