28 Commits
Author SHA1 Message Date
John Smith c3a3910caa ci: add reusable OpenCodeReview PR workflow 2026-10-19 15:29:53 -04:00
John Smith 618837f001 ci: standardize on organization OPENCODE_API_KEY and OPENCODE_MODEL 2026-10-19 14:52:08 -04:00
John Smith cad3181e5d 0.1.3 v0.1.3 2026-10-13 18:00:54 -04:00
John Smith f85756e861 docs(triage): record 429 quota root cause and green 38467890246 verification 2026-10-13 17:12:44 -04:00
John Smith 1b175f91f9 test(live): print error event detail on failed attempts 2026-10-13 17:03:41 -04:00
John Smith 2bb334b301 test(live): capture code, stderr and event summary in attempt logs 2026-10-13 17:02:06 -04:00
John Smith f3c70ededc fix(e2e): enhance live tier diagnostics and record 38464060785 remediation 2026-10-13 16:58:37 -04:00
John Smith dcfc02ff00 docs(triage): confirm 38464060785 repeats zero-tool-use live failure 2026-10-13 16:38:12 -04:00
John Smith c8c819bf7a docs(triage): nightly 38463641817 live failure is zero-tool-use, not regression 2026-10-13 16:34:55 -04:00
John Smith 5059bef8cd feat(ws4-ws5): MCP mcpAllow opt-in + structured cwd; file WS7 upstream
WS4: per-server mcpAllow (server:tool/server:*) with both-spelling
allows, trailing denies win, star never implies MCP, no suffix-strip
on allows. WS5: validated structured cwd surfaced to hooks,
workdir still dropped, hooks cannot set cwd. 15 new tests.
WS7 filed as anomalyco/opencode#55212; drift J kept.
2026-10-13 14:37:39 -04:00
John Smith 2f297b4ed5 0.1.2 v0.1.2 2026-10-13 14:27:52 -04:00
John Smith 5933744629 docs(waves2-3): WS4/WS5 RFCs, variable-expansion invariants, WS7 upstream draft
- WS4 RFC: fail-closed MCP opt-in via per-server mcpAllow, both-spelling allows, trailing denies win
- WS5 RFC: structured {cwd} validation pipeline, reject cd-prefixing, keep dropping workdir
- WS6: docs/architecture/variable-expansion.md I-1..I-7 + test/vars.test.ts ({env:} passthrough)
- WS7: upstream prompt-reject issue draft (not filed, needs maintainer)
2026-10-13 14:17:32 -04:00
John Smith d5faa3523f fix(wave1): nightly report dir, MCP disabled-skip, live triage
- nightly: mkdir -p .e2e/report before live junit (ENOENT fix)
- spec: readMcpMap skips disabled===true with warning (opencode parity)
- tests: disabled stdio/remote skip, false/non-boolean warns, codemode/protocol/oauth warn-only, disabled wins over placeholder
- triage: docs/triages/8de5c45d.md catalog-miss diagnosis (no regression)
2026-10-13 14:11:07 -04:00
BillyOutlast 1674412efd Merge pull request #4 from Heretek-AI/protocol-drift-fixes
fix(spec): retain and warn on untranslated MCP fields
2026-10-13 13:33:57 -04:00
John Smith b666ec333a fix: apply CodeRabbit auto-fixes 2026-10-13 13:24:55 -04:00
John Smith 72b45c6638 fix(spec): retain and warn on untranslated MCP fields
Retain cwd/timeout on McpServerDef instead of silently dropping them,
warn on disabled/codemode/protocol/oauth and other keys with no
opencode equivalent. Document intentional divergences (E ${VAR} vs
{env:VAR}, G MCP perms fail-closed, J prompt-block 500) and harden
failed-tool feedback slicing. Adds D-1 warning-path unit test.

