fix: update local model to qwen/qwen3.5-9b and extract obsidian inline script

Merged
SH
7mo ago
+115-83

Summary

  • Replace Gemma model references with qwen/qwen3.5-9b in all codex/opencode/pi fish functions (both .fish and .tpl.fish)
  • Extract inline shell script from obsidian/default.nix to external obsidian-headless.sh using pkgs.replaceVars

Fixes

  • shell-test: 15 failing tests expecting __QWEN_LOCAL__ placeholder in templates and qwen/qwen3.5-9b in non-template functions
  • shell-inline-check: writeShellScriptBin with inline string in obsidian module

Summary by cubic

Switch the local LLM from Gemma to Qwen 3.5 9B across Codex/OpenCode/Pi fish helpers and extract the Obsidian headless launcher into an external script with tests. Fixes failing shell tests and the inline script check; also applies Nix formatting across configs.

  • Bug Fixes

    • Update fish functions to use qwen/qwen3.5-9b and templates to use __QWEN_LOCAL__, resolving 15 shell-test failures.
    • Replace inline writeShellScriptBin in the obsidian module with external obsidian-headless.sh via pkgs.replaceVars (uses xvfb-run and obsidian); add a test spec and include the script in coverage, satisfying the shell-inline-check.
  • Refactors

    • Apply Nix formatting across config and module files (no functional changes).