Skip to content

Releases

Oxytocin 0.9.16

Choose a tag to compare

@github-actions github-actions released this 11 Nov 18:24

Changed

  • Task hands work over through files in the project instead of an agent's plan mode, the same way for every
    agent. A task lives in .oxy/tasks/<task id>/: raw.task.json (your description) and plan.md (the planner's
    plan). Each role starts with a one-line prompt that names those files and a built-in skill
    (.oxy/tasks/skills/plan.md, implement.md, review.md: how to plan, implement and review), so the task, the plan
    and the rules are read once and never pasted into a prompt. Git ignores the folder; it is removed when you mark the
    task done, reject its plan or delete it, while the plan stays readable in Task.
  • Task: the plan has a fixed outline (summary, numbered steps with their files, a verification checklist), which
    Task shows as steps instead of plain Markdown. The implementer ticks each finished step and each passed check in the
    plan file and Task shows the progress ("2 of 5 done"). A plan without that outline is still shown as written.
  • Task: a Claude Code planner no longer starts in plan mode with Opus and a plan hook: it runs with the model and
    permissions of the agent you chose, plus allow rules for the task's own folder. Feedback is typed into the planner's
    session and the rewritten plan file is the next version. Task no longer reads Claude Code's transcripts or plan
    folder and no longer opens a local port.

Fixed

  • Project Runner: the Run view no longer shows the apps and scripts of the previous project after you open
    another one. An update of the previous project that finished late (a scan of a large folder) could overwrite the
    new project's list until you left the project and came back.

Oxytocin 0.9.15

Choose a tag to compare

@github-actions github-actions released this 11 Nov 08:26

Changed

  • Projects: a project whose terminals you closed opens on its empty view (New terminal, AI agents, Open…) instead
    of starting a new terminal by itself, also after Oxytocin restarts or the project's workspace was unloaded to save
    memory. A project opened for the first time still starts its terminal (or its startup terminals).
  • Tabs: a tab is at most 280 px wide and tabs shrink (down to 96 px) to share a narrow group before the tab strip
    scrolls, so a long title ends in an ellipsis and every tab's close button (×) stays in view: closing a tab no longer
    means scrolling its name first. The full title is in the tab's tooltip; a single tab still spans the whole header.

Fixed

  • Tabs: the active tab of a group with several tabs is underlined again (the marker was meant to be hidden only
    for a single tab spanning the header).

  • Terminals: restarting a terminal whose project folder was deleted keeps the old terminal and says why, instead
    of leaving the panel without a terminal; any other restart failure is reported too.

  • Projects: New terminal in project (project context menu) waits for that project's workspace instead of a fixed
    50 ms: on a project whose workspace was unloaded the terminal could open in the previously active project. A
    project opened this way for the first time gets one terminal, not its default terminal plus another.

  • Projects: the project's activity dot no longer stays on (the hollow Idle dot) once you closed its terminals.
    Terminals running in the background — a Project Runner app or script, an Ensemble session — mark the project only
    while something runs in them, not when their shell sits idle after a script finished or they exited. The project's
    tooltip counts the same terminals.

  • Workspaces: a layout saved right before its project was opened again (a workspace unloaded and reopened
    quickly) is no longer read from disk before the save finishes, which could bring back the previous layout.

Oxytocin 0.9.14

Choose a tag to compare

@github-actions github-actions released this 29 Oct 09:31

Added

  • Usage Monitor: the Sessions table has a "Code Map" column: how many Code Map tool calls the agent in that
    terminal made during the session and how many characters of answers it received; the tooltip adds stale, not-OK and
    failed answers. Oxytocin keeps only counts, in memory since the app started — no queries, paths or code.

  • Code Map: a project can turn on Suggest code locations with each prompt (Project settings → Code Map, off by
    default). With the Claude Code Bridge installed, Oxytocin then adds up to three file pointers to Claude Code's context
    when a prompt matches the map strongly, and nothing otherwise; pointers already given in the session are not repeated.
    The prompt is read locally for that one lookup and is never stored or logged.