Verified: typecheck clean, 102 unit pass, e2e 32 pass 12 skip 0 fail.
2026-10-13 11:45:19 -04:00
John Smith 8de5c45dd5 0.1.1 v0.1.1 2026-10-10 18:27:25 -04:00
John Smith 1447e5080f fix(release): bin path without ./ prefix so npm keeps the c4o binary
npm strips bin entries in ./ form ('bin[c4o] was invalid and removed').
Verified with npm publish --dry-run: zero warnings.
2026-10-10 18:27:02 -04:00
John Smith ee1944f0d4 chore(release): scope package as @heretek-ai/claude-4-opencode for org publishing 2026-10-10 18:23:14 -04:00
John Smith 99bb5930bf chore(release): 0.1.0, MIT license, OIDC trusted-publishing workflow
- version 0.0.1 -> 0.1.0, license MIT
- release.yml on v* tags with id-token:write, pinned actions
v0.1.0
2026-10-10 18:20:28 -04:00
BillyOutlast 82c73a224b Merge pull request #1 from Heretek-AI/plugin-compat-layer
feat: run Claude Code plugins and marketplaces on opencode v2
2026-10-10 17:16:34 -04:00
John Smith 370714248a fix(e2e): expect collision-free data dir encoding for probe plugin
probe@inline now maps to probe-40-inline via encodeDataName.
Derive expectation from dataDirectory() instead of hardcoding.
2026-10-10 17:12:36 -04:00
John Smith 2416c40405 fix: surgical remediation for review findings (command injection, git/install traversal, collisions, loader, hooks, workflows)
- commands: scan interpolations before args, shell-quote args, suffix after splice, backslash escapes
- git/marketplaces: ref/sha/url allowlists, -- separator, ext:: reject, shorthand guards
- installs/marketplace: version fallback + base containment, git-subdir validation + staging check
- marketplaces/paths/components: rename rejection, collision-free encodings, consistent MCP names
- plugin/installs: file-input handling, symlink skip + realpath check, per-plugin isolation
- hooks: failure feedback, shared SessionStart promise, transcript pre-check, allowedEnvVars, group kill
- tests/workflows: awaited rejects, sandbox kill, unique temps, pinned actions, drift concurrency
2026-10-10 17:10:43 -04:00
John SmithandClaude Opus 5.5 2f5266518c docs: add README, research notes and the compatibility report
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-10 16:46:28 -04:00
John SmithandClaude Opus 5.5 8b9f7b88fc ci: add unit, end-to-end, nightly and drift workflows
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-10 16:46:28 -04:00
John SmithandClaude Opus 5.5 f2e4c0f3f3 test(e2e): drive the real opencode binary with pinned marketplaces
Every tier runs opencode in a throwaway home directory against marketplaces pinned
in e2e/targets.lock.json.

- conformance: every entry of six marketplaces resolves and loads, and opencode
  lists every component
- golden: component names match what real Claude Code lists for the same plugins
  at the same commits (captured by e2e/oracle/capture.ts)
- scripted: a stub model exercises skills, commands, agents, MCP and hooks on a
  fixture plugin and on unmodified official plugins
- live: the same plugins with a real model, skipped without a provider key

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-10 16:46:28 -04:00
John SmithandClaude Opus 5.5 cbcf742755 feat: load Claude Code plugins and marketplaces into opencode v2
Adds the c4o CLI and the opencode plugin behind it.

- spec: readers for plugin.json, the standard plugin layout and marketplace.json,
  following the manifest and marketplace references
- store: marketplace add/update/remove and plugin install/enable/disable/uninstall,
  with git, git-subdir and marketplace.json-URL sources and Claude Code's naming rules
- translate: skills, commands, agents and MCP servers as opencode values, plus a
  report of what a plugin contributes and what cannot be carried over
- runtime: registers those with opencode v2 and runs command and http hooks for
  PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, Stop, SubagentStop and SessionEnd

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-10 16:46:28 -04:00
John SmithandClaude Opus 5.5 b8d6449bee chore: initialize repository
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-10 16:46:27 -04:00