Changelog

The app and the SDK are versioned separately. Full acceptance records for each version live in the repository under docs/research.

  1. 0.73.0

    SDK 0.59.0

    Memory without Docker, and a choice of web search service

    • Settings → Memory gains a built-in local memory that needs no Docker, embedding model or text model. Conversations are stored as written in one local SQLite file and searched by keyword. It does not understand paraphrases or other languages; OpenViking semantic memory is still available, and the two keep separate memories.
    • Replayed over 112 real turns, an earlier turn of the same conversation ranked first 90% of the time and in the top five 98%. The sample is 6 conversations, so it shows ranking is usable, not exact recall.
    • Web search and page reading run over the service chosen in settings: FastCRW (default), Firecrawl, Tavily, Brave, Zhipu or Bocha; the model sees the same two tools. Switching service does not carry the old key over to the new one. Firecrawl without a key and direct page reading were verified live; the others follow their documented interfaces and were tested against local fixtures only.
  2. 0.72.0

    SDK 0.58.0

    Fewer failed edits, clearer failure causes

    • File reads now separate the line number from the text with a tab, so indented lines no longer gain a stray space. When an exact match fails by one leading separator, the edit applies that way and says so; several matches are refused with what to change. Replayed on 31 real “text not found” failures, 15 now apply as intended.
    • When a web fetch fails, the message says whether to try again and where else to look; a refused working directory for a command now says what it is relative to.
    • The evolution page sorts tool failures by cause (call error, environment, refused, interrupted); only the model’s own call errors count toward a tool description needing a change. Settings shows the table.
  3. 0.71.0

    SDK 0.57.0

    Interface language reaches errors and the CLI; the Claude path verified live

    • Text the model reads (prompts, handoffs, tool descriptions) is fixed English while what you read follows the interface language; API error messages and the CLI’s help, usage and output follow it too, with your own words, paths and names kept as they are.
    • The Claude path ran a set of probes against the real Anthropic API and all passed. One fix came out of it: when a thinking block is rejected, the message position in the log was off after tool round trips and now maps back to the real one; recovery itself was unaffected.
    • 0.71.1: a model removed in the provider editor no longer comes back when the model list is fetched; saving it again restores it. Image generation with a ChatGPT login now offers three models and sends the one you chose (it always sent gpt-image-2 before).
    • Without WebGL (GPU acceleration disabled or blocklisted), the empty state’s background animation stays empty instead of throwing and blanking the whole app; 0.70.0 and 0.71.0 were affected.
  4. 0.70.0

    SDK 0.56.0

    Proactive text and project notes follow the interface language

    • Text the host writes for proactive messages (daily digest, thread close, welcome back, direct fix and background-help cards) follows the interface language, and clients render it from structured fields.
    • Project mind cards, options, reasons and API errors follow the interface language.
    • When the memory service is briefly unavailable, a delivery’s index write is no longer recorded as lost.
  5. 0.69.0

    SDK 0.56.0

    Mute pauses, and the usage page shows tokens only

    • Pausing proactive messages now pauses scheduled tasks too: nothing starts while muted and windows that fall due are recorded as skipped. After unmuting, a skipped window still within one period and unchanged resumes in place. A run already started before muting delivers only to the inbox, as does a result that waited more than one period.
    • The usage page shows tokens only, with no price-weighted figures, keeps probe judgments apart from normal conversations and ranks the largest runs by tokens.
    • A scheduled run declares only the tools it can execute, and its first request carries the task once, kept after a compaction.
    • Rolling back a turn now reaches OpenViking too: the matching memory is restored byte for byte and the remote session removed.
  6. 0.68.0

    SDK 0.55.0

    Lighter start-up and more reliable subagent results

    • The index carries only the fields the interface needs (protocol 3): first-screen data drops from 821 KB to about 67 KB, and an idle app no longer reloads the whole index every 5 seconds. Figures from docs/planning/next-phase-plan-20261004.md.
    • A subagent’s result always reaches the model, with mu-style pending merges.
    • Compaction can rewind across its boundary and carries a structured checkpoint summary and file list.
    • File edits accept several changes at once and refuse to overwrite files that were not read; the sandbox is stricter; settled memory losses go straight to history and a failed summary no longer keeps the health check red.
  7. 0.67.0

    SDK 0.54.0

    Honest accounting and steadier background calls

    • Reasoning effort for internal calls: Claude, DeepSeek and Codex use the model default; on GLM the JEV choice is only recorded until a paid replay passes.
    • Usage accounting is more accurate: aborted and unreported requests are counted by estimate, and narrator, mind and evolution each have their own purpose.
    • Gene tool and skill names stay the same across generations, so evolution no longer invalidates the session cache; while a foreground turn runs, no separate proactive decision is made for its own message.
    • 0.67.1: the package rebuilds the web UI when its build is older than its sources (0.63.2 to 0.67.0 shipped a stale UI).
  8. 0.66.0

    SDK 0.53.0

    Claude through an API key, and background compaction when idle

    • Claude is used only through an Anthropic API key: history is append-only and a keep-alive request stops the cache expiring while idle.
    • When idle past the cache lifetime with the context over half full, it compacts in the background and keeps the last 2 turns.
    • When the cache is already cold, superseded copies of context are folded; the mind and collaboration contexts are split so the stable part stops changing every turn.
  9. 0.65.0

    SDK 0.52.0

    Memory evidence protected, scheduled reports delivered whole

    • Memory is withdrawn only on explicit revocation, so another project’s evolution or a new conversation no longer affects this project’s receipts, running work or pending scheduled deliveries; lost historical evidence can be restored (a copy of live state recovered 169 past actions and 47 delivery records).
    • Memory health is split into pending and known losses; a known loss can be acknowledged or retried, and the health check no longer stays red because of one.
    • Scheduled reports are delivered in full instead of cut in the middle; a commitment settles only once the change has landed and reopens on rollback.
    • Git operations are held instead of waited on; deleting a conversation also clears related mind and gene content and no longer stalls.
  10. 0.64.0

    SDK 0.51.0

    It knows what you rolled back, and stops repeating work

    • After you roll back a turn, drop a subagent’s changes or revert background changes, the next turn starts with what you undid; the background sees it too and no longer proposes to put it back.
    • “Delivered this turn” and Review show the host’s net change per file instead of adding up edit snippets.
    • New JEV point work.coverage: a background check that only repeats one just done, with nothing changed since, is no longer queued. All 19 labelled cases correct.
  11. 0.63.0

    SDK 0.50.0

    Worktree isolation, automatic merges and turn rollback

    • Subagents and background work change files in their own Git worktrees and merge back automatically; a conversation can choose its own worktree when created. On for every Git project since 0.63.3.
    • Your uncommitted edits are always one side of a merge; index, HEAD and branches are untouched, and conflict markers never land in the project folder.
    • Every turn keeps a checkpoint: “Roll back this turn” restores it in one click, and the rollback can be undone.
    • Projects that are not Git repositories can be initialized in one step: git init, a .gitignore and one commit, no remote.
  12. 0.62.0

    SDK 0.49.0

    A Claude-style compare view, and subagents used when they should be

    • The Workspace changes panel compares “base → target”: since the merge base with a branch, uncommitted, this conversation’s, or any local branch, with a file tree beside stacked per-file diffs.
    • The main conversation now splits independent parts across subagents, optionally with your own words as requirements; limits are 12 per turn, 4 per conversation and 6 overall.
  13. 0.61.0

    Files, evolution and workspace changes as panels

    • Files show change marks with a changed-only filter; layouts can be saved; the desktop app can reveal files in Finder.
    • Stuck task entries can be settled in place: mark done, drop, or clear a project’s unfinished items at once.
  14. 0.60.0

    An arrangeable workspace and a background tasks panel

    • The right side becomes a workspace you split and drag, with preset layouts and undo/redo; moving panels never reloads a terminal or browser.
    • The background tasks panel shows each run’s progress, subagents and usage, grouped as needs you, running, queued and finished.
  15. 0.59.0

    SDK 0.48.0

    A full pass over the details: 73 problems fixed

    • Drafts and attachments survive sending, stopping and switching; runtime notices no longer show tool names, JSON or English internals.
    • Finished turns and standing rules no longer count as owed; the emergency stop restores what it paused.
  16. 0.58.0

    SDK 0.47.0

    Claude through an Anthropic API key

    • Anthropic does not allow Claude subscriptions in third-party apps, so the subscription consult is withdrawn; settings switch to the Anthropic API-key preset in one click.
    • Scheduled runs show as “Scheduled task ‘name’” everywhere instead of their internal instructions.
  17. 0.57.0

    SDK 0.46.0

    Failed requests stay yours; a ChatGPT sign-in makes images

    • When a question fails, the background no longer answers it with its own model; the conversation offers a retry on the model you chose.
    • A ChatGPT plan sign-in can generate images (gpt-image-2) and transcribe speech; generated images show in the conversation.
  18. 0.56.0

    SDK 0.45.0

    Conversations continue on a model with a smaller window

    • Compaction follows pi: summaries read a trimmed transcript, oversized batches retry at half size, and an oversized answer is compacted and retried once.
    • ChatGPT Codex streams are read the way pi reads them, so plan models work.
  19. 0.55.0

    SDK 0.44.0

    AI-text detection and writing tools withdrawn

    • The Zhuque detection, its settings and the writing tools added in 0.50.0 to 0.54.0 are reverted to 0.49.2; the research record stays in the repository.
  20. 0.50.0

    SDK 0.39.0

    Tencent Zhuque AI-text detection (withdrawn in 0.55.0)

    • New built-in skill ai-detection: check the finished piece, rewrite only flagged lines, re-check, at most three rounds. Moves that worked in two or more pieces go into the project AGENTS.md.
    • At initialization JEV decides whether a new writing project is for readers; those get the skill, private digests do not.
    • Settings → Models → AI detection: switch, key, address and this month’s usage. A spent free quota pauses until the 1st of next month and resumes by itself.
  21. 0.49.2

    SDK 0.38.2

    JEV questions tuned on measured answers

    • The “can this be a check” question is now literal: false “checkable” verdicts dropped from 5 to 0.
    • Rule consolidation now gives JEV the rule text, not just titles and summaries.
  22. 0.49.1

    SDK 0.38.1

    Older large tool results keep head and tail

    • Following the DeepSeek Harness pruner, old large tool outputs keep only their beginning and end.
    • A JEV probe for studying question design.
  23. 0.49.0

    SDK 0.38.0

    Fewer wasted tokens

    • Evolution judges before it writes: rules not worth writing are stopped before the main model is called.
    • Long written text leaves the context after its turn.
    • Decision requests keep a stable cache prefix.
  24. 0.48.0

    SDK 0.37.0

    Evolution revises instead of only adding

    • New rules meet their kind first: repeats retire, overlaps merge.
    • A rewrite keeps every requirement of the rules it replaces.
  25. 0.47.0

    SDK 0.36.0

    Manual compaction for long sessions

    • Manual compaction works on long sessions and shows its progress.
    • Internal labels stay out of what you read; stale task cards fold.
  26. 0.46.0

    SDK 0.35.0

    Wakes route before they decide

    • Each wake is routed first, then decided; the decision names its judge.
    • Open questions get asked.
  27. 0.44.0

    Background work that needs you is settled in the conversation

    • When background work needs a decision, it comes back to the conversation.
    • Memory writes verify themselves.
  28. 0.43.0

    The agent’s browser shows live in the side panel

    • Watch the agent’s browser live in the side panel.
    • Background deliverables appear in the conversation.
  29. 0.42.0

    SDK 0.34.2

    Full access stops asking

    • With “Full access”, foreground and background read, write and run directly.
    • Permission cards show in the conversation.
  30. 0.39.0

    SDK 0.33.0

    Sandboxed background commands, revertible background changes

    • Background commands run under macOS seatbelt: writes are denied outside the project, temp folders and package caches.
    • Background work snapshots every file it changes; one click reverts, never overwriting a file changed again afterwards.
    • A write that clearly breaks a constraint you stated is refused with the reason.
  31. 0.36.0

    SDK 0.30.3

    A new task page

    • The task page, redone after OmniFocus.
    • Generated text follows the interface language.
  32. 0.35.5

    The evolution page becomes a quiet skill tree

    • Only the gene tree and one sentence per node; details open on demand.