Changed

  • Code Map is in beta, like Ensemble: a Beta badge marks it in Project settings, the project menu, the "+" menu
    and the Code Map Visualizer, and the Code Map settings tab opens with a notice (closed for the session with ×). It is
    not fully tested yet: the map can lag behind edits, miss relationships or rank a less relevant file first.
  • Workspaces: layouts are no longer rewritten every time an agent's terminal changes its live state (working,
    waiting, activity, bells) or a terminal of another project changes; only changes to what a layout stores (terminal
    titles, folders, agent sessions) save it.
  • Code Map: a file turned down for its size no longer restarts the parser thread, so the grammars stay loaded and
    indexing continues without the restart cost.
  • Git: changing a setting unrelated to git no longer runs git again to detect its version.
  • Code Map: answers keep up with edits. While the file watcher is healthy a query no longer audits the whole
    checkout; it waits only for the incremental update of the files that changed, which now re-resolves just the
    affected files and updates the search index in place. On Oxytocin's own repository an edit shows up in the next
    answer within about 0.2 s (was about 2.6 s) and an unchanged query answers in milliseconds (was about 0.5 s). For
    large maps, small edits are written to .oxy/code-map shortly after the edits settle. freshness: "verified" still
    audits content hashes.
  • Code Map: oxy_find_code answers include the relevant source lines, so most lookups need no separate file
    read. The best match shows up to 12 numbered lines (its signature and the lines with the question's terms, with
    context); a second or third match shows up to 6 lines only when it scores close to the first. Lines are shown only
    while the file still matches the index. full: true returns the whole definition of the best match (up to 80
    lines), and plugins can ask for the same with excerpts: 'terms' | 'full' on a search query.
  • Code Map: agent answers are much cheaper to use.
    • Agents see one tool to locate code (oxy_find_code; oxy_task_context while Review memory is on) and no status
      tool; the tool schemas and the guidance are about 60% smaller and say when plain Grep is the better choice.
    • Answers are quiet path:lines kind signature pointers, about 55% shorter: no header, coverage totals or symbol
      IDs. One line appears only when the index is updating or a cited file changed, and "Truncated" only when the size
      budget cut results.
    • oxy_code_relations accepts path and line, so a pointer from a find answer can be used directly.
    • While files are re-indexed, queries answer from the last published map, marked as stale, instead of returning
      "updating" without data.
    • The CLAUDE.md/AGENTS.md instruction block is a single line; existing opted-in blocks are upgraded
      automatically.
  • Code Map: finding code is more accurate. oxy_find_code and the task context now rank on what is inside function
    bodies (BM25F over names, paths and bodies with query coverage), rank tests and docs lower unless the question asks
    for them, and show one result per file first; results carry coverage and strong confidence fields. On Oxytocin's
    own questions the right file comes first in 27 of 44 cases instead of 19. The map cache grows by about 40% and is
    rebuilt once after the update; graph.json is unchanged.
  • Code Map: TypeScript and JavaScript method calls on values with a declared type are resolved (constructor
    parameter properties, fields, parameters, new T(), return types, inherited members), so oxy_code_relations finds
    about a quarter more callers; path aliases such as @shared/* resolve through a solution-style tsconfig.json with
    project references instead of appearing as external packages.

Fixed

  • Task: starting a task works again: the Claude planner opened in plan mode and did nothing. Its prompt came after
    --add-dir, which reads every following argument as one more directory, so Claude Code got no prompt. A new
    agent session now gets its prompt before any other argument. Claude sessions started by Task no longer get
    --add-dir, which also keeps a startup prompt from being submitted (anthropics/claude-code#92930); they read Task's
    folder through a permission rule in Task's --settings file instead. A plugin that starts Claude Code with
    addDirs and a prompt, or a Claude launch command in Settings → AI Agents that ends with an option taking several
    values (such as claude --add-dir ../shared), gets the prompt typed once the agent is ready.

  • Task: a new agent session that has not started on its prompt 30 seconds after it opened (it waits for input or
    is still starting, for example on a question) is shown in Task with Show terminal, instead of looking as if
    the task were running.

  • Editors and diffs: typing while a save is in progress no longer marks the newer text as saved or lets a
    save-and-close action discard it. Repeated saves share the pending write, and the next save checks the modification
    time returned by the previous write instead of reporting a false conflict.

  • Editors: an automatic reload that finishes after typing starts no longer overwrites those edits; obsolete
    reads are ignored after another load, a save or closing the panel. Failed reloads keep the editor mounted, a failed
    file check no longer reports the file as deleted, and errors from Keep mine are reported instead of escaping.

  • Diffs: a live refresh no longer silently authorizes overwriting another process's edits: normal Save still
    checks the disk version the edit started from. Unsaved text stays available when refreshing fails or the file is
    deleted, becomes binary or exceeds the diff size limit. Switching a preview to another file isolates its state
    from reads and saves still finishing for the previous file.

  • Host processes: stopping during restart backoff immediately rejects waiting requests; calling start during
    backoff cannot create a second child. Shutdown stops health checks, late ready/ping messages cannot revive or affect
    a replacement host, and disposal releases RPC calls, timers and subscriptions even without a child exit event.

  • RPC: finishing a request after its channel closes no longer causes an unhandled rejection when sending either
    the result or an error. Removed event subscriptions release their empty listener sets, and disposed channels do not
    retain new subscriptions.

  • Databases: a failed connection that was already dropped no longer removes its replacement from the pool,
    leaking that connection and forcing extra reconnects. A disposed pool refuses new connections and closes pending
    ones when they finish opening.

  • Git: rapid watcher configuration changes keep the newest request; removing a project or shutting down cannot
    resurrect a watcher still being replaced, and late repository discovery no longer publishes stale state. Events
    accumulated behind another repository are handled in one refresh instead of scheduling a redundant second scan.

  • Saved state: a value that cannot be serialized no longer blocks every subsequent write; the next valid value
    can be persisted normally.

  • Tests: Git and plugin-generator subprocesses in integration tests explicitly hide their Windows console.

  • Settings: changes saved at the same moment (for example a plugin turned on while another setting changes) no
    longer overwrite each other in settings.json; each one is written after the previous one.

  • Projects: adding, removing, reordering or editing a project right after the start waits for the project list to
    load instead of being lost when it finishes loading; moving a project to another folder no longer undoes a project
    setting saved at the same time.

  • Git: a project whose file watcher could not start (the Workspace Host restarting, too many watched files) gets
    one again on the next refresh (window focus, a periodic or manual refresh) instead of showing no live changes until
    Oxytocin restarts; the half-started watcher no longer stays behind. A project removed while its watcher was starting
    no longer keeps watching in the background.

  • AI agents: a Claude Code terminal no longer briefly shows an older state (working after it already waits for
    you) when its session file changed twice in quick succession.

  • Plugins: views of a window that reloaded or crashed are closed in the Plugin Hosts; they used to stay open in the
    background, keep the plugin's resources and come back after a Plugin Host restart.

  • Agent Tools (MCP): a tool call whose agent went away (killed, timed out) is cancelled instead of running to the
    end, so for example a question it asked no longer waits for an answer nobody reads.

  • Diffs: switching to another file of the same language in a diff (Ensemble changes, a diff preview tab) shows it
    from the top with its own folding instead of the previous file's scroll position; unsaved edits of the replaced file
    no longer keep the diff mark...

Read more

Oxytocin 0.9.13

Choose a tag to compare

@github-actions github-actions released this 23 Oct 11:14

Changed

  • Task: reworked so that planner → approval → implementer works without manual hand-offs.
    • A Claude planner hands its finished plan to Task and waits for your decision in its plan hook: Approve ends its
      turn, Revise sends your feedback as its answer (Claude revises at once, nothing is typed into its terminal), Reject
      ends the task. Press Esc in its terminal to talk to it instead.
    • Every role starts in a new session with a clean context unless you choose a running one; the implicit reuse
      of a matching session is gone. New sessions start with their prompt on the command line, so "the agent is not
      ready" no longer happens.
    • A prompt for a session that already runs is typed as soon as its agent waits for input, never over a turn or a
      question; Task shows what it waits for instead of an error, and there is nothing to retry.
    • The implementer and the reviewer read a brief (the task and the approved plan) from Task's folder, so the plan
      keeps its formatting on Windows too.
  • AI agents: a new Claude Code, Codex CLI, Gemini CLI or Qwen Code session started by Oxytocin with a prompt (Task,
    Changes → Send to review, plugins) receives it on its command line instead of having it typed once the agent is
    ready (Plugin API 0.2.2, which also adds addDirs).

Fixed

  • Sidebars: a section collapsed, moved or resized right before quitting is remembered.
  • Tests: E2E tests no longer depend on the machine they run on: the app window has the same size on every screen,
    terminals are typed into once their prompt is shown, AI agent variables of the test runner's environment (an API
    base URL, a surrounding Claude Code session) are not passed on, and latency budgets fail only on a gross
    regression (measurements are still recorded in perf-results.json). CI runs E2E next to the other checks in three
    shards per platform and records traces only for retried tests, which shortens a release run considerably.

Oxytocin 0.9.12

Choose a tag to compare

@github-actions github-actions released this 21 Oct 17:00

Fixed

  • Code Map retrieval: focused lookups return compact source pointers with better identifier and configuration ranking.
    Task context defaults to six matches and adds a small neighborhood only when needed. Full JSON remains available
    with format: "json". Smaller maps and refreshed generated instructions avoid mandatory broad context for simple questions.
  • Code Map Visualizer: a force layout, quieter edges, neighborhood highlighting and a directional connection inspector
    make dependencies easier to read. The graph has more space; the accessible outline and additional filters open on demand.

Oxytocin 0.9.11

Choose a tag to compare

@github-actions github-actions released this 20 Oct 20:51

Added

  • Code Map Visualizer: Knowledge shows findings next to their code and evidence, with review and freshness filters.
    Task context shows the items an agent received and why, using an expiring receipt. Both require the new
    code-map.knowledge.read permission (Plugin API 0.2.1); the core Learnings manager remains available separately.
    An offline longitudinal corpus and evaluation harness cover four arms and changed evidence. Automatic remains
    unavailable until measured evaluation passes its release gate.

  • Code Map learnings for agents: oxy_task_context returns bounded code pointers, relations and up to three
    applicable reviewed findings. Agents propose reusable findings with oxy_propose_learning and report feedback
    with oxy_learning_feedback. Receipts bind feedback to the authenticated session and checkout; negative feedback
    suspends reuse until review. Review mode remains the default.

  • Code Map learnings: a core settings manager for user findings in main and Ensemble checkouts, with evidence hashes,
    review, revision history, search, export and confirmed deletion. Changed evidence requires explicit revalidation;
    rebuilding or deleting the map preserves findings. Removed worktrees retain an inspectable archive; explicitly
    promote a finding to share it with the project. Project budgets include live stores, archives and revisions.
    Memory settings offer Review and Off;
    Automatic is unavailable.

  • Code Map: Python support — package roots, declarations, decorators, relative imports/re-exports and simple
    calls, including self methods. Unknown instance attributes and dynamic imports remain unresolved; support is shown
    as Imports with simple calls.

  • Code Map: Java support — packages and source modules, declarations, imports, inheritance and calls bound from
    declared receiver types and argument counts. Reflection and ambiguous same-arity overloads remain unresolved.

  • Code Map: Go support — modules and workspace packages, declarations, imports and calls resolved from declared
    receiver types. Interface dispatch and unknown receivers remain unresolved; build tags are recorded, not evaluated.

  • Code Map Visualizer: Changes highlights uncommitted files and their potential indexed dependents. Impact
    follows incoming dependencies up to three steps. Switch between the main folder and Ensemble worktrees; task
    changes compare with their recorded base, including committed edits.

  • Code Map Visualizer: explore folders, file dependencies and symbol neighborhoods, search the index and open
    verified source locations. Filter relations and evidence, keep node positions across updates, or use the keyboard
    through a list. Available from the project menu, Code Map settings and the Add menu; all assets work offline.

  • Plugin API 0.2.0: oxy.codeMap (code-map.read) lists checkouts, reports status, serves bounded graph slices,
    search, outlines and relations, delivers invalidations and opens verified source locations, including worktrees.
    Plugins that declare engine: "^0.1.x" need an update to ^0.2.0 before they load again.

  • Code Map: Ensemble worktrees get separate maps and authenticated agents query their own checkout. Add or remove
    the agent guidance in CLAUDE.md or AGENTS.md from Code Map settings. Ensemble diffs and checkpoint commits exclude
    .oxy data, including files already tracked by a worktree's base commit.

  • Code Map for agents: oxy_find_code, oxy_file_outline, oxy_code_relations, oxy_repo_map and
    oxy_code_map_status are available through Oxytocin's MCP server for enabled projects. Answers are bounded, report
    freshness and coverage, and use an explicit checkout selection. Configure MCP access from the Code Map settings tab.

  • Code Map: enable it in Project settings → Code Map to keep a local, deterministic map of the project's code in
    .oxy/ (ignored by Git unless you choose otherwise). It updates in the background while Oxytocin runs. Agents can read
    .oxy/code-map/MAP.md; copy ready-made agent instructions from the tab. TypeScript and JavaScript symbols, imports and
    calls; other files appear as files.

  • Code Map: C# support — solutions and projects, namespaces, types and members, using directives and project
    references, and calls resolved from declared types. Partial types appear once with all their declarations; bin/ and
    obj/ next to a project file are skipped.

Fixed

  • macOS release checks: ESLint gets an explicit 4 GiB heap limit for type-aware linting instead of exhausting
    Node's default heap. Regular CI now checks Windows, Linux and macOS before release workflows.
  • Windows release tests: the learning archive recovery test uses canonical paths so differences in temporary
    directory casing do not prevent its simulated write failure. The C# test that generates and parses 1001 files has
    a dedicated 30-second timeout to tolerate parallel test load.

Oxytocin 0.9.10

Choose a tag to compare

@github-actions github-actions released this 19 Oct 17:50

Changed

  • Task: a Claude Code planner starts in a new session in plan mode (Opus, high effort) with bypass permissions in
    its Shift+Tab cycle, so exploring asks no permission questions. Its finished plan goes straight to Task instead of an
    approval question in the terminal, shown as Markdown with the status Plan awaiting approval. Approve &
    implement
    , Revise (your feedback is pasted into the planner's terminal and the revised plan arrives the same
    way) or Reject; every version is kept. While planning, edits inside the project and git commit, push,
    checkout and reset are denied for that session only; your Claude Code settings files are not changed. When
    Oxytocin does not answer, Claude Code asks in the terminal as usual.
  • An empty workspace offers more than New terminal: start an AI agent directly, or open anything from the group's
    + menu (terminal profiles, agents, tools) with Open….

Fixed

  • Prompts typed into agents by Task, Changes → Send to review, Ensemble, Scratchpad and plugins are submitted
    reliably. Long prompts, such as an approved plan, sometimes stayed in the agent's input box until Enter was pressed:
    Codex CLI on Windows reads a long paste slowly and took the Enter as part of it. Enter now follows once the agent has
    taken the paste in, and is sent again after a few seconds when the agent did not start.

Added

  • Plugin API 0.1.10: oxy.agents.launch({ claudeArgs, env }) adds arguments and environment variables to a new agent
    session; AgentLauncher.agent names the CLI a launch choice starts.

Oxytocin 0.9.9

Choose a tag to compare

@github-actions github-actions released this 17 Oct 19:23

Changed

  • Task opens in the right sidebar and works in either sidebar, following the active project, or as a workspace tab.
    Its layout fits a narrow sidebar. Agent terminals started or reused by Task and Changes → Send to review are
    revealed and focused in the workspace.

Added

  • Plugin API 0.1.9: oxy.ui.openPanel(…, { placement: 'sidebar' }) opens a tool in the right sidebar.

Oxytocin 0.9.8

Choose a tag to compare

@github-actions github-actions released this 17 Oct 14:01

Added

  • Task: a lightweight plan → approve → implement → optional review workflow. Choose agents, accounts and API
    profiles from the same list as + → AI Agents. Claude Code's native plan document is captured automatically;
    plans can also be pasted or edited before approval. Approval saves a frozen document and sends only the task and
    that plan to the implementer. Start review manually when implementation is ready. Agents run in ordinary
    interactive terminals, with matching session reuse and a fresh-session option; tasks survive app restarts.
  • AI Agents launch commands: configure a command with arguments for each CLI in Settings → AI Agents, such as
    codex --yolo. Commands apply to new sessions, including added accounts and Claude API profiles.
  • Changes → Send to review: choose an agent from the usual AI Agents list to review staged, unstaged and
    untracked changes. Reuses a matching terminal or opens one. Edit the instruction and save it as the default in
    the review dialog; it is also available as git.reviewPrompt in Settings.
  • Plugin API 0.1.8: shared agent launch choices and profile-aware launching with optional prompt delivery,
    existing-session selection, fresh sessions and Claude plan mode.

Fixed

  • Usage Monitor freshness: Claude subscription limits are polled every ten seconds as a fallback for missed
    filesystem notifications. Partial or failed reads are retried. Continuous file activity no longer postpones log
    ingestion indefinitely; same-size log and chat rewrites are detected. Refresh usage data in the sidebar menu
    and Refresh data in the dashboard rescan source files rather than repainting cached totals. Dashboard values
    also refresh periodically and when the panel becomes visible. Limit timestamps continue to show when the agent
    actually reported them; refreshing does not invent a new limit reading.
  • Detects when Claude's status line configuration has been removed or changed and shows Repair limit updates
    in the sidebar and Usage settings. Repair preserves the previous status line backup.

Removed

  • The built-in Relay plugin. Its general-purpose plugin API additions remain available.

Oxytocin 0.9.7

Choose a tag to compare

@github-actions github-actions released this 16 Oct 12:47

Added

  • Relay: hand work from one AI agent to the next. The new built-in Relay plugin (+ menu → Tools → Relay, or
    Relay: Show Relay Panel) works with the agents running in a project, on any of your accounts:
    • Hand off at the limit. When an agent finishes its turn and its account's 5-hour (or weekly) limit is at least
      90% used (adjustable), the next free agent in the order you set — e.g. Claude Code, then Codex CLI on your main
      account, then Codex CLI on a second account — gets your hand-off prompt, such as "Continue the implementation
      after {from}; the status is in TODO.md"
      . Agents whose account is nearly out are skipped; when nobody is free,
      Relay waits, also for the first agent's limit to start over, so the work can go round.
    • Review after each turn. When an author finishes a turn that changed files, the reviewer agent gets the review
      prompt with the names of the changed files; turns that end while the reviewer works are reviewed together, and
      the reviewer's own turns start nothing.
    • Relay types one short prompt per hand-off and nothing else — no status messages, no system prompts, no diffs (the
      agents read the files themselves) — so the agents' context and limits go to the work. It only types into an
      agent that waits for input and never over a question on screen; every hand-off shows a notification and is
      listed in the panel, where Send now also sends the prompt by hand.

Changed

  • Usage Monitor: plan limits per account. The sidebar card lists the limits of each account under its name —
    Claude (main), Claude (Work), Codex (main) — each window with how much is used, when it resets and when it was
    read (28% of 5h limit · resets in 49 min · as of 10:07). Codex CLI limits are shown with the others. Added
    accounts' sessions count towards the usage too (their transcripts, rollouts and chats are read from the
    accounts' folders), and accounts that share the main account's settings report their own Claude limits through
    the same status line. The limits are also available to other plugins.
  • Plugin API 0.1.7: agent accounts (oxy.agents.listAccounts, AgentSnapshot.accountId), plan limits
    (getLimits, reportLimits) and oxy.agents.sendPrompt (changelog).