Skip to content

Releases: Producible/CereWorker

v26.520.5

Choose a tag to compare

@greatwhiz greatwhiz released this 20 May 19:06

Workflow-exercise release that confirms the flattened npm-registry propagation poll and bounded timeout behavior added in a201b45.

What this exercises

  • Flattened propagation poll. The publish-npm job's "Wait for npm registry propagation" step now runs a single global retry loop across all 10 published workspace packages instead of nested per-package loops. Worst-case time is bounded at ~2.5 min, comfortably under the 15-min job timeout. In this release all 10 packages were visible on the first attempt — the poll completed in ~4 seconds.

  • All in-publish validations still pass. publish-npm runs the install-smoke against the freshly published @producible/cereworker@26.520.5. publish-docker validates the freshly pushed producible/cereworker-cerebellum:26.520.5 CPU image.

Functional changes

None — runtime behavior unchanged from v26.520.4. This release is a workflow-validation tag.

Install

npm i -g @producible/cereworker@26.520.5

Stats

12 files changed (mostly version bumps). 629/629 tests still passing. CI run: ~7 minutes total, all four jobs green on first try.

v26.520.4

Choose a tag to compare

@greatwhiz greatwhiz released this 20 May 17:59

Patch release fixing two audit findings on the install/smoke wiring.

Fixes

  • Tag-time smoke no longer races publish. The install-smoke workflow used to trigger on the same v* tag push as the publish workflow, then immediately pull the versioned Docker image and install the version-pinned npm package. Both jobs ran in parallel with the workflow that pushes the artifacts, so a successful publish could be flagged as a smoke regression purely on timing. Tag-time validation now lives inside publish.yml:

    • publish-docker validates the freshly pushed CPU image right after docker push.
    • publish-npm validates the freshly published package via scripts/e2e/install-smoke.sh (with a 2-minute polling window for npm registry propagation, added in the follow-up commit bbe0f1a).
    • install-smoke.yml now only runs on daily cron + manual dispatch, validating :latest as a regression catch over time.
  • Optional :latest pull no longer poisons the success report. postinstall.mjs previously had the required versioned pull and the optional :latest pull in the same try { ... }, so a failure on :latest reported "could not pull the versioned image" even when the versioned image succeeded. The optional pull is now in its own try/catch and silently swallows errors — :latest is convenience-only, not a runtime requirement.

Other

  • Cerebellum Dockerfile gains a comment documenting why tag-time validation lives inside publish.yml. This doubles as the small cerebellum/ change that flips the check-docker-changes gate so the versioned Docker image actually ships.

Install

npm i -g @producible/cereworker@26.520.4

Stats

15 files changed, 40 insertions, 33 deletions. 629/629 tests still passing.

v26.520.3

Choose a tag to compare

@greatwhiz greatwhiz released this 20 May 17:42

Patch release that fixes three audit findings about how the install/smoke/uninstall scripts handle the version-pinned Cerebellum image. No runtime behavior change — the CLI's image resolution was already correct (producible/cereworker-cerebellum:<cli-version>); only the surrounding scripts catch up.

Fixes

  • postinstall.mjs now pulls producible/cereworker-cerebellum:<cli-version> (matching what the runtime asks for), plus :latest as a secondary pull so other tooling stays consistent. Previously it only pulled :latest, which meant offline / version-drift scenarios fell back to a second pull on first run.

  • install-smoke.yml docker-image-smoke job now derives the image tag from github.ref_name on tag pushes (producible/cereworker-cerebellum:26.520.3) instead of pulling :latest unconditionally. Tag-triggered smokes now validate the exact tag image. If a future publish-docker job is skipped or fails, this smoke will fail loudly instead of green-lighting a stale :latest.

  • uninstall.sh and uninstall.ps1 now enumerate all tags of producible/cereworker-cerebellum via docker images --format '{{.Repository}}:{{.Tag}}' and remove each. Previously they only rmi'd :latest, leaving the ~5 GB versioned image on disk.

