Update module go:github.com/d-kuro/gwq/cmd/gwq to v0.1.1#125
Merged
renovate[bot] merged 1 commit intomainfrom May 2, 2026
Merged
Update module go:github.com/d-kuro/gwq/cmd/gwq to v0.1.1#125renovate[bot] merged 1 commit intomainfrom
renovate[bot] merged 1 commit intomainfrom
Conversation
1c52e62 to
b9f220d
Compare
0d00876 to
fe2e2f1
Compare
fe2e2f1 to
b2773ae
Compare
b2773ae to
e398562
Compare
e398562 to
3e94f69
Compare
3e94f69 to
c952b98
Compare
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.
This PR contains the following updates:
0.0.13→0.1.1Release Notes
d-kuro/gwq (go:github.com/d-kuro/gwq/cmd/gwq)
v0.1.1Compare Source
Release v0.1.1
🎉 New Features
Template variables in
setup_commands(#110)Each string in
[[repository_settings]].setup_commandsis now rendered with Gotext/templatebefore being executed via POSIXsh -c. Available variables:{{.Host}}github.com(empty if no remote){{.Owner}}d-kuro(empty if no remote){{.Repository}}gwq(empty if no remote){{.Branch}}feature/new-ui(raw, not filesystem-sanitized){{.Hash}}a1b2c3d4(empty if no remote){{.Path}}{{.Path}}is new; the others are the same set thatnaming.templatealready recognized.Because each entry is shelled out through
sh -c, familiar shell features (~expansion,&&, pipes, command substitution, quoting) now work without a wrapper:Commands that reference an unknown key (e.g.
{{.Typo}}) are skipped with a[gwq] setup command template error: ...warning on stderr — they are never passed to the shell with a literal{{ ... }}in them. When the repository has no resolvable origin,{{.Branch}}and{{.Path}}still render and the remote-derived fields remain empty so commands depending only on those two variables keep working.Closes #106.
setup_commandsentries are no longer tokenized withstrings.Fieldsand passed toexec.Command; each entry is now executed withsh -c. Configs that relied on whitespace-split argv semantics, unescaped shell metacharacters, or literal*(which would have been passed verbatim before) may behave differently and should be quoted as regular shell commands.setup_commandsstrings pass throughtext/template. Commands that contain literal{{or}}must escape them using Go template syntax ({{"{{"}}), otherwise the template will fail to parse and the command will be skipped.📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.1.0...v0.1.1
v0.1.0Compare Source
Release v0.1.0
🔒 Security Fixes
Gate local
.gwq.tomlbehind a trust prompt (#108)Fixes a privilege escalation vector where any
.gwq.tomlin the current working directory was merged into global configuration on every subcommand. A hostile repository could ship a.gwq.tomlwithrepository_settings.setup_commandsand silently run arbitrary code on the nextgwq add.New behavior:
.gwq.tomlis untrusted until you explicitly accept it. The prompt appears the first time gwq sees a given(absolute path, SHA-256)pair and is persisted to~/.config/gwq/trusted_configs.json(mode0600, atomic rename, symlink-guarded), direnv-style..gwq.tomlinvalidates the decision and re-prompts.\xHHso a hostile config cannot forge the[y/N]prompt via ANSI sequences. Large files are truncated to 4 KiB.gwq cd, completion) is not corrupted..gwq.tomlis unaffected.Behavior matrix:
.gwq.toml.gwq.tomlalready trusted (same hash).gwq.tomlin TTYy/yesmerges and persistsn, Enter, EOF)To revoke trust for a previously-accepted config, delete or edit
~/.config/gwq/trusted_configs.json. A dedicatedgwq config trust/untrustsubcommand is not included in this release..gwq.tomlin the current directory is no longer merged automatically. The first time gwq sees one in an interactive shell, you must confirm at a[y/N]prompt. Users who relied on implicit merge (includingrepository_settings.setup_commands) will need to accept the prompt once per file-content version..gwq.tomlis never merged and is skipped with a stderr warning. If you depended on local config in CI, move those settings to the global~/.config/gwq/config.tomlor wire up trust explicitly by editing~/.config/gwq/trusted_configs.json.📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.20...v0.1.0
v0.0.20Compare Source
Release v0.0.20
🎉 New Features
Auto-cd on
gwq addunder shell integration (#103)When shell integration is enabled with
cd.launch_shell = false,gwq addcan now change the current shell's directory to the newly created worktree instead of spawning a nested sub-shell.Two mechanisms:
--stay(-s) now does a true cd under shell integration. Previously it always spawned a nested shell, even whencd.launch_shell = false. Now it reuses the same__GWQ_CD_SHIMpipeline asgwq cdand cds the parent shell.cd.auto_cd_on_addconfig (defaultfalse) — whentrueunder shell integration, any successfulgwq addauto-cds into the new worktree without needing-s.Configuration:
Setup (same as
gwq cd):After reloading your shell,
gwq add -s feature/x(or plaingwq add feature/xwithauto_cd_on_add = true) lands you inside the new worktree with no nested shell.Behavior details
cd.launch_shell = trueor wrapper not sourced),--staystill spawns a sub-shell as before.gwq addroutes success messages to stderr so stdout can carry the worktree path for the wrapper to consume. Non-shim stdout behavior is unchanged, sogwq add >log.txtstill captures the success lines.🐛 Bug Fixes
gwq add --expires <invalid>no longer creates a stray worktree. The duration is now parsed before the worktree is created, so invalid values fail fast.📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.19...v0.0.20
v0.0.19Compare Source
Release v0.0.19
🎉 New Features
Per-Repository Basedir Override (#100)
Added a
basedirfield torepository_settingsso individual repositories can override the globalworktree.basedir. This is useful when a specific project follows a different convention (e.g.,./worktrees/alongside the repository root) while keeping the global default for other repositories.Configuration example:
When no
repository_settingsare configured, the extra git call to resolve the main repository path is skipped entirely.🐛 Bug Fixes
👥 Contributors
📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.18...v0.0.19
v0.0.18Compare Source
Release v0.0.18
🐛 Bug Fixes
Include main worktrees, exclude submodules, preserve glob patterns (#96)
Fixed several issues with global worktree discovery and config path handling:
gwq list -gnow detects repos where.gitis a directory (main worktree), not just linked worktrees where.gitis a file.gitfiles are now detected and skipped, preventing submodule entries from appearing ingwq list -grepository_settingsentries containing glob characters (*?[) are no longer broken byfilepath.Abs()prepending the CWD👥 Contributors
📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.17...v0.0.18
v0.0.17Compare Source
Release v0.0.17
🐛 Bug Fixes
Support git URLs using SSH config aliases (#93)
Fixed
gwq addfailing when the git remote uses an SSH config alias withoutgit@prefix (e.g.,workgit:myorg/myrepo.git).isSCPLikeURL()helper to detect SCP-like syntax and converthost:pathtohttps://host/pathfor URL parsinghost:portURLs by checking if the segment after:is numeric📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.16...v0.0.17
v0.0.16Compare Source
Release v0.0.16
🐛 Bug Fixes
Fix repository_settings resolution from inside a worktree (#91)
Fixed an issue where
repository_settingscould not be resolved when running gwq from inside a worktree directory.🧹 Code Improvements
📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.15...v0.0.16
v0.0.15Compare Source
Release v0.0.15
🐛 Bug Fixes
Fix nested group URL parsing for GitLab (#87)
For GitLab repositories with nested groups (e.g.
gitlab.com/org/team/suborg/repo), theRepositoryfield was incorrectly set to the second path component instead of the actual repository name. Now uses the last path component instead.Fixes #85
📚 Documentation
👥 Contributors
📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.14...v0.0.15
v0.0.14Compare Source
Release v0.0.14
🎉 New Features
cd.launch_shellOption (#80)Added a
cd.launch_shellconfig option (default:true) that allowsgwq cdto change directory in the current shell without spawning a nested shell.Configuration:
Setup:
When
launch_shell = false, the shell wrapper function interceptsgwq cdand runscdin the current shell instead of spawning a nested shell. Supports bash, zsh, and fish. PowerShell is completion only.🧹 Code Improvements
📚 Documentation
👥 Contributors
📦 Upgrade Instructions
Homebrew:
Go:
Full Changelog: d-kuro/gwq@v0.0.13...v0.0.14
Configuration
📅 Schedule: (in timezone Asia/Tokyo)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.