Skip to content

Instantly share code, notes, and snippets.

@SamSaffron
Created January 29, 2026 21:56
Show Gist options
  • Select an option

  • Save SamSaffron/1413bfeef93a4c26d75ad52fb0cf40bb to your computer and use it in GitHub Desktop.

Select an option

Save SamSaffron/1413bfeef93a4c26d75ad52fb0cf40bb to your computer and use it in GitHub Desktop.

Commit Quality Report: opencode

Period: 2026-01-23 to 2026-01-30 Generated: 2026-01-30 08:53

Summary

Metric Value
Total commits 523
Contributors 62
Lines added +33131
Lines removed -15737
Net change +17394
Files touched 402
Problematic commits (sampled) 3
Excellent commits (sampled) 3

Note: 523 commits is too many to deep-review exhaustively in a single pass with truncated diffs. The items below focus on high-signal, representative commits from the captured output and common patterns (docs correctness, UI bug risk, lockfile hygiene).

Quality Metrics Summary

Commit message quality (spot-check)

  • Many commits follow conventional format (fix:, feat:) and include PR numbers (good).
  • Some messages are a bit terse and don’t explain why (common with high-volume weeks).

Testing signals (spot-check)

  • From the sampled diffs shown, several changes are UI/docs and likely don’t require tests.
  • For larger feature/dependency updates (e.g., SDK bumps), consider adding a small integration test or at least a note pointing reviewers to upstream changelogs.

Risk hotspots observed

  • UI data source changes: variable renames can silently break runtime paths if not type-checked end-to-end.
  • Docs/marketing tables: high likelihood of naming drift (“K2.5” vs “M2.5”).
  • Large lockfile diffs: can obscure meaningful review unless accompanied by a short rationale.

🚨 Problematic Commits

