84 Commits
Author SHA1 Message Date
github-actions[bot]andGitHub a937f57b43 chore(deps): update dependencies
Automated dependency update. All tests passed.
v0.31.15
2026-10-10 03:24:20 +00:00
github-actions[bot]andGitHub 0ef6e0738c chore(deps): update dependencies
Automated dependency update. All tests passed.
v0.31.13
2026-10-04 10:15:28 +00:00
lukaszraczylo 5f1d9c1b72 fix(deps): migrate huh to charm.land/huh/v2
The module path moved to charm.land/huh/v2. Update the import in the ui
prompts and refresh go.mod and go.sum. No API changes were needed.
v0.31.11
2026-10-04 10:12:32 +01:00
github-actions[bot]andGitHub 89c9b60dac chore(deps): update module github.com/stretchr/testify to v1.12.1
Automated dependency update. All tests passed.
v0.31.9
2026-10-04 04:21:05 +00:00
lukaszraczylo 9ae011ac62 ci(deps): update dependencies with Renovate [skip ci] 2026-10-03 18:44:37 +01:00
lukaszraczyloandGitHub 18919ca926 Update go.mod and go.sum (#29) v0.31.5 2026-10-03 04:27:45 +01:00
lukaszraczylo 12e448ca39 fix(deps): require Go 1.26.8
Go 1.26.0 carries 17 standard library vulnerabilities that govulncheck reports. The security workflow takes its toolchain from go.mod, so the scan failed. Go 1.26.8 clears them.
v0.31.3
2026-10-02 16:18:05 +01:00
lukaszraczylo 0865c405fb feat(pi): emit model context and output limits when set
The pi adapter writes contextWindow and maxTokens to models.json only
when the profile sets them. Pi keeps its own defaults for every other
model. Tests cover both cases.
v0.31.1
2026-10-02 05:11:46 +01:00
lukaszraczylo b6bd5303e0 ci(security): resolve latest Go patch in govulncheck job
The govulncheck job fails on 17 standard library findings. The runner
uses an outdated Go toolchain. Set check-latest so setup-go installs
the newest patch release.
v0.30.1
2026-10-02 05:10:31 +01:00
lukaszraczyloandGitHub f81492eb46 Update go.mod and go.sum (#28) v0.29.32 2026-09-19 04:18:26 +01:00
lukaszraczyloandGitHub 76ac377b5d Update go.mod and go.sum (#27) v0.29.30 2026-09-14 04:22:09 +01:00
lukaszraczyloandGitHub 2e661fb526 Update go.mod and go.sum (#26) v0.29.28 2026-09-11 04:19:54 +01:00
lukaszraczyloandGitHub c4f1b0fa1d Update go.mod and go.sum (#25) v0.29.26 2026-09-09 04:19:47 +01:00
lukaszraczyloandGitHub bf7be9d9c5 Update go.mod and go.sum (#24) v0.29.24 2026-09-02 04:19:26 +01:00
lukaszraczyloandGitHub c5707acfd3 Update go.mod and go.sum (#23) v0.29.22 2026-08-18 04:20:33 +01:00
lukaszraczyloandGitHub 3e3c78725e Update go.mod and go.sum (#22) v0.29.20 2026-08-12 04:47:48 +01:00
lukaszraczyloandGitHub 82e1de9773 Update go.mod and go.sum (#21) v0.29.18 2026-08-11 04:36:13 +01:00
lukaszraczyloandGitHub 565d72768b Update go.mod and go.sum (#20) 2026-08-03 07:28:07 +01:00
lukaszraczyloandGitHub 4701b45a12 Update go.mod and go.sum (#19) 2026-07-24 06:53:40 +01:00
lukaszraczyloandGitHub 8e3ec78e2b Update go.mod and go.sum (#18) 2026-07-23 07:05:08 +01:00
lukaszraczylo 62debbfcda fixup! Add pi support 2026-07-22 11:00:04 +01:00
lukaszraczylo b5e3bcd301 Add pi support v0.29.8 2026-06-28 00:51:34 +01:00
lukaszraczyloandGitHub fd6519eed1 Update go.mod and go.sum (#13) v0.29.7 2026-06-24 05:30:56 +01:00
lukaszraczyloandGitHub bca4a4be1a Update go.mod and go.sum (#12) v0.29.5 2026-06-23 05:28:57 +01:00
lukaszraczyloandGitHub fa17e9a289 Update go.mod and go.sum (#11) v0.29.3 2026-06-17 05:37:11 +01:00
lukaszraczylo f30c0f65a6 feat: sync rules across all harnesses + agents to opencode/kilo
Add Rule as a first-class canonical kind (rules/<name>.md, loaded like
agents) and propagate it the way each harness actually loads it:

- claude-code: native ~/.claude/rules directory symlink (preserves rule
  path-scoping frontmatter); rules NOT folded into CLAUDE.md.
- opencode/kilo/zed/crush: fold rule bodies into the global AGENTS.md
  always-on instructions file (frontmatter stripped). crush has no global
  instructions file, so register the absolute AGENTS.md path in
  options.context_paths (defaults are re-prepended at load, so nothing is
  clobbered).
- goose: fold into ~/.config/goose/.goosehints.
- cagent: fold into the per-agent instruction.

Also:
- Wire markdown agents to opencode (~/.config/opencode/agents) and fix the
  kilo agents symlink: plural ~/.config/kilo/agents (singular "agent" is a
  silent no-op on current Kilo CLI).
- Add ManagesAgents/ManagesRules to HarnessCapabilities + ImportResult.Rules;
  claude-code/opencode import rules/agents round-trip.
- Centralize instruction selection in Bundle.InstructionText /
  InstructionTextWithRules (replaces per-adapter override duplication).
- init scaffolds + imports rules; README capability matrix gains
  Agents/Rules columns with native-vs-folded footnotes.

Grounded each harness's sink against official docs + config source this
session. Gate: gofmt, go vet, go test -race ./..., golangci-lint (0),
govulncheck (clean).
v0.29.1
2026-06-16 21:32:12 +01:00
lukaszraczyloandGitHub 0892cb317e Update go.mod and go.sum (#10) 2026-06-12 05:36:13 +01:00
lukaszraczylo 1053d223e5 fixup! fix(apply): propagate read errors, auto-open repo, dedupe adapter base (#6) 2026-06-12 01:32:21 +01:00
lukaszraczyloandGitHub e01f3419ea fix(apply): propagate read errors, auto-open repo, dedupe adapter base (#6)
Three robustness fixes for the apply pipeline:

1. Silent read errors on state/target files treated 'file absent' as
   'file empty' and fast-forward-overwrote user edits. Add
   common.ReadExistingFile that returns (nil,nil) only on
   os.IsNotExist; other I/O errors propagate. Use it from apply.Run
   and from every adapter's Render (claudecode, crush, kilo,
   opencode, goose, zed).

2. apply.Run required callers to pre-construct *gitx.Repo; passing
   nil silently skipped the commit. Run now auto-opens a repo from
   Bundle.Root, gracefully no-ops when the root is not a git repo,
   and uses a new gitx.HasStagedChanges() check to skip the no-op
   'nothing to commit' that triggered the original silent-skip.

3. Each of 7 adapter packages re-implemented the same 25-line
   Option/WithHome/New constructor. Hoist into adapter.Base +
   adapter.BaseOption + NewBase. Each adapter embeds *Base and
   reduces to a 9-line constructor. Public New(WithHome(h)) API
   preserved; a.home becomes a.Home.

Tests:
  - apply: 5 new (propagates-read-error, auto-opens-repo,
    no-repo-skips-commit, skips-no-op-commit, commit-message-counts)
  - gitx: 2 new (HasStagedChanges empty/after-add)
  - adapter/common: 3 new (ReadExistingFile missing/content/perm)
  - adapter: 4 new (NewBase default/WithHome/order/typed)
  - existing adapter tests unchanged — verify a.Home still honoured.
v0.28.9
2026-06-01 13:11:07 +01:00
lukaszraczyloandGitHub 5704ede5c7 Update go.mod and go.sum (#5) v0.28.7 2026-05-31 05:37:10 +01:00
lukaszraczyloandGitHub a7338e91dc Update go.mod and go.sum (#4) v0.28.5 2026-05-30 05:27:23 +01:00
lukaszraczyloandGitHub ae44e31abd Update go.mod and go.sum (#3) v0.28.3 2026-05-29 05:34:40 +01:00
lukaszraczylo 2eaa4ff825 fixup! fixup! refactor: remove dead code, deduplicate defaultHome, simplify mcpEntry + kilo render v0.28.1 2026-05-29 00:29:23 +01:00
lukaszraczylo 0e35af67b6 fixup! refactor: remove dead code, deduplicate defaultHome, simplify mcpEntry + kilo render v0.27.1 2026-05-28 20:11:12 +01:00
lukaszraczylo 6483eb8044 refactor: remove dead code, deduplicate defaultHome, simplify mcpEntry + kilo render
Dead code removed:
- BuildProviders, buildModels, ProviderEntry (no production callers)
- ZedLanguageModels (shadowed by adapter-local version, wrong schema)
- GatewayProviderID deprecated constant (zero references)
- Corresponding dead tests for BuildProviders

Deduplication:
- Extract common.DefaultHome() to internal/adapter/common/home.go
- All 7 adapters call common.DefaultHome() instead of local copies (-49 lines)

Simplification:
- mcp.go: merge MCPClaudeStyle/MCPCrushStyle branches (identical URL path,
  one-line difference in stdio path) — clearer intent, fewer lines
- kilo.go: extract opencode.jsonc merge to mergeOpenCodeJSONC() helper,
  Render() drops from 92 to ~55 lines
- goose.go: strings.IndexByte → strings.Cut in splitProviderModel
2026-05-23 21:22:49 +01:00
lukaszraczylo 21a86c084f feat: profile rename subcommand + expand all model display names v0.24.1 2026-05-23 21:13:27 +01:00
lukaszraczylo fb02b165d7 feat: URL-derived provider keys (hs-<hostname>) + dedup providers sharing same gateway URL
- GatewayProviderKey() derives stable key from gateway URL hostname
  e.g. https://llmgw.h.raczylo.com/v1 → hs-llmgw-h-raczylo-com
- AbsorbDuplicateProviders() merges providers sharing the same baseURL
  into our canonical entry; user-crafted model metadata wins for overlaps
- kilo: renders to opencode.jsonc (primary config), deep-merges providers,
  deletes enabled_providers filter that was hiding our gateway
- opencode: absorbs duplicate providers from existing config
- All adapters use GatewayProviderKey() instead of hardcoded string
- Fix goose URL doubling (was /v1/v1/chat/completions → /chat/completions)
- Fix token propagation: api_key written directly (not env var ref)
- Zed: adds prompt_cache_key capability, deletes context_servers key
  to avoid ContextServerSettingsContent serde untagged-enum parse error
2026-05-23 21:13:16 +01:00
lukaszraczylo 77158d9f2b fix: propagate gateway token; kilo targets opencode.jsonc; goose URL + api_key fix 2026-05-23 21:12:47 +01:00
lukaszraczylo 7716c180e7 zed: add prompt_cache_key capability field to model entries 2026-05-23 21:12:47 +01:00
lukaszraczylo 00ba950cd9 zed: delete context_servers key to fix serde parse error; update tests 2026-05-23 21:12:47 +01:00
lukaszraczylo bde3128dba fix(zed): switch to language_models.openai_compatible for Agent panel visibility
The Zed Agent panel (new ACP-based UI) only discovers providers registered
under language_models.openai_compatible.<name>, not language_models.openai.
Each named entry appears as its own provider in the LLM Providers list.

- language_models.openai_compatible.harness-sync-gateway holds gateway URL + models
- agent.default_model.provider = 'harness-sync-gateway' (was 'openai')
- Model entries include capabilities {tools,images,parallel_tool_calls}
- Export common.GatewayProviderID so zed.go can reference it
- Fix staticcheck QF1001 (De Morgan's law) in io.go
- Fix struct field alignment in File (80→72 bytes)
- gofmt remaining files
2026-05-23 21:12:47 +01:00
lukaszraczylo fd97c60df2 fix(opencode/kilo): add top-level name + models Record to ProvidersAsMap
opencode/kilo require top-level 'name' and a 'models' Record<modelID,Model>
in each provider entry for the harness UI to enumerate and display models.
Without 'name', the gateway appears unlabelled; without 'models', the provider
shows no model list in the selector.
2026-05-23 21:12:46 +01:00
lukaszraczyloandGitHub ce7a217231 Create CNAME v0.22.3 2026-05-23 20:42:35 +01:00
lukaszraczyloandGitHub da5eabb180 Create CNAME v0.22.2 2026-05-23 20:42:14 +01:00
lukaszraczylo ec108fd391 release: retry with HOMEBREW_TAP_TOKEN configured v0.22.1 2026-05-23 13:50:56 +01:00
lukaszraczylo 7bd70bfaeb test: introduce afero-based mock filesystem for hermetic tests v0.21.9 2026-05-23 13:12:15 +01:00
lukaszraczylo 2334ed7922 fix(canonical): make missing-config-yaml test self-contained for CI v0.21.7 2026-05-23 13:06:32 +01:00
lukaszraczylo 9d3c386f1d fix(ci): lower go.mod toolchain to 1.25 to match runner availability 2026-05-23 13:02:50 +01:00
lukaszraczylo 8f3f0c06b9 fix(ci): migrate .golangci.yml to v2 schema, relax check-blank + gocyclo 2026-05-23 12:59:55 +01:00
lukaszraczylo 3427e8a58c feat: goreleaser config, install.sh, FUNDING, README install + sponsor 2026-05-23 12:49:08 +01:00