Conversation
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.
adds
cookbook/, a collection of installableagtermctlworkflows, plus the repo's firstCONTRIBUTING.md. Asked for in #293, where olfway closed with "a small repository with scripts like these might be useful as a collection of practical recipes". #71 was already that, in the wrong place.no Swift, no compiled code, no tests. Docs, shell recipes and one CI job.
Seven recipes
each is a directory with a six-heading README (What it does / Requirements / Setup / Usage / How it works / Limits) and its scripts.
cookbook/README.mdindexes them;cookbook/CONTRIBUTING.mdcovers submissions.Recipes are pinned snapshots, not a keep-in-sync surface. Each names the minimum version it needs and is fixed reactively when someone reports breakage. A control-API change carries no obligation to sweep
cookbook/, andCLAUDE.mdnow says so explicitly, so nobody adds it as a sixth surface by reflex.CI: a
cookbookpaths filter and job on ubuntu, checking index consistency both directions, the six headings, kebab-case names, shebangs,shellcheckover.sh, andzsh -nover.zsh. Recipe-only changes still run zero Swift jobs. Editingci.ymlruns the macOS jobs once, which is why they fire on this PR.Root
CONTRIBUTING.mdfollows revdiff's structure with ralphex's AI-assisted section, retargeted at Swift 6, host-freeagtermCore, and swiftlint--strict. It adds the question those two don't need: does this belong in agterm or upstream in ghostty.Defects found and fixed while building this, nine across three review passes. Four are in the scripts as published in #293, so that thread needs a correction either way:
agt-park.shwith no argument matched every workspace and deleted the windowagt-park.shoverwrote a good snapshot with[]when nothing matched, silently, after the shells were already goneagt-win.sherrored on every closed window in the bundleagt-win.shwith a name matching nothing parked everything and raised nothingfive more were found here. The replay claimed captured argv was absolute, when it is argv as typed, so a Homebrew binary died with 127; it now goes through
zsh -lc. Snapshots were world-readable while holding full argv, secrets included, so the script setsumask 077.codex-resume.zsh's rollout guard never fired, since[[ … && $#s ]]is a string test in zsh. Thecookbookfilter could not see its own workflow. The shellcheck step ran without pipefail.Not verified by running. No recipe was executed at any point, since several delete workspaces and close shells and the only agterm on this machine is the live one. Every command, flag,
jqpath and version pin was checked againstControlProtocol,agtermctlKit, the bundled reference andCHANGELOG.mdinstead. The one thing that needed a live answer, whether--commandsurvives shell quoting, was settled on a throwaway isolated instance: it runs as/bin/bash --noprofile --norc -c 'exec -l <value>', so quoting applies.@ssgreg, @brusnigin: your functions from #71 are in here with credit and a link back. Say the word if you'd rather they weren't.