Commit Graph
100 Commits
Author SHA1 Message Date
Julian lechnerandClaude Opus 5.5 85221f6c97 docs(config): document Claude subagent limits
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:45 +02:00
Julian lechnerandClaude Opus 5.5 a30440f55d feat(claude): limit concurrent subagents and spawn depth
Set CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS=5 and
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 so Claude matches the Codex agent
limits and subagents cannot start further subagents.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 11:01:45 +02:00
Julian lechnerandClaude Opus 5.5 37d3475b92 docs(scripts): list client smoke test
CI / CI configuration security checks (push) Successful in 5s
CI / Capabilities and shell quality (push) Successful in 14s
CI / Python tests and compilation (push) Successful in 18s
CI / Build and inspect generated packages (push) Successful in 11s
CI / PowerShell tests on Ubuntu (push) Successful in 50s
CI / Installed client configuration smoke tests (push) Successful in 48s
CI / Bash integration and installation guards (push) Successful in 58s
CI / Qwen retrieval integration (push) Successful in 14m55s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:24 +02:00
Julian lechnerandClaude Opus 5.5 cd2f4fa93e test(clients): add behavioral client smoke tests
Install a generated package into a temporary home with foreign settings, then
ask the real Claude and Codex CLIs which skills, agents, and hooks they
discover. No model request completes. The Claude skill check currently fails
because Claude does not discover nested package skills.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:23 +02:00
Julian lechnerandClaude Opus 5.5 e2394ca1d1 fix(install): keep foreign Claude hooks in mixed groups
Remove only setup-owned hook entries from a hook group and keep foreign
entries with their group options, such as matcher.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:23 +02:00
Julian lechnerandClaude Opus 5.5 857720bcfd fix(install): exchange install option content through UTF-8 files
Windows PowerShell pipes re-encode text by console code page: under code page
65001 a BOM broke the config.toml merge, and otherwise non-ASCII characters
became question marks. Pass managed and merged content through files, and
decode piped input as utf-8-sig.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:23:14 +02:00
Julian lechnerandClaude Opus 5.5 bed90fee2d docs(rules): align technology comment rules
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:50 +02:00
Julian lechnerandClaude Opus 5.5 996233c663 docs(rules): unify documentation update rule
Update directly affected documentation and comments; add other documentation
only for a concrete need. The implementer and definition of done now defer to
the general rule instead of requiring explicit approval.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:50 +02:00
Julian lechnerandClaude Opus 5.5 f63770efbf docs(config): describe sandbox network and Context7 permissions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:42 +02:00
Julian lechnerandClaude Opus 5.5 3067d82e1a feat(claude): allow Context7 domain in enabled sandbox
Where the Claude sandbox is enabled, permit network access to
mcp.context7.com only, and validate that exact shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:42 +02:00
Julian lechnerandClaude Opus 5.5 d5c29cb1b6 feat(claude): allow Context7 calls through MCPorter
Add a shell-specific permission for `mcporter call context7.*` so Claude can
query Context7 through MCPorter without a permission prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:35 +02:00
Julian lechnerandClaude Opus 5.5 f76e13fc18 feat(codex): allow network access in workspace sandbox
Enable sandbox_workspace_write.network_access so MCPorter calls such as
Context7 run without an approval round trip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:07 +02:00
Julian lechnerandClaude Opus 5.5 736b1d1d9e docs(skills): note Superpowers ownership of general workflows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:22:07 +02:00
Julian lechnerandClaude Opus 5.5 e237d07441 refactor(skills): remove workflows covered by Superpowers
Drop the debugging, implementation-planner, code-review, and
regression-verification skills so Superpowers owns these triggers without
competing descriptions. Focused domain skills remain.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:21:59 +02:00
Julian lechnerandClaude Opus 5.5 b4aa484f1a docs(config): document unmanaged TOML table retention
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:21:49 +02:00
Julian lechnerandClaude Opus 5.5 1a6cc4d46f fix(config): preserve unmanaged Codex TOML tables
Keep foreign tables such as mcp_servers and model_providers during config
synchronization instead of dropping them; only setup-owned keys are replaced.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 10:21:41 +02:00
Julian lechner 1cba8850f9 docs(scripts): update command and benchmark guidance
CI / Capabilities and shell quality (push) Successful in 14s
CI / Python tests and compilation (push) Successful in 18s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 10s
CI / PowerShell tests on Ubuntu (push) Successful in 51s
CI / Bash integration and installation guards (push) Successful in 53s
CI / Installed client configuration smoke tests (push) Successful in 15s
CI / Qwen retrieval integration (push) Successful in 14m25s
2026-09-30 17:12:12 +02:00
Julian lechner 467a25f002 docs(config): describe current sync behavior 2026-09-30 17:11:51 +02:00
Julian lechner 260256fe6c docs(skills): document reduced catalog and budgets 2026-09-30 17:11:30 +02:00
Julian lechner 831d55b264 fix(doctor): expose skill scan errors 2026-09-30 17:10:30 +02:00
Julian lechner f7eec43122 test(skills): verify reduced catalog handling 2026-09-30 17:10:08 +02:00
Julian lechner 05663197f7 feat(customizations): add removal commands 2026-09-30 17:08:59 +02:00
Julian lechner 29c0e98272 fix(retrieval): normalize vector result IDs 2026-09-30 17:08:22 +02:00
Julian lechner 9bc3f253c1 fix(retrieval): validate owned index data 2026-09-30 17:08:03 +02:00
Julian lechner 8e4aa0523e fix(install): keep skill backups undiscoverable 2026-09-30 17:07:33 +02:00
Julian lechner 0a8a54bf99 feat(rules-java): expand language guidance 2026-09-30 17:07:05 +02:00
Julian lechner 30a6a4e51d chore(skills): prune marketing catalog 2026-09-30 17:06:35 +02:00
Julian lechner 6361e81915 fix(plugins): update installed QMD without reinstalling 2026-09-30 12:44:35 +02:00
Julian lechner 756b8fe59e fix(retrieval): accept generated Python bytecode cache
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 25s
CI / CI configuration security checks (push) Successful in 5s
CI / Build and inspect generated packages (push) Successful in 14s
CI / PowerShell tests on Ubuntu (push) Successful in 1m14s
CI / Bash integration and installation guards (push) Successful in 1m38s
CI / Installed client configuration smoke tests (push) Successful in 14s
CI / Qwen retrieval integration (push) Successful in 14m18s
2026-09-30 11:41:45 +02:00
Julian lechner 280292d72e fix(plugins): detect Context7 managed by MCPorter
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 13s
CI / PowerShell tests on Ubuntu (push) Successful in 1m10s
CI / Bash integration and installation guards (push) Successful in 1m38s
CI / Installed client configuration smoke tests (push) Successful in 13s
CI / Qwen retrieval integration (push) Successful in 14m24s
2026-09-30 11:32:27 +02:00
Julian lechner 728d72312f test(packages): count sandbox properties correctly
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 14s
CI / PowerShell tests on Ubuntu (push) Successful in 1m10s
CI / Bash integration and installation guards (push) Successful in 1m36s
CI / Installed client configuration smoke tests (push) Successful in 14s
CI / Qwen retrieval integration (push) Successful in 14m23s
2026-09-30 11:04:22 +02:00
Julian lechner 2d43055a9c test(packages): check Claude sandbox by platform
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 11s
CI / PowerShell tests on Ubuntu (push) Failing after 1m11s
CI / Bash integration and installation guards (push) Successful in 1m38s
CI / Installed client configuration smoke tests (push) Successful in 28s
CI / Qwen retrieval integration (push) Canceled after 5m19s
2026-09-30 10:56:02 +02:00
Julian lechner fec3f75d4c fix(config): drop unmanaged TOML tables
CI / Capabilities and shell quality (push) Successful in 13s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 14s
CI / PowerShell tests on Ubuntu (push) Failing after 1m11s
CI / Bash integration and installation guards (push) Failing after 15s
CI / Installed client configuration smoke tests (push) Successful in 14s
CI / Qwen retrieval integration (push) Canceled after 7m5s
2026-09-30 10:41:55 +02:00
Julian lechner 6ab92ec30e fix(config): preserve TOML table indentation
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 22s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 13s
CI / PowerShell tests on Ubuntu (push) Failing after 55s
CI / Bash integration and installation guards (push) Failing after 16s
CI / Installed client configuration smoke tests (push) Successful in 14s
CI / Qwen retrieval integration (push) Canceled after 6m14s
2026-09-30 10:33:51 +02:00
Julian lechner 1b13bed418 test(retrieval): initialize temporary repositories
CI / Capabilities and shell quality (push) Successful in 13s
CI / Python tests and compilation (push) Successful in 48s
CI / CI configuration security checks (push) Successful in 3s
CI / Build and inspect generated packages (push) Successful in 13s
CI / PowerShell tests on Ubuntu (push) Failing after 55s
CI / Bash integration and installation guards (push) Failing after 17s
CI / Installed client configuration smoke tests (push) Successful in 35s
CI / Qwen retrieval integration (push) Canceled after 6m44s
2026-09-30 10:26:37 +02:00
Julian lechner a67c34f78d fix(retrieval): honor ignore rules and scale search
CI / Capabilities and shell quality (push) Successful in 23s
CI / PowerShell tests on Ubuntu (push) Successful in 12s
CI / Python tests and compilation (push) Failing after 35s
CI / Build and inspect generated packages (push) Skipped
CI / Bash integration and installation guards (push) Skipped
CI / Installed client configuration smoke tests (push) Skipped
CI / Qwen retrieval integration (push) Skipped
CI / CI configuration security checks (push) Successful in 3s
2026-09-30 09:56:57 +02:00
Julian lechner 24f4d8e1e5 feat(prompt-budget): bundle startup context estimates 2026-09-30 09:43:51 +02:00
Julian lechner d71db16198 docs(security): add focused rule index 2026-09-30 09:38:41 +02:00
Julian lechner 066cbb7037 fix(prompt-budget): count all startup skill metadata 2026-09-30 09:38:41 +02:00
Julian lechner 17e8be13b7 fix(update): retain custom config keys 2026-09-30 09:27:48 +02:00
Julian lechner 71daa05071 feat(skills): add marketing skills collection 2026-09-30 09:24:23 +02:00
Julian lechner b3a19860b4 docs(azure-devops): honor explicit write requests 2026-09-30 09:23:52 +02:00
Julian lechner dba4d28403 docs: restrict maintenance work to repository 2026-09-30 09:23:52 +02:00
Julian lechner 5c1795a601 docs(security): define baseline and testing scope 2026-09-30 09:23:52 +02:00
Julian lechner da11841565 fix(doctor): detect underscored placeholders 2026-09-30 09:23:39 +02:00
Julian lechner 060d3724d6 fix(claude): apply shell rules and platform sandbox 2026-09-30 09:23:39 +02:00
Julian lechner 3973ed48f3 fix(update): preserve unmanaged client settings 2026-09-30 09:22:55 +02:00
Julian lechner 097cec41c2 docs(csharp): require null-safe code 2026-09-30 08:39:23 +02:00
Julian lechner 36f58626d8 Normalize doctor.ps1 line endings
CI / Capabilities and shell quality (push) Successful in 12s
CI / Python tests and compilation (push) Successful in 14s
CI / PowerShell tests on Ubuntu (push) Successful in 42s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 10s
CI / Qwen retrieval integration (push) Successful in 14m24s
CI / Bash integration and installation guards (push) Successful in 45s
CI / Installed client configuration smoke tests (push) Successful in 13s
2026-09-28 09:23:55 +02:00
Julian lechner 0befbbc07c fix(extensions): share global packages by client
CI / Capabilities and shell quality (push) Failing after 27s
CI / Python tests and compilation (push) Failing after 32s
CI / Build and inspect generated packages (push) Skipped
CI / Bash integration and installation guards (push) Skipped
CI / Installed client configuration smoke tests (push) Skipped
CI / Qwen retrieval integration (push) Skipped
CI / PowerShell tests on Ubuntu (push) Failing after 33s
CI / CI configuration security checks (push) Successful in 5s
2026-09-24 17:10:03 +02:00
Julian lechner 5c1b8fedba fix(extensions): retain servers for active clients 2026-09-24 17:10:03 +02:00
Julian lechner eeb437e234 fix(extensions): preserve existing global packages 2026-09-24 17:10:02 +02:00
Julian lechner 46d07e578d fix(extensions): update owned MCPorter 2026-09-24 17:09:32 +02:00
Julian lechner 5bd23bafc3 fix(extensions): restore missing owned resources 2026-09-24 17:09:04 +02:00
Julian lechner 2d88f7d9a0 fix(extensions): preserve existing MCP servers 2026-09-24 17:08:31 +02:00
Julian lechner c27e32f5b2 fix(retrieval): secure daemon IPC messages 2026-09-24 17:08:31 +02:00
Julian lechner c9612cac42 fix(retrieval): guard owned runtime files and links 2026-09-24 17:08:31 +02:00
Julian lechner 438b1656ed fix(manifest): reject unsafe paths and links 2026-09-24 17:08:31 +02:00
Julian lechner 7186bd06ca fix(uninstall): reconcile extension-only installs 2026-09-24 17:08:31 +02:00
Julian lechner d83ad0ec12 fix(menu): preview current update selection 2026-09-24 17:08:31 +02:00
Julian lechner 34adfa6b3e fix(menu): check both clients in update selection 2026-09-24 17:08:31 +02:00
Julian lechner 0fc5725ec4 fix(menu): parse Bash plugin inventory safely 2026-09-24 17:08:31 +02:00
Julian lechner ac861c047d fix(skills): download recorded commit archive 2026-09-24 17:08:30 +02:00
Julian lechner f3c938910d fix(retrieval): keep active runtime after benchmark 2026-09-24 17:08:30 +02:00
Julian lechner 046cf48452 fix(retrieval): write ownership state atomically 2026-09-24 17:08:30 +02:00
Julian lechner 5903e18597 fix(context): include source files in Bash cache key 2026-09-24 17:08:30 +02:00
Julian lechner 62513b6858 fix(manifest): preserve substituted file newlines 2026-09-24 17:08:30 +02:00
Julian lechner db499bff81 fix(manifest): preserve spaces in Bash paths 2026-09-24 17:08:30 +02:00
Julian lechner cbd30b078b fix(retrieval): keep Bash auto result status 2026-09-24 17:08:30 +02:00
Julian lechner 5f1a7b4d4f docs: explain Context7 routing choices 2026-09-24 17:08:30 +02:00
Julian lechner 68acfa5a6f docs(rules): allow explicitly selected native MCP 2026-09-24 17:08:29 +02:00
Julian lechner 0e733f8b29 docs(rules): allow minor reversible UI choices 2026-09-24 17:04:19 +02:00
Julian lechner 1faac1ed47 fix(config): allow stated prompt budget headroom 2026-09-24 17:04:19 +02:00
Julian lechner b268677572 fix(setup): make jq optional 2026-09-24 17:04:19 +02:00
Julian lechner 6290d8e4ab fix(doctor): check Bash Stop hook registration 2026-09-24 17:04:19 +02:00
Julian lechner ce1056ea66 docs: describe optional safety checks accurately 2026-09-24 17:04:19 +02:00
Julian lechner 376492cb07 docs: align Claude status line example 2026-09-24 17:04:18 +02:00
Julian lechner db20b2dc2a docs: correct QMD ownership behavior 2026-09-24 17:04:18 +02:00
Julian lechner 13eefe3309 fix(hooks): ignore optional hook failures
CI / Capabilities and shell quality (push) Successful in 11s
CI / Python tests and compilation (push) Successful in 11s
CI / PowerShell tests on Ubuntu (push) Successful in 27s
CI / CI configuration security checks (push) Successful in 4s
CI / Build and inspect generated packages (push) Successful in 6s
CI / Qwen retrieval integration (push) Successful in 14m17s
CI / Bash integration and installation guards (push) Successful in 16s
CI / Installed client configuration smoke tests (push) Successful in 13s
2026-09-18 16:17:21 +02:00
Julian lechner cacb41fe28 fix(claude): disable unavailable Windows sandbox 2026-09-18 16:10:17 +02:00
Julian lechnerandClaude Sonnet 5 793eee5b61 docs(readme): document y/N uninstall confirmation prompt
CI / linux (push) Successful in 6s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 10:27:50 +02:00
Julian lechnerandClaude Sonnet 5 f2910df050 feat(uninstall): accept y/N confirmation in powershell script
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 10:27:45 +02:00
Julian lechnerandClaude Sonnet 5 cacb3e3bf1 feat(uninstall): accept y/N confirmation in bash script
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 10:27:41 +02:00
Julian lechnerandClaude Sonnet 5 ec81d8db9b docs(retrieval): document the background daemon and the max-files limit
CI / linux (push) Successful in 6s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:36:08 +02:00
Julian lechnerandClaude Sonnet 5 9ad793289d feat(retrieval): add a background daemon to avoid reloading models per query
Each server.py search/rebuild invocation was a fresh process that reloaded
the embedding and reranker models from disk before answering a single
query. Add an optional daemon (server.py daemon) that keeps both models
resident in memory and serves repeated queries, across repository roots,
over a local socket/pipe.

