Repository navigation
Terminal defaults in the repository: Claude overlay, Codex [tui] list, profile example, --login-shell; repairs of the #498 re-check - #510
Merged
seathatflowsinourveins merged 2 commits intoSep 29, 2026
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…, profile example, --login-shell; repairs of the #498 re-check Carries the terminal decision of 2026-09-28/29 in the repository so a new session or host takes it from templates and docs instead of a host edit: - adoption/templates/claude.settings.linux-wsl2.overlay.json (preferredNotifChannel + one Notification hook that rings for a needed action only), merged with tools/adoption/apply_claude_settings.py; the acceptance script also checks the bell group's count and matcher, which the merge cannot see; - [tui] notifications in the shared Codex template (needed-action kinds; decided for macOS hosts too); - examples/claude-native/windows-terminal.fragment.example.json and the recipe's Claude profile entry (own titles, quiet explicit bell, truecolor, login shell); - scripts/adoption_status.py --login-shell: which of ~/.bash_profile, ~/.bash_login, ~/.profile a Bash login shell reads first, from file metadata only, checked against the real bash over 512 startup-file combinations plus FIFO and stat-error cases; - a Windows Terminal profiles and login shell section in adoption/platforms/linux-wsl2.md, a macOS note and a bootstrap step 4 note; - the decision record's Repository-carried defaults section, the receipt wsl-terminal-defaults-20260929 and its acceptance scripts. Repairs the defects two bounded reviews of the merged login-shell change (#498) and of this change found: the reproduction probe keeps the client's temp state in a short private directory (a longer path makes the client use a fixed /tmp/cc-socks-<uid> directory) and measures the real temp dirs; the native doctor's silence about the scrub-created file follows from its documented scope; the changelog list, the startup placeholder names and the candidate pins have producing scripts or baselines; two anti-pattern rows are logged. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…pt and the changed files' hashes (hot-file protocol) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins
force-pushed
the
claude/wsl-terminal-defaults-20260929
branch
from
September 29, 2026 16:13
4858b10 to
bc925b3
Compare
seathatflowsinourveins
deleted the
claude/wsl-terminal-defaults-20260929
branch
September 29, 2026 16:36
8 tasks done
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 30, 2026
…ough the packaged Codex lane on OmniRoute), 46 findings checked, 39 repaired Nine read-only jobs (#484, #498, #510, #519; two lenses each, #519 in three parts) returned 46 findings (3 high, 34 medium, 9 low). Each was graded by an independent Claude verifier (23: 17 confirmed, 4 partly, 2 refuted) or checked by the coordinator against the code or the upstream source before any change; 39 led to a repair, 2 were refuted, 3 concerned the removed second-distro target, 2 duplicates of one convention were kept. Repairs, each with a control that fails without it: the settings-swap tool installs only over the bytes it read, refuses keys beyond matcher and hooks and prints no matcher value (24 controls, 15 mutant runs); the notification-type scan resolves the catalog's spread identifier instead of choosing an array by contents (eight reader tests, seven mutants); the login-shell check needs an answer for every command and an end marker, uses type -P and lets only the first startup file bash reads shadow ~/.profile; the digest, Codex strict-config, overlay, tmux and pty probes exit nonzero when they measured nothing (selftests, an end-to-end SIGTERM case with a negative control); the BEL counter ignores UTF-8 C1 characters like the pinned output engine; the colour counter counts SGR only; the 512-combination bash oracle compares first_read; the practice repository's sound rule is exact. Wording corrected: tmux has a sync feature (measured); the bell icon clears after about 2 s on a focused tab; the push presence rule is for a local session; a profiles.defaults key beats a fragment-only profile; a terminal's permission notification is timed by inactivity (the fixed-delay timer is the Agent SDK path, which the coordinator's own earlier correction had confused). Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins
added a commit
that referenced
this pull request
Sep 30, 2026
… (gpt-6.1-sol and gpt-6-astra-ultra through the packaged Codex lane on OmniRoute) (#532) Nine read-only jobs of the packaged Codex lane (gpt-6.1-sol, effort max, through the local OmniRoute gateway) reviewed the four merged terminal-lane pull requests (#484, #498, #510, #519) and returned 46 findings; each was graded by an independent Claude verifier or checked against the code or the upstream source before any change (39 repaired, 2 refuted, 3 removed with the second-distro target, 2 kept). A bounded re-check of those repairs (three gpt-6.1-sol jobs and one gpt-6-astra-ultra job) returned 33 more findings (19 graded: 16 confirmed, 3 partly), all repaired in a fifth round: a false recovery claim in the settings-swap tool, signal handling that still left the client behind (first signal wins, deferred cleanups, client created under a spawn flag, a mutant runner that shows each case failing without its guard), controls that could not fail, two claims without a recorded rerun. Adds the sanitized review record, a receipt with the re-check data, a correction note in the four older receipts and native reruns of the scrub probe and the PATH digest. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
[tui] notificationslist, a Windows Terminal profile fragment example, a staticscripts/adoption_status.py --login-shellcheck, and a platform-page section), and repairs six defects that a bounded Opus re-check found in the already merged login-shell change (Login shell contract, launch practice and landscape refresh (2026-09-29) #498).be97e882(origin/mainat the last rebase)lane:foundationadoption/platforms/linux-wsl2.md,adoption/templates/,examples/claude-native/,recipes/claude-native-profile.md,scripts/adoption_status.py,tests/,docs/decisions/2026-09-28-terminal-experience.md,docs/harness-defaults.md(two anti-pattern rows),evidence/receipts/,evidence/artifacts/login-shell-contract-20260929/,evidence/artifacts/wsl-terminal-defaults-20260929/, andmanifests/evidence.json(hot-file protocol: main's copy, the two receipt entries and the hashes of the changed files).scripts/release_due.pyalready lists earlier unreleased paths). The platform page says so in its own words ("added afterv2026.09.26.2").SOTA sources
bash-5.3.tar.gz, ftp.gnu.org)shell.cexecute_profile_fileL1116-1127 andbuiltins/evalfile.cmaybe_execute_file/evalfile_internal(a missing file returns 0, an empty file, a directory and any other open error return nonzero, so the first file that exists ends the search); GNU Bash Reference Manual, "Bash Startup Files". The new static check is verified against the installed bash 5.2.21 itself (343 combinations), since bash offers no query API.%LOCALAPPDATA%\Microsoft\Windows Terminal\Fragments\{app-name}\, a profileguidis optional) and advanced profile settings (bellStyle,closeOnExit,suppressApplicationTitle), both fetched 2026-09-29;microsoft/terminalv1.24.11911.0src/cascadia/TerminalSettingsModel/Profile.cppL302-317 (_GenerateGuidForProfile) andCascadiaSettingsSerialization.cppL1038-1041 (a fragment profile with no GUID gets a stable one from its name and source).preferredNotifChannelnotifications_disabled), hooks reference (terminalSequence, Notification types), environment variables (CLAUDE_CODE_TMPDIR,CLAUDE_CODE_SUBPROCESS_ENV_SCRUB), errors page (stale sandbox mask files), CHANGELOG entries 2.1.69, 2.1.83, 2.1.98, 2.1.141 and 2.1.257, and the installed binary's startup code (read bystartup_placeholder_names.py).openai/codexrust-v0.157.1(installed) andrust-v0.155.1(the macOS pin):codex-rs/tui/src/chatwidget/notifications.rstype_name()for the notification kinds; the installedcodex --strict-configfor what a configuration accepts (measured).anthropics/claude-codeissues #76236 and #78072, read only; nothing was filed or commented.tools/adoption/apply_claude_settings.py, the profiles use Windows Terminal's documented fragment mechanism, and the--login-shellflag extends the existingscripts/adoption_status.pybecause no upstream equivalent exists.Evidence-class table
native_proven(the repository's merge tool,--dry-run, plus a matcher check the merge cannot make)wsl-terminal-defaults-20260929data.overlay_merge_against_live_settings;overlay_noop_check.py--strict-config; a wrong type and an unknown top-level key are refused, an unknown key inside[tui]is notnative_proven(Codex 0.157.1; the run stops at authentication)data.codex_strict_config;codex_tui_strict_check.pynative_proven(bash 5.2.21, control arm)data.login_shell_model_against_real_bash;login_shell_bash_truth.py;LoginShellTestsnative_proven(before and after, values only)data.second_distronative_proven(real host) plussynthetic(mutants)data.practice_repository(the practice repository has no remote)/tmpand/tmp/claude-<uid>gained no top-level entry), and the nativeclaude doctorwarning can fire but never names the scrub-created filenative_proven(installed client, throwaway homes, positive control)login-shell-contract-20260929data.isolated_reproductionlocal_integration(JSON against tests with negative controls; not loaded into Windows Terminal)tests/test_windows_terminal_defaults.pylocal_integrationLocal commands run
Decision record
docs/decisions/2026-09-28-terminal-experience.md: the new section "Repository-carried defaults and the second distro's profiles (2026-09-29)" (decisions with rejected alternatives and overturn conditions) and "Corrections after the bounded re-check (2026-09-29)".Host evidence
This PR adds no file under
evidence/hosts/.python3 scripts/host_receipts.py validateis part ofscripts/validate.py, which passes.platform_statuschange is made from a host receipt alone.Review
changes-needed; reviewer B (every upstream-behaviour claim against its primary source) returned 8 (3 medium, 5 low) andchanges-needed. All were accepted and repaired. The ones that changed behaviour or evidence:/tmpwhen the caller'sTMPDIRmade its private path too long for the client's messaging socket (the client then falls back to a fixed/tmp/cc-socks-<uid>directory): the scratch path is now short and guarded, and a control probe shows both cases;[tui] notificationslist also reaches macOS hosts: decided and documented (decision row, macOS page, bootstrap step 4);--login-shell: an unusable~/.profileis reported as not read, an unresolvableHOMEis no longer a traceback, the special-file wording was wrong (a device reads as empty, a FIFO blocks), and ELOOP, ENOTDIR, EACCES,/dev/nulland FIFO cases were added against real bash;changes-needed, all low or medium, none high. All were verified against source and repaired; each repair carries its own check:<dir>/cc-socks/<pid>.sock(about 81 bytes of private path with a 7-digit pid; the control used 99), withXDG_RUNTIME_DIRleft unset; the probes now report the shared file and refuse to interpret a run when a fallback directory already existed;--login-shellfalls back to/forHOMEthe way bash does; three mutants the review found alive (cwd instead of the passwd home,profile_readonly for content, no root fallback) are now killed by tests, shown by rerunning each mutant;request_user_inputquestions notify asplan-mode-promptat both Codex tags (tool_requests.rsL449-458), so no notification the macOS pin emits is lost; a profile'senvironmentreplacesprofiles.defaults.environment; the.env*working-directory placeholder list is named.There is no third round. Residuals are in the receipts' limitations: no Windows Terminal tab or bell was observed, nothing was run on a Mac, and the second distro's open sessions were not observed picking the overlay up.
429 Too Many Requestswith every one of its six weekly windows at 99-100%. That is a retained failure of the lane, not a skipped review; the user was notified. The round runs on the merged commit when a login or the reset restores the lane.Checklist
permissions: contents: read(no workflow is changed).🤖 Generated with Claude Code