Export SSH_AUTH_SOCK pointing to the Bitwarden SSH agent socket
(~/.bitwarden-ssh-agent.sock) on macOS, guarded by checks that the
Bitwarden application is installed and the socket file exists, so
unmodified environments are unaffected.
Also correct two indentation inconsistencies in the .local/bin PATH
export and the lsd alias else-branch.
Provide an interactive script that lists external disks, requires repeated device confirmation, and safely unmounts, writes, and ejects the target. Detect El Torito hybrid ISO support to recommend direct writing or convert non-hybrid images to UDRW before copying them with dd.
Explain how to add new files and directories at their intended home-relative paths, then refresh symlinks with Stow. Document conflict resolution that backs up authoritative targets before restowing, and warn against using --adopt because it overwrites repository content.
- add conventions for Bash, C#, Go, Python, and TypeScript
- add frontend guidance for HTMX, PrimeVue, and Vue
- document formatting, typing, testing, async, and framework-specific practices
- reference official documentation for framework API details
- Narrow blanket allow rules (npm, dotnet, grep, head, tail, echo, find)
to explicit read-only commands; route npx/ruff format through ask
- Deny privilege escalation via su and doas
- Add read denies for env files, key material, SSH/cloud credentials,
package-manager tokens, and container/kube configs
- Add edit denies for dotfiles, .git internals, and git hook injection
- Rename ibmi custom_tools toolset to catalog and enable builtin-tools
with directory-based tool config and SELECTED_TOOLSETS=catalog
- Document tool-preference rules and scratch workspace in AGENTS.md
Introduce a custom tool that returns total row counts via the Db2 for i
catalog statistic QSYS2.SYSTABLESTAT.NUMBER_ROWS. Supports an optional
table_schema parameter to disambiguate tables sharing a name across
libraries. Register the tool in the custom_tools toolset.
RULES.md was not an opencode-recognized rules filename, so global
rules (including the "no AI co-author" Git rule) were never loaded;
only the stale, un-version-controlled ~/.claude/CLAUDE.md fallback
applied, which lacked that rule. Rename to AGENTS.md so opencode
loads it natively as the global rules file.
Also add watcher.ignore for node_modules/.git/dist/.venv/target dirs.
- add the get_column_info custom tool for the ibmi-mcp-server and
relocate its --tools path from a hardcoded absolute path into the
version-controlled tree via {env:HOME} interpolation
- reorder permission rules so "rm -rf *" (deny) is no longer shadowed
by "rm *" (ask); last-match-wins now resolves rm -rf to deny
- add allow rules for the Python toolchain (unittest, py_compile,
venv activation, ruff check/format)
- rename plugin/ to plugins/ to match the documented plural convention
- commit package.json and package-lock.json so the ibmi-gate plugin
resolves @opencode-ai/plugin on a fresh stow
- correct the README opencode directory description
opencode's config schema types mcp.<name>.enabled as a static boolean and only interpolates {env:VAR} for string values, so conditional enablement is not expressible in opencode.jsonc alone.
Add a config-hook plugin that flips ibmi-server.enabled to true only when DB2i_HOST, DB2i_USER, and DB2i_PASS are all set. The config retains enabled: false as a fallback if the plugin fails to load.