Other

  • Cerebellum Dockerfile picks up a documenting comment explaining the version-pinned convention. It also flips the publish workflow's check-docker-changes gate so this release ships a matching versioned Cerebellum image — without it, publish-docker would have been skipped (the same regression class as v26.520.1).

Install

npm i -g @producible/cereworker@26.520.3

Stats

16 files changed, 65 insertions, 30 deletions. 629/629 tests passing.

v26.520.2

Choose a tag to compare

@greatwhiz greatwhiz released this 19 May 19:25

Package rename release. The npm packages have moved from @cereworker/* to the @producible/cereworker-* scope to align with the GitHub org and project attribution.

Install (new name)

npm i -g @producible/cereworker

What changed

  • npm packages renamed (10 packages):

    • @cereworker/cli@producible/cereworker
    • @cereworker/config@producible/cereworker-config
    • @cereworker/core@producible/cereworker-core
    • @cereworker/cerebrum@producible/cereworker-cerebrum
    • @cereworker/cerebellum-client@producible/cereworker-cerebellum-client
    • @cereworker/channels@producible/cereworker-channels
    • @cereworker/browser@producible/cereworker-browser
    • @cereworker/gateway@producible/cereworker-gateway
    • @cereworker/hippocampus@producible/cereworker-hippocampus
    • @cereworker/skills@producible/cereworker-skills
  • Docker image renamed: cereworker/cerebellumproducible/cereworker-cerebellum. Both CPU and GPU variants now published to the new repo at 26.520.2 and latest.

  • Dockerfiles now stamp org.opencontainers.image.ref.name=producible/cereworker-cerebellum so the new identity is part of the image metadata (visible via docker inspect).

  • npm provenance attestations are now generated on every publish (workflow has id-token: write + --provenance).

What stays the same

  • The cereworker CLI binary name. Users keep typing cereworker at the shell after install.
  • The ~/.cereworker/ config directory. Existing configs continue to work.
  • The GitHub repository name (Producible/CereWorker).

Migration

Existing installs on @cereworker/cli@26.519.1 keep working. The old packages will be marked with npm deprecate so anyone installing them sees a redirect notice pointing here.

npm uninstall -g @cereworker/cli
npm i -g @producible/cereworker

Docker users on 26.519.1 and earlier keep pulling from cereworker/cerebellum. Starting at 26.520.2, the CLI pulls from producible/cereworker-cerebellum.

Stats

71 files changed in the rename commit, ~136 imports rewritten, 629/629 tests passing.

v26.519.1

Choose a tag to compare

@greatwhiz greatwhiz released this 19 May 17:58

Releases the provider-model sync work and follow-on fixes from 2026-05-19.

Highlights

  • Refreshed Cerebrum provider registry against each upstream's official docs:

    • Anthropic: Claude Opus 4.7 is the new default; lineup is Opus 4.7 / Sonnet 4.6 / Haiku 4.5 / Opus 4.6 / Sonnet 4.5.
    • OpenAI: GPT-5.5 default; adds GPT-5.5 Pro, GPT-5.4 Mini.
    • OpenAI Codex (ChatGPT subscription): now mirrors OpenAI's official Codex lineup — GPT-5.5 / 5.4 / 5.4 Mini / 5.3 Codex / 5.3 Codex Spark.
    • Google: keeps Gemini 2.5 Pro default; adds Gemini 3.1 Flash-Lite (stable) and 3.1 Pro (preview).
    • xAI: full refresh after grok-4 retired 2026-05-15 — Grok 4.3 default plus the 4.20 family.
    • DeepSeek: V4 Pro default, V4 Flash added; legacy aliases preserved.
    • Mistral: Medium 3.5 default; adds Devstral 2 and Magistral Medium 1.2.
    • Moonshot: Kimi K2.6 default.
    • Together: Kimi K2.6 default, with DeepSeek V4 Pro, GLM 5.1, Qwen 3.6 Plus.
    • MiniMax / MiniMax Portal: M2.5 added alongside M2.7 lineup.
    • OpenRouter: adds Owl Alpha and Aurora Alpha house models.
  • Schema fallback cerebrum.defaultModel bumped from claude-sonnet-4-6 to claude-opus-4-7 so first-run installs land on the latest Claude.

  • Mistral API ID correction: switched to the short canonical codes per Mistral's changelog (mistral-medium-3-5, devstral-2512, magistral-medium-2509).

  • Auto-migration in loadConfig(): transparently rewrites the legacy Mistral IDs that were briefly seeded into local configs during development, so source builds made between 6aa5feb and f2d305a auto-recover without hand-editing YAML.

  • Repo guidelines: CLAUDE.md now defers to AGENTS.md as the canonical source for the commit-body attribution format.

Stats

629/629 tests passing (1 added regression test for the Mistral migration).

Install

npm install -g cereworker@26.519.1
# or
pnpm add -g cereworker@26.519.1

Existing users

If you onboarded against main between commits 6aa5feb and f2d305a, your ~/.cereworker/config.yaml may have a stale Mistral ID. This release transparently migrates it on next launch — no action needed.

v26.403.1

Choose a tag to compare

@greatwhiz greatwhiz released this 03 Apr 17:58

v26.403.1

SQLite Replaced with Text Archives

  • All persistence (conversations, pairing, plans, fine-tune data) now uses plain JSON/JSONL files
  • Node.js requirement lowered from 22.5.1+ to 22+ (no more experimental node:sqlite)
  • Legacy SQLite databases are auto-migrated on first run, backed up as .bak

Protocol-Aware Turn Journaling

  • Persistent JSONL journal per turn at ~/.cereworker/conversations/{id}/turns/{turnId}.jsonl
  • Records tool starts/ends, checkpoints, boundaries, completion signals, and recoveries
  • TurnOutcome classification: completed, ended_on_tool_calls, completion_signal_missing, stalled, etc.
  • TurnBoundarySummary tracks state-changing moments with browser state snapshots
  • Repetition signal detection sent to Cerebellum for smarter stop decisions

Turn Journal Retention

  • Configurable via conversations.turnJournals.maxDays (default 30) and maxFilesPerConversation (default 100)
  • Two-phase pruning: age-based first, then count-based
  • Runs after every turn completion (success and error paths)

Advisory Locks for Text Stores

  • Directory-based advisory locking (withTextStoreLock) prevents concurrent file corruption
  • Stale lock detection via PID/hostname/age checks
  • Atomic writes with rename-based crash safety

Cerebellum Recovery Guidance (Docker rebuild needed)

  • AssessTurnRecovery RPC enriched with boundaries, turn outcome, repetition signals
  • Run sudo bash scripts/publish-cerebellum.sh to push the updated Docker image

v26.330.3

Choose a tag to compare

@greatwhiz greatwhiz released this 31 Mar 03:16

v26.330.3

Cerebellum Recovery Guidance

  • New AssessTurnRecovery gRPC RPC — the Cerebellum receives full recovery context (progress ledger, checkpoints, browser state, partial content) and returns wait, retry, or stop with a tailored modelMessage for the Cerebrum
  • Repetition detection: if the last 6 tool actions repeat the same 1-2 patterns, the Cerebellum returns stop to prevent infinite retry loops
  • wait action for first-time stalls under 90s in waiting_model phase — avoids false nudges when the model is thinking
  • stop action for repetitive completion retries — aborts early instead of exhausting the retry budget
  • Fallback to local TypeScript logic if the Cerebellum is offline or the gRPC call fails

Recovery Architecture

  • Both stall and completion retries now go through assessTurnRecovery()
  • The Cerebellum's modelMessage replaces the hardcoded resume context
  • operatorMessage shown to the user, diagnosis and nextStep logged
  • streamDeferredUntil pauses the watchdog when the Cerebellum says wait

Docker Image

The Cerebellum Docker image needs a rebuild to include the new AssessTurnRecovery handler. Run bash scripts/publish-cerebellum.sh to push the updated image.

v26.330.2

Choose a tag to compare

@greatwhiz greatwhiz released this 30 Mar 18:26

v26.330.2

Browser Progress Ledger

  • Structured progress tracking across retry attempts — each tool result records action, summary, URL, tab, and state-changing flag
  • Progress entries survive retries via TurnContinuityState, giving the retry context a detailed record of what was already accomplished
  • Read-only tools (browserGetText, readFile, etc.) are automatically classified as non-state-changing
  • Ledger capped at 20 entries with smart eviction (read-only entries evicted first)

Task Checkpoints

  • New task_checkpoint internal tool — Cerebrum marks milestones ("profile continuity checked", "engagement pass done") with evidence
  • Checkpoints are upserted by step name and included in retry resume context
  • Checkpoints are preserved across retries — the model sees a structured list of what's already been verified

Browser State Tracking

  • BrowserStateSnapshot tracks current URL, active tab, and tab list
  • Updated from result.metadata.resume on each browser tool execution
  • Included in retry context: "Current URL: https://x.com/home", "Active tab: 134851321"

Structured Browser Tool Results

  • All browser tools now return ToolExecutionValue with metadata.resume containing action summaries
  • Enables the progress ledger to record rich context without parsing output strings

Unified Resume Context

  • Single buildRetryContextMessage() handles both stall and completion retries
  • Resume context includes: browser state, checkpoints, progress ledger entries ([done]/[seen]/[error]), partial text

v26.330.1

Choose a tag to compare

@greatwhiz greatwhiz released this 30 Mar 17:23

v26.330.1

Retry Message Cleanup

  • Failed attempt tool/system messages are excluded from retry prompts using ID-based filtering (not positional cutoff)
  • Failed attempt messages are deleted from the conversation store on ALL exit paths: success, exhaustion, error, and Cerebellum disconnect
  • Successful retry's own tool results are preserved in the conversation store
  • Stable message ordering via ORDER BY timestamp, rowid

Resume Context (No Repeat)

  • Retried turns see only: user message + transient resume summary + nudge
  • Failed attempt's raw tool call history is excluded — model cannot "follow the template" and repeat steps
  • Resume prompt explicitly states: "tool call history has been removed, do NOT repeat these steps"

Task Completion Guard

  • task_complete / task_blocked internal tools for structured turn endings
  • Completion guard retries independently from stall retries (separate budgets)
  • Completion retry context includes tool summaries and partial text

Stream Finish Metadata

  • Provider captures finishReason, stepFinishReasons, chunkCount, toolCallCount, stepCount
  • Completion guard uses this to detect turns ending on tool-calls without final answer

v26.329.28

Choose a tag to compare

@greatwhiz greatwhiz released this 30 Mar 06:53

v26.329.28

Completion Retry Context

  • Completion retries now include transient resume context (recent tool results, partial text, finish reason)
  • Matches the stall retry context pattern — injected into retry attempt, NOT persisted to conversation

Non-Debug TUI

  • Default view shows only message content (user=blue, cerebrum=green) without role labels or tool outputs
  • --debug flag restores the full verbose view with role labels, tool details, and streaming header
  • Cleaner experience for normal users

Event-Driven Stall Detection

  • Removed 250ms polling interval for stall state
  • TUI now updates stall indicator purely from events (cerebrum:stall, watchdog, tool:end, etc.)

Presentation Utilities

  • formatLocalTimestamp() — timezone-aware formatting via Intl.DateTimeFormat
  • filterTranscriptMessages() — filters to user+cerebrum for non-debug display