1. [6cc739701] zen: kimi k2.5 free (#11199)

Author: Frank [email protected] Date: 2026-01-29 Issues:

  • ❌ Docs inconsistency/typo: bullet list says “Kimi M2.5 Free” while tables and other sections say “Kimi K2.5 Free”.
View diff (from gathered data)
diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx
index ae7a98296..ddaabbef0 100644
--- a/packages/web/src/content/docs/zen.mdx
+++ b/packages/web/src/content/docs/zen.mdx
@@ -87,6 +87,7 @@ You can also access our models through the following API endpoints.
 | GLM 4.7 Free       | glm-4.7-free       | `https://opencode.ai/zen/v1/chat/completions`      | `@ai-sdk/openai-compatible` |
 | GLM 4.6            | glm-4.6            | `https://opencode.ai/zen/v1/chat/completions`      | `@ai-sdk/openai-compatible` |
 | Kimi K2.5          | kimi-k2.5          | `https://opencode.ai/zen/v1/chat/completions`      | `@ai-sdk/openai-compatible` |
+| Kimi K2.5 Free     | kimi-k2.5-free     | `https://opencode.ai/zen/v1/chat/completions`      | `@ai-sdk/openai-compatible` |
@@ -153,8 +155,9 @@ Credit card fees are passed along at cost (4.4% + $0.30 per transaction); we don
 The free models:
 
-- GLM 4.7 is currently free on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.
-- MiniMax M2.1 is currently free on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.
+- GLM 4.7 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.
+- Kimi M2.5 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.
+- MiniMax M2.1 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.

Suggested Fix:

--- a/packages/web/src/content/docs/zen.mdx
+++ b/packages/web/src/content/docs/zen.mdx
@@
-- Kimi M2.5 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.
+- Kimi K2.5 Free is available on OpenCode for a limited time. The team is using this time to collect feedback and improve the model.

2. [2125dc11c] fix: show all provider models when no providers connected (#11198)

Author: Dax [email protected] Date: 2026-01-29 Issues:

  • ⚠️ Potential runtime risk: changed variable usage from recentList to recents in a .some(...) check. If recents can be undefined or non-array in some states, this can throw.
View diff (from gathered data)
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
index bcbbe6928..4ad92eeb8 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
@@ -158,7 +158,7 @@ export function DialogModel(props: { providerID?: string }) {
             )
             if (inFavorites) return false
-            const inRecents = recentList.some(
+            const inRecents = recents.some(
               (item) => item.providerID === value.providerID && item.modelID === value.modelID,
             )
             if (inRecents) return false

Suggested Fix (make recents safe and consistently used):

--- a/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-model.tsx
@@
-const recents = local.model.recent()
+const recents = connected() ? local.model.recent() : []
+const safeRecents = Array.isArray(recents) ? recents : []
@@
-const recentList = showSections ? recents.filter(...) : []
+const recentList = showSections ? safeRecents.filter(...) : []
@@
-const inRecents = recents.some(...)
+const inRecents = safeRecents.some(...)

3. [fdd484d2c] feat: expose acp thinking variants (#9064)

Author: Mert Can Demir [email protected] Date: 2026-01-29 Issues:

  • ⚠️ Reviewability: large bun.lock diff dominates the change (truncated in report). This often hides the real functional changes and makes it harder to reason about risk.
  • ⚠️ Dependency bump risk: @agentclientprotocol/sdk updated to 0.13.0—without a short note pointing reviewers/users to upstream changelog.
View diff (from gathered data; truncated)
# Note: Diff truncated (274559 chars exceeds 40000 limit)
@@
-        "@agentclientprotocol/sdk": "0.12.0",
+        "@agentclientprotocol/sdk": "0.13.0",

Suggested Fix (follow-up note to improve auditability):

--- a/README.md
+++ b/README.md
@@
+### Dependency notes
+
+- This repo uses Bun; large `bun.lock` diffs are expected when dependencies change.
+- Recent updates include `@agentclientprotocol/[email protected]`; please review upstream release notes for any breaking changes affecting ACP integrations.

🌟 Excellent Commits

1. [aa1d0f616] fix(app): better header item wrapping (#10831)

Author: Filip [email protected] Date: 2026-01-29 Why this is great:

  • ✅ Small, focused UI fix with clear intent (wrapping / layout robustness).
  • ✅ Uses CSS primitives (minmax(0, 1fr), min-w-0) to avoid overflow bugs—these are the “right tools” for this class of issue.
View diff (from gathered data)
diff --git a/packages/app/src/components/titlebar.tsx b/packages/app/src/components/titlebar.tsx
index e3831c70f..001f7a567 100644
--- a/packages/app/src/components/titlebar.tsx
+++ b/packages/app/src/components/titlebar.tsx
@@
-    <header class="h-10 shrink-0 bg-background-base flex items-center relative" data-tauri-drag-region>
+    <header
+      class="h-10 shrink-0 bg-background-base relative grid grid-cols-[auto_minmax(0,1fr)_auto] items-center"
+      data-tauri-drag-region
+    >

2. [2125dc11c] fix: show all provider models when no providers connected (#11198)

Author: Dax [email protected] Date: 2026-01-29 Why this is great:

  • ✅ Addresses a real UX footgun: empty state when no providers are connected.
  • ✅ Single-line fix suggests there was a clear root cause.

(Flagged above only because it’s worth double-checking array safety / variable intent.)


3. [6cc739701] zen: kimi k2.5 free (#11199)

Author: Frank [email protected] Date: 2026-01-29 Why this is great:

  • ✅ Keeps product docs/pricing tables current—high leverage for support load and user trust.
  • ✅ Updates multiple related sections (endpoints, pricing, privacy) rather than partially updating.

(Flagged above only for a minor naming consistency issue.)


Recommendations

  1. Add a “dependency bump” convention: when bun.lock changes substantially, include 2–4 bullet points in the PR description or a small Dependency notes section (or CHANGELOG) naming the important bumps and why.
  2. Guard UI list sources: when switching list sources (recentList vs recents), ensure the value is always an array (or type-checked) to prevent runtime crashes in edge states.
  3. Docs naming consistency pass: for model catalogs, add a quick grep-based checklist (e.g., Kimi K2.5 occurrences) before merging to avoid mismatched names across tables/bullets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment