Releases: codeasier/open-codeasier
Releases · codeasier/open-codeasier
Release list
open-codeasier v0.3.4
[0.3.4] - 2026-09-12
Fixed
- Gate asynchronous and legacy cross-review starts on OpenCode permissions before creating snapshots, persisting runs, or starting child sessions. Supply ask defaults and execute the host's permission Effect with its captured context; requests identify the target, reviewer models/count, judge, and additional token cost. Explicit user permission overrides apply. Local target classification and shared-evidence checks run before the prompt. Legacy starts publish "preparing" metadata only after approval. A fiber-less host ask fails closed with an explicit runtime error.
- Restrict the cross-review workflow to explicit cross-review or independent multi-model review requests. Accidental skill loading in ordinary reviews and child sessions now exits the workflow without blocking the original task or incorrectly recommending plugin reinstallation.
Full Changelog: v0.3.3...v0.3.4
open-codeasier v0.3.3
[0.3.3] - 2026-09-09
Changed
- Store cross-review run manifests at
~/.open-codeasier/cross-reviewand snapshot worktrees at~/.open-codeasier/cross-review/.worktrees/<runID>/worktree. Override the parent directory withOPEN_CODEASIER_STATE_HOME. The previousXDG_STATE_HOME/ macOS Application Support /%LOCALAPPDATA%/~/.local/statewrite locations are no longer used; those roots are still scanned so existing runs are not orphaned, and released manifests (no live snapshot worktree) are moved to the new root. Parent-session judging needs a one-timeexternal_directoryallow rule for~/.open-codeasier/cross-review/**.
Fixed
- Catch
/cross-review-auditup with the current cross-review protocol. The payload now carriescross_review_configpreviews, start arguments (target,hasEvidenceDir,reviewModelCount,judgeModel), status results (readyToFinalize,actionRequiredroles, stray-timeoutActionwarning), rejected-call errors,adapterGatherer,snapshot,finalStatus, and per-role timing, timeout, retry, and boundederrorfields, so timeout decisions, adapter failures, and evidence provenance can be graded instead of inferred. - Stop grading a failed PR adapter as a broken evidence contract: a new
adapter.gathercheck reports the adapter error andrun.evidence_contractisinsufficient-evidencewhen no reviewer was dispatched, including a legacy blocking persist that omittedadapterGatherer. - Stop failing
role.prompt.tools_denyfor prompts dispatched beforecross_review_configorcross_review_auditjoinedREAD_ONLY_TOOLS. The check fails only when a write tool is absent or any deny key is enabled, and names absent primary-session-gated keys in its detail. - Add
role.session.directory, which verifies that snapshot-run role sessions are bound to the snapshot worktree, and read role sessions through the run and caller directories when the worktree no longer answers.
Full Changelog: v0.3.2...v0.3.3
open-codeasier v0.3.1
[0.3.1] - 2026-09-07
Fixed
- Refuse
installandinitwhen~/.agents/skills/cross-reviewexists and
differs from the packaged skill, document thatinstalldoes not update
~/.agents, and print aninitnext-step to fill only one ofreviewers
orreviewModelsand then runnpx open-codeasier validate <path>. - Launch GitHub and GitCode PR snapshot adapters with a Node.js executable
instead of reusingprocess.execPath, so a standalone OpenCode binary no
longer fails snapshot gathering with its own CLI help. Override the runtime
withOPEN_CODEASIER_NODE. PATH discovery skips Windows.cmdshims and
non-executable files.
open-codeasier v0.3.0
[0.3.0] - 2026-09-06
Added
- Add
/cross-review-auditand thecross_review_audittool to inspect a
parent session's owned runs through the local run-store and SDK sessions,
reporting protocol checks and role behavior without reading OpenCode
internal storage. - Accept an optional
gitcodeCliabsolute path in cross-review config and
persist it from guided setup afternpx open-codeasier detect-gitcode
locates gitcode-cli (PATH, then~/miniconda3/~/anaconda3including env
bin/Scripts;--versionoutput must containgitcode, so a Graphviz
gcis ignored). GitCode targets (gitcode.comURLs or remotes) fetch
PR/Issue details with that CLI in the parent session and always pass
context; GitHub fetching still usesgh.
Changed
- Load project
.opencode/cross-review.jsonexclusively when present, without
reading or merging~/.config/opencode/cross-review.json. Global fallback
applies only when the project file is absent. A present-but-empty project
config, including the model-free{}created byinit, is no longer
backfilled from global; tell callers to configure reviewers in the existing
project file or pass--review-models.
Fixed
- Embed non-PR shared context up to the 1,000,000-character schema cap
instead of silently clipping reviewer briefs (and judge briefs for
parent-provided context) at 100,000 characters, setwarningwhen
gatherer output or an unenforced parentcontextstill exceeds the
embed limit, and tighten that budget from the tightest known
reviewer/judgelimit.context(4 ASCII chars/token, 1 non-ASCII
char/token, 25% reserve) so a typical payload cannot blow a smaller
known window. Models withoutlimit.contextstill use the 1M schema
cap. - Treat never-dispatched cross-review roles as
insufficient-evidencein
/cross-review-audit, keep per-run protocol timelines attributed by
runID, and let a later silent-model-replacefailwin over an earlier
truncated session. - Fail
/cross-review-auditsilent-model-replace on a visible prompt-model
mismatch even when that session is truncated, and treat cancelled/failed
roles that never landed a prompt asinsufficient-evidence. - Continue gitcode-cli discovery when a PATH entry is unreadable or not a
directory, and when listing conda env directories fails withEPERM, so
detect-gitcodeno longer crashes on those filesystem errors. - Treat host type-default cross-review overrides (
reviewModels: []and0
foragents,maxConcurrency, andreviewerTimeoutMs) as omitted so they
fall back to the loaded config instead of failing validation before it is
applied. Truly illegal overrides still fail fast. Empty or zero values that
still reach validation mention omitting the argument to use config. Blank
judgeModelstill means parent-session judging; emptyfocusis unchanged. - Harden the asynchronous cross-review parent-session protocol. Finalize
rejects while gathering, reviewers, the explicit judge, or a pending
timeout decision are still active, so it cannot be used as a poll;
readyToFinalizeis true when reviewers are terminal, the explicit
judge is terminal, or the run is already in a terminal phase. A
timeoutActionon the poll that first observes an already-overdue
session is applied instead of being ignored. Empty or
whitespace-onlycontextis omitted,
including PR snapshotnotes.md. A straytimeoutActionon an
ordinary poll is ignored with a warning, includingabortafter a
preserved session has already finished. - Reject a non-PR
cross_review_startor legacycross_reviewwhen
parent-session judging omitscontext, instead of dispatching
reviewers with a warning. Read-only reviewer, gatherer, and judge
briefs now forbid.git/**reads, guessed historical or host-absolute
paths, whole-tree glob/re-read detours, and webfetch retries after
403/404/429.
open-codeasier v0.2.12
Added
- Preserve overdue cross-review sessions until the user explicitly chooses an action. Reviewers, gatherers, and judges now enter
timeout_pendingand returnactionRequired;cross_review_statusacceptstimeoutAction: "preserve"to extend the same session or"abort"to terminate it. Abort also stops previously preserved sessions still inside their extension, ambiguous preserved dispatches are redispatched instead of idling, the decision applies throughoutwaitMslong polling, and transient fetch errors no longer stick to preserved sessions. - Add server-side waiting (
waitMs) tocross_review_statuslong polling. The tool holds active runs for up towaitMs(0-60000ms, default 30000ms) without holding the run lock across sleep intervals, returning early whenever any reviewer or phase state changes, the run finishes waiting, or timeout expires. This eliminates client-side busy-polling sleep loops in the parent session. - Update cross-review skill and orchestration instructions to utilize server-side wait in
cross_review_statuswithout manual client sleeps.
open-codeasier v0.2.11
Fixed
- Reject out-of-range cross-review overrides and empty reviewer sets with an explicit error instead of running a 0-reviewer ghost run that finalizes as quorum-not-met. Tool overrides are revalidated against the config loader bounds even when the host skips tool-schema validation.
- Make cross-review setup write valid config shapes and validate semantically. Document the
reviewersobject-array versusreviewModelsstring-array shapes and add anopen-codeasier validatesubcommand that runs the runtime parser on a config file; guided setup validates the written file with it instead of a syntax-only JSON check. - Resolve the no-arg
validatepath through the shared repository root fallback, so a linked worktree without its own config validates the same project file thatcross_review_startloads instead of reporting not found. - Surface config resolution (
config.sourcesplus resolved paths) and the project-config fallbackwarningoncross_review_startand oncross_review_statuswhendetailorincludeOutputsis requested. Compact status polls stay unchanged. Judge-failed finalize results now include the samewarningas the other terminal results.
open-codeasier v0.2.9
Changed
- Cut the token cost of the
cross_review_statuspolling loop. The default status result is now compact (runID,phase,quorum,counts,readyToFinalize,pollAfterMs, and the per-reviewer textsummary), omitting the fulltargetand per-reviewer objects; request the full fields withdetail: trueorincludeOutputs: true(includeOutputsimpliesdetail), andcross_review_finalizestill returns the complete candidates once. The recommended poll interval now settles to 10s while sessions are running, stays at 3s while the gatherer or any session is starting, and shortens near a session deadline, so a review that used to poll every 3 seconds now spends far fewer tokens on repeated status payloads.
open-codeasier v0.2.8
Added
- Gather the target context once and share it with every reviewer instead of letting each reviewer fetch it independently. With a configured
judgeModeland no suppliedcontext, cross-review runs a read-only gathering phase in the judge session first (reported as agathererincross_review_status), embeds the gathered output into every reviewer brief, and degrades to independent fetching when gathering fails or times out. An optionalcontextargument (collected by the parent session when nojudgeModelis configured) skips the gathering phase and is embedded in reviewer briefs and the judge prompt. Run manifests migrate from schema version 1 to 2 on load.
open-codeasier v0.2.4
Fixed
- Keep runtime plugin and workflow asset upgrades on the same exact package version and scope, and print the matching runtime command after asset installs.
- Stop cross-review with versioned recovery guidance when its runtime tool is unavailable instead of improvising a fallback.
- Report live cross-review progress and child-session provenance through tool metadata so long-running reviewers and judges remain observable.
- Treat an explicitly blank
judgeModelas parent-session judging instead of rejecting it as an invalid model identifier.
open-codeasier v0.2.2
Fixed
- Build distributable artifacts automatically before packing or publishing so the CLI and server exports are included in npm packages.
- Replace the deprecated npm 0.2.1 artifact, which was published without
dist/files.