search and rebuild now try the daemon first, spawn one on a cache miss
(guarded by an exclusive lock file to avoid duplicate spawns), and fall
back to the original one-shot in-process worker if the daemon cannot be
reached or started, so behavior is unchanged when the daemon is
unavailable. The daemon exits on its own after 30 minutes of inactivity.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:36:02 +02:00
Julian lechnerandClaude Sonnet 5 208213c1c7 feat(retrieval): pin model revisions and share encoder/reranker instances
Pin the Qwen embedding/reranker models to specific commit revisions (and
sentence-transformers to the exact version already in use) so index
builds are reproducible instead of floating on each model's main branch.

Also move the encoder and reranker instances to module-level singletons
shared by every Index, instead of one pair per instance, so a process
serving multiple repository roots only loads each model once.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:35:46 +02:00
Julian lechnerandClaude Sonnet 5 96a1175e20 feat(retrieval): make the file-scan limit configurable and warn on it
Repositories with more than 2000 indexable files silently lost the
remainder during indexing. Make the cap configurable via
SEMANTIC_RETRIEVAL_MAX_FILES (default unchanged) and print an explicit
stderr warning naming the repository when it is reached, instead of
truncating without any signal.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:35:38 +02:00
Julian lechnerandClaude Sonnet 5 c651b19893 test(build): update reviewer tool assertion for shell-specific tools (Bash)
Mirror the PowerShell test's shell-specific reviewer tools assertion.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:32:14 +02:00
Julian lechnerandClaude Sonnet 5 244f641088 test(build): update reviewer tool assertion for shell-specific tools
The reviewer agent's tools field now resolves to Bash or PowerShell
depending on the package, so assert against the shell-specific value
instead of the old invalid Read,Diff,Search profile.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:32:08 +02:00
Julian lechnerandClaude Sonnet 5 92d98d74cf test(build): cover unknown Claude tool name in Bash build validation
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:32:00 +02:00
Julian lechnerandClaude Sonnet 5 5b768e0aed test(build): cover unknown Claude tool name in PowerShell build validation
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:31:54 +02:00
Julian lechnerandClaude Sonnet 5 99c345f551 feat(build): fail configuration validation on unknown Claude tool names
Check every generated agent's tools frontmatter against the set of real
Claude Code tool names, so an unrecognized name fails validate-config.py
(and therefore the build) instead of silently shipping a broken agent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:31:48 +02:00
Julian lechnerandClaude Sonnet 5 4da6950062 feat(build): resolve shell-specific agent tool placeholder in Bash build
Mirror the PowerShell build's __SHELL__ resolution so both entry points
stay behaviorally equivalent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:31:41 +02:00
Julian lechnerandClaude Sonnet 5 0f387b7df2 feat(build): resolve shell-specific agent tool placeholder in PowerShell build
Replace __SHELL__ in each generated Claude agent's tools field with
PowerShell or Bash depending on the package being built, so a role that
needs shell execution only gets the one matching its target shell.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:31:34 +02:00
Julian lechnerandClaude Sonnet 5 4374c69caa fix(claude-agents): map agent capabilities to real Claude Code tool names
Search, Diff, Shell, and Tests are not valid Claude Code tools, so every
generated subagent silently launched with a broken or empty tool set. Map
each role to the tools its own prompt actually needs, and use a __SHELL__
placeholder so build resolves it to the target package's own shell tool
instead of granting both Bash and PowerShell unconditionally.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:31:27 +02:00
Julian lechner 4408f23c68 chore(shellcheck): annotate nameref inputs
CI / linux (push) Successful in 6s
2026-09-17 23:04:44 +02:00
Julian lechner c4676e9a2f chore(shellcheck): allow shared script globals 2026-09-17 23:04:24 +02:00
Julian lechner 110842b9a4 refactor(shell): remove unused local fields 2026-09-17 23:04:05 +02:00
Julian lechner fd707539d5 refactor(hooks): drop unused workspace variable 2026-09-17 23:03:44 +02:00
Julian lechner 953eb34e21 fix(retrieval): declare Bash interpreter 2026-09-17 23:03:23 +02:00