BillyOutlast
dfc6f6a526
ci(ocr): point review job at org reusable workflow (pinned)
...
Fix 'failed to fetch workflow' parse error: ocr.yml referenced a local reusable workflow path (./.github/workflows/ocr-review.yml) that does not exist in this repo. Point at Heretek-AI/.github org reusable workflow pinned to main HEAD (a440b485).
2026-10-19 16:34:24 -04:00
BillyOutlast
2fe0ba871f
ci: add reusable OpenCodeReview PR workflow
2026-10-19 15:49:43 -04:00
John Smith
bd36c293c2
ci: require npm >= 11.5 for OIDC trusted publishing
v0.1.1
2026-10-18 22:32:58 -04:00
John Smith
b9bc7ccf23
chore: bump to 0.1.1
v1
2026-10-18 22:15:42 -04:00
John Smith
2245c87a8e
ci: add OIDC trusted-publishing workflow for npm
...
Publishes @heretek-ai/opencode-plugin-ci on full semver tags (v*.*.*)
via npm OIDC trusted publishing with provenance. Gates on
bun run check and a tag-vs-package.json version guard.
2026-10-18 21:38:49 -04:00
John Smith
d4deb3ef57
Fix review-main leftovers: dead scrub calls, SECRET_NAME_RE, docs, audit doc move
...
- README Security: value-side scrubbing covers only live.keys values
- load.ts/cli.ts: remove no-op collectSecretValues() scrubbing, fix comments
- scripted.ts: fix stale env-scan comment
- redact.ts: delete unused SECRET_NAME_RE
- README/SPEC: deduplicate matrix artifact-name paragraph
- Move audit docs under docs/reports/ with v1-stale status notes
v0.1.0
2026-10-18 19:09:43 -04:00
Agency Coordinator
8aa4d618ae
Docs: add adversarial audit findings + prompt (596+260 lines, no live key, throwaway dummies only)
2026-10-18 02:49:19 -04:00
Agency Coordinator
eaf6e21063
Remediate R1/R2/R3 per review-v1.1
...
R1: remove gate.artifact multi-version guard (schema superRefine),
delete artifact-guard test, docs to recommendation (README+SPEC).
R2: collectSecretValues returns only live.keys, MIN 4->8,
scrub JSON-escaped form; update evidence-scrub tests.
R3: action.yml resolved-dir guard (pwd -P vs GITHUB_WORKSPACE),
result=fail on reject, allow absolute-inside; update
action-working-dir tests + README/SPEC.
Triad: programmer->QA PASS (316 pass)->Drift Guard VERDICT:PASS
2026-10-18 01:14:21 -04:00
John Smith
8422645da7
v1.1 M14: decision checklist 14-25
2026-10-18 00:25:30 -04:00
John Smith
8fc1886818
audit P3: docs/guards/artifact
...
OCI-6.2-artifact-poisoning: ConfigSchema.superRefine fails when gate.artifact is the default AND opencode.versions has >1 entry (message names file+field); pinned by artifact-guard test; multi-version unit tests updated to distinct artifacts.
OCI-7.1-no-line: README + SPEC 5.2 now say errors name file and field, not a line number; no code change.
OCI-registry-drift: no code change; NOTES policy note on latest float + re-pinning rule.
OCI-6.3-working-dir docs: action.yml input description, README, SPEC 8 constrain working-directory to GITHUB_WORKSPACE.
OCI-7.2-floating-majors: dependabot.yml (weekly github-actions); v7 SHAs recorded in NOTES (checkout 3d3c42e, setup-node 949feb2, upload-artifact cf430e0, setup-bun 0c5077e).
2026-10-18 00:19:24 -04:00
John Smith
75624bb4e6
audit P2: allowed/symlink/pins
...
OCI-6.1-allowed-wiring: extracted pure partitionVersions(versions), called from runCi; pinned by partition test (slice(1)->[] sabotage red).
OCI-2.5-files-symlink: evaluateFiles resolves the real path after the lexical check and re-checks containment, failing closed on realpath error; symlink exfiltration rejected, legit sub/../ paths pass.
OCI-6.4-action-pins + OCI-6.3-working-dir guard + OCI-7.2 pins: checkout/setup-node/upload-artifact bumped v4->v7 (both files; setup-bun stays v2 at HEAD), pinned by action-pins test; IN_WD env passthrough + case-guard rejects ../ and absolute working-directory (zero-interpolation kept), pinned by action-working-dir test.
2026-10-18 00:19:22 -04:00
John Smith
2c3ac504d5
audit P2: meta/order/noerrors/cap
...
OCI-3.3-meta: writeRecord seam pins metadata-last spread; colliding kind/phase/seq test goes red on payload-wins sabotage.
OCI-4.3-order: extracted buildLoadPlugins(pre,shim,post), pinned by load-order test; swap sabotage goes red. runLoad-level hook e2e inapplicable (tier 1 emits no hook records).
OCI-2.5-noerrors: noerrors.test.ts pins the ?? true fallback (unset+error event must fail); no prod change, schema default untouched.
OCI-1.4-cap: clip() capArrays flag; inventory records bypass the 200-item array cap (strings still clip). 201-tool inventory test.
OCI-1.4-providers + OCI-5.6-inert-window: verified already remediated by M7 removal; removed-fields.test.ts pins the rejection.
2026-10-18 00:19:20 -04:00
John Smith
b5876a6301
audit P1: redact + evidence scrub + skip assertion
...
OCI-7.3-redact-untested: test/unit/probe-redact.test.ts pins all six
alternatives individually; narrowings go red.
OCI-7.3-evidence-leaks: redactSecretValues/collectSecretValues in
src/util/redact.ts, applied to stub recordFile, tier events.jsonl/stderr.log,
results.json display strings and report.md/summary/gate section; in-memory
evidence stays raw. test/unit/evidence-scrub.test.ts; scrub-bypass sabotage
goes red. README security section narrowed to env/headers + author
responsibility.
OCI-1.5-skip: cli.test.ts asserts throws-smoke skipped 'tier 1 failed'
e2e green.
Also: action-guard fixtures avoid literal expressions; drop dead pluginPath
local in load.ts (lint). docs/NOTES.md audit P1 section. 286 pass.
2026-10-18 00:09:33 -04:00
John Smith
0de0a68087
audit P1: action/files guards + unpublished doc
...
OCI-6.3-action-guard: test/unit/action-guard.test.ts pins zero-interpolation
in run: blocks; injection sabotage goes red.
OCI-6.4-files-guard: test/unit/packaging.test.ts pins files/bin + npm pack
contents; drop-probe sabotage goes red.
OCI-6.4-unpublished: README quickstart uses source checkout form; bunx only
mentioned in the unpublished note.
Also: observe Sandbox git-init promise so a throwing constructor never
leaves an unhandled rejection. 271 pass.
2026-10-18 00:04:10 -04:00
John Smith
7ba0cdb9e4
audit P1: workspace escape + ancestor guard
...
OCI-4.4-workspace-escape: safeWorkspaceDest containment (resolve+sep,
absolute rejected) throws ConfigError; test/unit/sandbox-escape.test.ts.
OCI-4.4-ancestor: fail-closed allow-list in runLoad (builtins exempt,
local id+path match) + detectAncestorConfig scan; test/unit/ancestor-guard.test.ts.
Verified: clean tier1 exit 0; planted ancestor exit 1; evil local plugin
caught by id; guard-removal sabotage goes red. 264 pass.
2026-10-18 00:02:24 -04:00
John Smith
bec6543263
v1.1 M13: README and NOTES for v1.1
2026-10-17 23:52:47 -04:00
John Smith
410b26254f
v1.1 M12: failing scenario per fixture; tool-direct proves it is direct; Action self-test job
2026-10-17 23:51:30 -04:00
John Smith
0955a39e5a
v1.1 M11: judge stub defaults to fail; single defaults warning; comment fix
2026-10-17 23:49:54 -04:00
John Smith
7a2b4d5c5f
v1.1 M10: PR gate history from the base branch; --gate-artifact
2026-10-17 23:45:24 -04:00
John Smith
553ac2a9f7
v1.1 M9: normalize namespaced tool names in assertions
2026-10-17 23:44:04 -04:00
John Smith
22add43f4c
v1.1 M8: missing values fail every matcher except exists: false
2026-10-17 23:43:29 -04:00
John Smith
5fbfd25ad3
v1.1 M7: remove no-op config fields; live.timeoutMs is the live default
2026-10-17 23:42:55 -04:00
John Smith
4c3e8db59c
v1.1 M6: reset evidence dirs per case; reserve tool ids; validate --opencode and --scenario
2026-10-17 23:37:10 -04:00
John Smith
c19eeced10
v1.1 M5: budget exhaustion fails started cases; one budget per run
2026-10-17 23:34:46 -04:00
John Smith
1cc883cc79
v1.1 M4: run .opencode-ci test files by explicit path
2026-10-17 23:33:44 -04:00
John Smith
91231e4ffe
v1.1 M3: build before resolving entries; tier 1 uses plugin.entry
2026-10-17 23:30:20 -04:00
John Smith
cdb58cbaab
v1.1 M2: fake opencode binary and runCi test setup
2026-10-17 23:27:46 -04:00
BillyOutlast
32eb99d772
Merge pull request #5 from Heretek-AI/claude/project-thread-9cgpai
...
docs: v1.1 fix brief, v1 review report and SPEC decisions 14-25
2026-10-17 23:24:38 -04:00
Claude
ca6bdd546e
docs: v1.1 fix brief, review report and SPEC decisions 14-25
...
Add the v1 review (docs/reports/review-v1.md) and a milestone-by-milestone
fix brief for the local agent (docs/IMPLEMENTATION_PROMPT_v1.1.md). Every
code block in the brief was replayed on a fresh copy of main at af6675c;
each milestone's unit count matches (213 -> 248) and e2e goes 24 -> 28.
Update SPEC to the fixed behavior: build before entry resolution, explicit
plugin.entry must exist, bun-test file paths, one live budget per run that
never hides a failure, evidence dirs reset per case, removed no-op fields,
missing-value and namespaced-name matcher rules, PR gate history from the
base branch, --gate-artifact, and the Action's real inputs and outputs.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
Claude-Session: https://claude.ai/code/session_01HhCPhJ7HTV7GEU2UMhroSc
2026-10-18 03:15:03 +00:00
BillyOutlast
af6675cc17
Merge pull request #4 from Heretek-AI/impl/v1
...
Implement opencode-plugin-ci v1
2026-10-17 20:34:47 -04:00
John Smith
4d5e556d6c
M14: final pass - SPEC audit, Known gaps, check (213 pass) and e2e (24 pass) green
2026-10-17 20:32:47 -04:00
John Smith
ad1e21ea4c
M13: composite action, examples, README and CI workflow
2026-10-17 19:13:09 -04:00
John Smith
876c799c9c
M12: flake gate with verbatim verdict port, history and gate orchestration
2026-10-17 19:08:38 -04:00
John Smith
276bbf08d9
M11: live tier, judge run and budget enforcement
2026-10-17 19:01:32 -04:00
John Smith
3df33a06ab
M10: results, report, CLI run/validate/init/report with required-vs-allowed
2026-10-17 18:55:38 -04:00
John Smith
74b5ddfe75
M9: matchers, expect evaluation and scripted tier 2
2026-10-17 18:47:43 -04:00
John Smith
1c8b799ee6
M8: entry resolution, shim, install/build, tier 1 load checks
2026-10-17 18:43:20 -04:00
John Smith
7ebc575ed8
M7: config and scenario schema with validation, loader and JSON schemas
2026-10-17 18:39:30 -04:00
John Smith
f7816fdb9e
M6: fixture plugins for every surface (pass/fail, throws, tui, no-entry)
2026-10-17 18:35:49 -04:00
John Smith
42aca14049
M5: probe pre/post with inventory, hooks, events and readProbe
2026-10-17 18:33:33 -04:00
John Smith
887b706871
M4: stub model with Code Mode auto-wrap and judge detection
2026-10-17 18:30:36 -04:00
John Smith
bf6c9e5ebb
M3: sandbox and opencode binary resolution (events, logs, isolated run)
2026-10-17 18:26:24 -04:00
John Smith
54e3631b10
M2: spike re-run results (hook order, Code Mode namespacing)
2026-10-17 18:23:17 -04:00
John Smith
1823929f0c
M1: scaffold opencode-plugin-ci (cli --version, check green)
2026-10-17 18:19:14 -04:00
BillyOutlast
3758b60cf4
Merge pull request #3 from Heretek-AI/claude/project-thread-9cgpai
...
Add step-by-step implementation brief
2026-10-17 18:13:42 -04:00
Claude
5d9512a06e
Add step-by-step implementation brief
...
A 14-milestone brief for a coding agent. It carries the verified
opencode 2.0.26 facts, a tested reference probe, exact file layout,
acceptance checks per milestone, and the gotchas hit in the spike.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
Claude-Session: https://claude.ai/code/session_01HhCPhJ7HTV7GEU2UMhroSc
2026-10-17 22:13:13 +00:00
BillyOutlast
fa620dbea4
Merge pull request #2 from Heretek-AI/claude/project-thread-9cgpai
...
Record spike results in the spec
2026-10-17 18:07:12 -04:00
Claude
94152cb9b5
Record spike results in the spec
...
Plugin dirs load server/index only, hooks run in config order, plugin
tools default to Code Mode, and deny-all permissions give a tool-less
judge. Update the probe, shim, stub and tier 1 design to match.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
Claude-Session: https://claude.ai/code/session_01HhCPhJ7HTV7GEU2UMhroSc
2026-10-17 22:06:13 +00:00
BillyOutlast
d1dff0d623
Merge pull request #1 from Heretek-AI/claude/project-thread-9cgpai
...
Add v1 spec for opencode v2 plugin CI
2026-10-17 17:54:22 -04:00
Claude
73bd2cadf6
Add v1 spec for opencode v2 plugin CI
...
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
Claude-Session: https://claude.ai/code/session_01HhCPhJ7HTV7GEU2UMhroSc
2026-10-17 21:53:07 +00:00